{
  "openapi": "3.1.0",
  "info": {
    "description": "Metis AI-Powered Educational Content Platform. Provides course management, adaptive assessments, AI-powered tutoring, and learning analytics.",
    "title": "Metis API",
    "version": "0.1.0"
  },
  "paths": {
    "/api/adaptive-latency/assessments": {
      "post": {
        "description": "Build a profile from measurements, then gate it against the ratified budget.",
        "operationId": "create_adaptive_latency_assessment_api_adaptive_latency_assessments_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdaptiveLatencyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdaptiveLatencyResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such latency assessment."
          },
          "409": {
            "description": "The idempotency key was reused with different inputs, or the ratified budget refuses this assessment."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Adaptive Latency Assessment",
        "tags": ["adaptive-latency"]
      }
    },
    "/api/adaptive-latency/assessments/{assessment_id}": {
      "get": {
        "description": "Return one tenant-visible immutable latency assessment.",
        "operationId": "get_adaptive_latency_assessment_api_adaptive_latency_assessments__assessment_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdaptiveLatencyProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such latency assessment."
          },
          "409": {
            "description": "The idempotency key was reused with different inputs, or the ratified budget refuses this assessment."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Adaptive Latency Assessment",
        "tags": ["adaptive-latency"]
      }
    },
    "/api/adaptive-latency/evaluation": {
      "get": {
        "description": "Return corpus outcomes and a live in-process measurement of the real stages.",
        "operationId": "get_adaptive_latency_evaluation_api_adaptive_latency_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatencyEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Adaptive Latency Evaluation",
        "tags": ["adaptive-latency"]
      }
    },
    "/api/admin/adaptive-latency/assessments": {
      "post": {
        "description": "Measure and gate the next-item latency budget as the administrator.",
        "operationId": "create_adaptive_latency_assessment_from_admin_workspace_api_admin_adaptive_latency_assessments_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdaptiveLatencyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdaptiveLatencyResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Adaptive Latency Assessment From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/adaptive-latency/workspace": {
      "get": {
        "description": "List latency assessments with their measured profiles and health gates.",
        "operationId": "get_adaptive_latency_workspace_api_admin_adaptive_latency_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdaptiveLatencyWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Adaptive Latency Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/agent-plans/dispatches": {
      "post": {
        "description": "Decide one plan dispatch as the administrator.",
        "operationId": "create_agent_plan_dispatch_from_admin_workspace_api_admin_agent_plans_dispatches_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanDispatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DispatchProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Agent Plan Dispatch From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/alerts": {
      "get": {
        "operationId": "list_alerts_api_admin_alerts_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AlertConfigResponse"
                  },
                  "title": "Response List Alerts Api Admin Alerts Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Alerts",
        "tags": ["admin"]
      }
    },
    "/api/admin/alerts/{alert_id}": {
      "patch": {
        "operationId": "update_alert_api_admin_alerts__alert_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "alert_id",
            "required": true,
            "schema": {
              "title": "Alert Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlertConfigUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertConfigResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update Alert",
        "tags": ["admin"]
      }
    },
    "/api/admin/analytics": {
      "get": {
        "operationId": "admin_analytics_api_admin_analytics_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminAnalyticsResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Admin Analytics",
        "tags": ["admin"]
      }
    },
    "/api/admin/assessment-interlocks/assertions": {
      "post": {
        "description": "Issue a signed assessment context for one attempt.",
        "operationId": "mint_assessment_context_assertion_api_admin_assessment_interlocks_assertions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssertionMintRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentContextAssertion"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "A dependency this admin operation needs is not configured."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Mint Assessment Context Assertion",
        "tags": ["admin"]
      }
    },
    "/api/admin/assessment-interlocks/checks": {
      "post": {
        "description": "Run one interlock check as the administrator.",
        "operationId": "create_assessment_interlock_check_from_admin_workspace_api_admin_assessment_interlocks_checks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterlockCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterlockProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "A dependency this admin operation needs is not configured."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Assessment Interlock Check From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/assessment-interlocks/workspace": {
      "get": {
        "description": "List interlock decisions with the matrix totality report and bypass sweep.",
        "operationId": "get_assessment_interlock_workspace_api_admin_assessment_interlocks_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterlockWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Assessment Interlock Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/audit-trail": {
      "get": {
        "operationId": "get_admin_audit_trail_api_admin_audit_trail_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminAuditTrailResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Admin Audit Trail",
        "tags": ["admin"]
      }
    },
    "/api/admin/author-analytics/reports": {
      "post": {
        "description": "Compute an author analytics report as the administrator.",
        "operationId": "create_author_analytics_report_from_admin_workspace_api_admin_author_analytics_reports_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorAnalyticsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorAnalyticsProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Author Analytics Report From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/authoring-hub/workspace": {
      "get": {
        "description": "The whole hub for whoever is asking, with every region accounted for.",
        "operationId": "get_authoring_hub_api_admin_authoring_hub_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringHub"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role has no authoring hub view."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Authoring Hub",
        "tags": ["authoring-hub"]
      }
    },
    "/api/admin/best-of-n/runs": {
      "post": {
        "description": "Score a recorded candidate set as the administrator.",
        "operationId": "create_best_of_n_from_admin_workspace_api_admin_best_of_n_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BestOfNRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BestOfNRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Best Of N From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/best-of-n/workspace": {
      "get": {
        "description": "List every retained candidate, its verifier evidence, cost, and decision.",
        "operationId": "get_best_of_n_workspace_api_admin_best_of_n_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BestOfNWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Best Of N Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/best-of-n/{run_id}/decision": {
      "post": {
        "description": "Record the educator decision; only an acceptance creates a new revision.",
        "operationId": "decide_best_of_n_from_admin_workspace_api_admin_best_of_n__run_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BestOfNDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BestOfNProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Decide Best Of N From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/calendar/events/{event_id}": {
      "put": {
        "description": "Create or move an event by sending its whole window.\n\nA whole window rather than a delta: a drag produces a pixel offset, and\nturning a pixel offset into a time is where a calendar starts rounding to\nwhatever its grid happens to be. The keyboard path and the pointer path\nsend the same thing.",
        "operationId": "place_event_api_admin_calendar_events__event_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "title": "Event Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventOnView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such event in this tenant."
          },
          "409": {
            "description": "The window does not resolve to an instant."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Place Event",
        "tags": ["editorial-calendar"]
      }
    },
    "/api/admin/calendar/{view}": {
      "get": {
        "description": "One view of the calendar, for the audience this session reads in.",
        "operationId": "read_view_api_admin_calendar__view__get",
        "parameters": [
          {
            "in": "path",
            "name": "view",
            "required": true,
            "schema": {
              "title": "View",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "anchor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Anchor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalendarView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such event in this tenant."
          },
          "409": {
            "description": "The window does not resolve to an instant."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read View",
        "tags": ["editorial-calendar"]
      }
    },
    "/api/admin/catalog/boundary": {
      "get": {
        "description": "Whether this cell writes anything it does not own. Computed now.\n\nBehind the same sign-in as the rest of the surface: it names source files\nand the shape of this estate's write paths, which is not a thing to hand to\nan anonymous caller.",
        "operationId": "read_boundary_api_admin_catalog_boundary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBoundaryReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Boundary",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles": {
      "get": {
        "operationId": "read_bundles_api_admin_catalog_bundles_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CatalogBundleSummary"
                  },
                  "title": "Response Read Bundles Api Admin Catalog Bundles Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Bundles",
        "tags": ["catalog-curation"]
      },
      "post": {
        "description": "Start a draft. The owner is the signed-in actor, not the body.",
        "operationId": "create_bundle_api_admin_catalog_bundles_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogBundle"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBundleSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Bundle",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}": {
      "get": {
        "description": "The newest version, and every version that came before it.",
        "operationId": "read_bundle_api_admin_catalog_bundles__bundle_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBundleDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Bundle",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/approvals": {
      "post": {
        "description": "Sign off one exact manifest. The owner's own signature is refused.",
        "operationId": "approve_bundle_api_admin_catalog_bundles__bundle_id__approvals_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BundleApproval"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Approve Bundle",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/eligibility": {
      "post": {
        "description": "Eight checks per entry. A fact nobody supplied is `unknown`, not `pass`.",
        "operationId": "check_eligibility_api_admin_catalog_bundles__bundle_id__eligibility_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogEligibilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogEligibilityReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Eligibility",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/entries": {
      "post": {
        "operationId": "add_bundle_entry_api_admin_catalog_bundles__bundle_id__entries_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogEntryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBundleSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Add Bundle Entry",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/entries/{subject_id}": {
      "delete": {
        "operationId": "remove_bundle_entry_api_admin_catalog_bundles__bundle_id__entries__subject_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBundleSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Remove Bundle Entry",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/entries/{subject_id}/feature": {
      "post": {
        "operationId": "feature_entry_api_admin_catalog_bundles__bundle_id__entries__subject_id__feature_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogFeatureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBundleSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Feature Entry",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/order": {
      "post": {
        "description": "Set the shelf order. The manifest changes, so approvals fall away.",
        "operationId": "reorder_bundle_api_admin_catalog_bundles__bundle_id__order_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogReorderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBundleSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Reorder Bundle",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/preview": {
      "post": {
        "description": "What a release would change, computed the same way every time.",
        "operationId": "preview_bundle_api_admin_catalog_bundles__bundle_id__preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview Bundle",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/release": {
      "post": {
        "description": "Publish, if this deployment has anywhere to publish to.\n\nIt does not by default. Answering 200 here without a client would report a\npublication that reached nothing, which is the single failure this cell\nexists to make impossible.",
        "operationId": "publish_bundle_api_admin_catalog_bundles__bundle_id__release_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogReleaseCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogReleaseCheck"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Publish Bundle",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/release-check": {
      "post": {
        "description": "Everything standing between this bundle and a release. Writes nothing.",
        "operationId": "check_release_api_admin_catalog_bundles__bundle_id__release_check_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogReleaseCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogReleaseCheck"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Release",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/bundles/{bundle_id}/unpublish": {
      "post": {
        "description": "Take a release off the shelf, recording a recall when people hold it.",
        "operationId": "unpublish_bundle_api_admin_catalog_bundles__bundle_id__unpublish_post",
        "parameters": [
          {
            "in": "path",
            "name": "bundle_id",
            "required": true,
            "schema": {
              "title": "Bundle Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CatalogUnpublishRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CatalogBundleSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Unpublish Bundle",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/catalog/source-withdrawals": {
      "post": {
        "description": "Propagate a source withdrawal to every version that carried it.\n\nSuperseded and unpublished releases included: a learner who started from\nlast term's catalogue still has what it gave them.",
        "operationId": "withdraw_sources_api_admin_catalog_source_withdrawals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceWithdrawalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceWithdrawalResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such bundle."
          },
          "409": {
            "description": "The curation or lifecycle path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No release client is configured, so nothing can be published."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Withdraw Sources",
        "tags": ["catalog-curation"]
      }
    },
    "/api/admin/claim-decomposition/runs": {
      "post": {
        "description": "Create a deterministic claim run using authenticated administrator identity.",
        "operationId": "create_claim_decomposition_from_admin_workspace_api_admin_claim_decomposition_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClaimDecompositionRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimDecompositionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Claim Decomposition From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/claim-decomposition/workspace": {
      "get": {
        "description": "List exact content/source spans, immutable decisions, and corpus quality.",
        "operationId": "get_claim_decomposition_workspace_api_admin_claim_decomposition_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimDecompositionWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Claim Decomposition Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/claim-decomposition/{run_id}/{claim_id}/decision": {
      "post": {
        "description": "Append one human claim and candidate-link decision with exact reviewer identity.",
        "operationId": "review_atomic_claim_from_admin_workspace_api_admin_claim_decomposition__run_id___claim_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "claim_id",
            "required": true,
            "schema": {
              "title": "Claim Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClaimReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimReviewProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Atomic Claim From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/code-verifications/runs": {
      "post": {
        "description": "Execute one hash-bound code verification as the administrator.",
        "operationId": "create_code_verification_from_admin_workspace_api_admin_code_verifications_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodeVerificationRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CodeVerificationRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Code Verification From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/code-verifications/workspace": {
      "get": {
        "description": "List compilation, raw test, resource, policy, review, and corpus evidence.",
        "operationId": "get_code_verification_workspace_api_admin_code_verifications_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CodeVerificationWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Code Verification Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/code-verifications/{run_id}/decision": {
      "post": {
        "description": "Append a disposition without rewriting raw test, score, or policy evidence.",
        "operationId": "review_code_verification_from_admin_workspace_api_admin_code_verifications__run_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodeVerificationReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CodeVerificationProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Code Verification From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/complaints/workspace": {
      "get": {
        "operationId": "get_learner_complaints_workspace_api_admin_complaints_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerComplaintWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learner Complaints Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/complaints/{complaint_id}/action": {
      "post": {
        "operationId": "act_on_learner_complaint_api_admin_complaints__complaint_id__action_post",
        "parameters": [
          {
            "in": "path",
            "name": "complaint_id",
            "required": true,
            "schema": {
              "title": "Complaint Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerComplaintActionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerComplaintActionResultResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Act On Learner Complaint",
        "tags": ["admin"]
      }
    },
    "/api/admin/content/flags": {
      "get": {
        "operationId": "list_content_flags_api_admin_content_flags_get",
        "parameters": [
          {
            "in": "query",
            "name": "content_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Content Type"
            }
          },
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ContentFlagResponse"
                  },
                  "title": "Response List Content Flags Api Admin Content Flags Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Content Flags",
        "tags": ["admin"]
      }
    },
    "/api/admin/content/flags/{flag_id}/moderate": {
      "post": {
        "operationId": "moderate_content_api_admin_content_flags__flag_id__moderate_post",
        "parameters": [
          {
            "in": "path",
            "name": "flag_id",
            "required": true,
            "schema": {
              "title": "Flag Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModerationResultResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Moderate Content",
        "tags": ["admin"]
      }
    },
    "/api/admin/courses": {
      "get": {
        "operationId": "list_courses_api_admin_courses_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ManagedCourseResponse"
                  },
                  "title": "Response List Courses Api Admin Courses Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Courses",
        "tags": ["admin"]
      }
    },
    "/api/admin/courses/{course_id}": {
      "get": {
        "operationId": "get_course_api_admin_courses__course_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedCourseDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Course",
        "tags": ["admin"]
      }
    },
    "/api/admin/courses/{course_id}/approval": {
      "post": {
        "operationId": "review_course_api_admin_courses__course_id__approval_post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseApprovalResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Course",
        "tags": ["admin"]
      }
    },
    "/api/admin/credential-workspace/credentials": {
      "get": {
        "description": "Awards this issuer has made, projected for an issuer.",
        "operationId": "read_credentials_api_admin_credential_workspace_credentials_get",
        "parameters": [
          {
            "in": "query",
            "name": "subject_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Subject Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CredentialProjectionView"
                  },
                  "title": "Response Read Credentials Api Admin Credential Workspace Credentials Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Credentials",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/credentials/expiring": {
      "get": {
        "description": "Who has to be told before their credential lapses.",
        "operationId": "read_expiring_api_admin_credential_workspace_credentials_expiring_get",
        "parameters": [
          {
            "in": "query",
            "name": "within_days",
            "required": false,
            "schema": {
              "default": 30,
              "maximum": 3650,
              "minimum": 1,
              "title": "Within Days",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "title": "Response Read Expiring Api Admin Credential Workspace Credentials Expiring Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Expiring",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/credentials/{credential_id}/lifecycle": {
      "post": {
        "description": "Revoke, renew or supersede, appending a chained lifecycle step.",
        "operationId": "change_lifecycle_api_admin_credential_workspace_credentials__credential_id__lifecycle_post",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialLifecycleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialProjectionView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Change Lifecycle",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/programmes": {
      "get": {
        "operationId": "read_programmes_api_admin_credential_workspace_programmes_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CredentialWorkspaceAggregate"
                  },
                  "title": "Response Read Programmes Api Admin Credential Workspace Programmes Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Programmes",
        "tags": ["credential-workspace"]
      },
      "post": {
        "description": "Put a programme in, whole. Its references validate on the way.",
        "operationId": "put_programme_api_admin_credential_workspace_programmes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialWorkspaceAggregate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialWorkspaceAggregate"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Put Programme",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/programmes/{programme_id}/candidates": {
      "get": {
        "description": "The queue, blocked first. The subject is a pseudonym at every depth.",
        "operationId": "read_queue_api_admin_credential_workspace_programmes__programme_id__candidates_get",
        "parameters": [
          {
            "in": "path",
            "name": "programme_id",
            "required": true,
            "schema": {
              "title": "Programme Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CandidateEligibilityView"
                  },
                  "title": "Response Read Queue Api Admin Credential Workspace Programmes  Programme Id  Candidates Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Queue",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/programmes/{programme_id}/candidates/{candidate_id}": {
      "get": {
        "operationId": "read_candidate_api_admin_credential_workspace_programmes__programme_id__candidates__candidate_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "programme_id",
            "required": true,
            "schema": {
              "title": "Programme Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidateEligibilityView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Candidate",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/programmes/{programme_id}/candidates/{candidate_id}/issue": {
      "post": {
        "description": "Award one credential. The only route that does.",
        "operationId": "issue_credential_api_admin_credential_workspace_programmes__programme_id__candidates__candidate_id__issue_post",
        "parameters": [
          {
            "in": "path",
            "name": "programme_id",
            "required": true,
            "schema": {
              "title": "Programme Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialIssuanceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialProjectionView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Issue Credential",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/programmes/{programme_id}/candidates/{candidate_id}/readiness": {
      "post": {
        "description": "Would this issue, and if not, every reason. Awards nothing.",
        "operationId": "read_readiness_api_admin_credential_workspace_programmes__programme_id__candidates__candidate_id__readiness_post",
        "parameters": [
          {
            "in": "path",
            "name": "programme_id",
            "required": true,
            "schema": {
              "title": "Programme Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialIssuanceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuanceReadinessView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Readiness",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/programmes/{programme_id}/candidates/{candidate_id}/reviews": {
      "post": {
        "description": "Record one review, or refuse it before it is written down.\n\nChecked here as well as at counting time. A review refused only when it is\ncounted has already been recorded, and a recorded approval from somebody\nwho should not have given one is what an auditor finds afterwards.",
        "operationId": "record_review_api_admin_credential_workspace_programmes__programme_id__candidates__candidate_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "programme_id",
            "required": true,
            "schema": {
              "title": "Programme Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialReview"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidateEligibilityView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Review",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/programmes/{programme_id}/templates/{template_id}/diff": {
      "get": {
        "description": "What changed between two versions, and whether it raises the bar.",
        "operationId": "read_template_diff_api_admin_credential_workspace_programmes__programme_id__templates__template_id__diff_get",
        "parameters": [
          {
            "in": "path",
            "name": "programme_id",
            "required": true,
            "schema": {
              "title": "Programme Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "title": "Template Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "from_version",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "From Version",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "to_version",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "To Version",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateDiffView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Template Diff",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/verify/private/{credential_id}": {
      "get": {
        "description": "The same verdict with more of the record, for an audience entitled to it.",
        "operationId": "verify_private_api_admin_credential_workspace_verify_private__credential_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "audience",
            "required": false,
            "schema": {
              "default": "recipient",
              "pattern": "^(recipient|guardian|institution)$",
              "title": "Audience",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "proof",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 256,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Proof"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialVerificationView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify Private",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/credential-workspace/verify/public/{credential_id}": {
      "get": {
        "description": "A verdict, an issuer and an achievement. Never a person.\n\nThis is a separate path from the private verifier rather than a parameter\non it, so widening what the public projection carries takes a new route\nsomebody has to write, not a query string somebody can send.",
        "operationId": "verify_public_api_admin_credential_workspace_verify_public__credential_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "proof",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 256,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Proof"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialVerificationView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not do this."
          },
          "404": {
            "description": "No such programme, candidate or credential."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "description": "The programme does not hold together."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          },
          "503": {
            "description": "The revocation record could not be read, so no claim is made."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify Public",
        "tags": ["credential-workspace"]
      }
    },
    "/api/admin/dashboard": {
      "get": {
        "operationId": "admin_dashboard_api_admin_dashboard_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDashboardResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Admin Dashboard",
        "tags": ["admin"]
      }
    },
    "/api/admin/evaluator-panels/runs": {
      "post": {
        "description": "Aggregate recorded evaluator observations as the administrator.",
        "operationId": "create_evaluator_panel_from_admin_workspace_api_admin_evaluator_panels_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluatorPanelRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluatorPanelRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Evaluator Panel From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/evaluator-panels/workspace": {
      "get": {
        "description": "List applicability, independence, calibration, consensus, and lifecycle evidence.",
        "operationId": "get_evaluator_panel_workspace_api_admin_evaluator_panels_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluatorPanelWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Evaluator Panel Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/evaluator-panels/{run_id}/decision": {
      "post": {
        "description": "Record an advisory disposition without rewriting raw panel evidence.",
        "operationId": "review_evaluator_panel_from_admin_workspace_api_admin_evaluator_panels__run_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluatorPanelReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluatorPanelProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Evaluator Panel From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/experiment-governance/runs": {
      "post": {
        "description": "Govern one experiment run as the administrator.",
        "operationId": "create_experiment_run_from_admin_workspace_api_admin_experiment_governance_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExperimentRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExperimentRunProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Experiment Run From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/exports/packages": {
      "get": {
        "description": "Every package/profile pair that has been through a preflight.",
        "operationId": "read_packages_api_admin_exports_packages_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExportPackageSummary"
                  },
                  "title": "Response Read Packages Api Admin Exports Packages Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Packages",
        "tags": ["export-diagnostics"]
      }
    },
    "/api/admin/exports/packages/{package_id}/arrival": {
      "get": {
        "operationId": "read_arrival_api_admin_exports_packages__package_id__arrival_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "manifest_digest",
            "required": true,
            "schema": {
              "title": "Manifest Digest",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArrivalReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Arrival",
        "tags": ["export-diagnostics"]
      },
      "post": {
        "description": "Compare what each target holds against what was sent.\n\nThe caller supplies item ids the target reports; it does not supply a\nverdict. A target that called an import successful while dropping an item\nbecomes visible here and nowhere else.",
        "operationId": "record_arrival_api_admin_exports_packages__package_id__arrival_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArrivalBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArrivalReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Arrival",
        "tags": ["export-diagnostics"]
      }
    },
    "/api/admin/exports/packages/{package_id}/manifest": {
      "post": {
        "description": "Record what went out, and what it left behind.",
        "operationId": "record_manifest_api_admin_exports_packages__package_id__manifest_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManifestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportPackageManifest"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Manifest",
        "tags": ["export-diagnostics"]
      }
    },
    "/api/admin/exports/packages/{package_id}/release-check": {
      "get": {
        "description": "Everything standing between this package and the target.",
        "operationId": "check_release_api_admin_exports_packages__package_id__release_check_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "build_revision",
            "required": true,
            "schema": {
              "title": "Build Revision",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportReleaseCheck"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Release",
        "tags": ["export-diagnostics"]
      }
    },
    "/api/admin/exports/packages/{package_id}/remedies": {
      "get": {
        "operationId": "read_remedies_api_admin_exports_packages__package_id__remedies_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "build_revision",
            "required": true,
            "schema": {
              "title": "Build Revision",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemedyLedger"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Remedies",
        "tags": ["export-diagnostics"]
      },
      "post": {
        "description": "Record a substitution or exclusion. It names the build it produced.",
        "operationId": "record_remedy_api_admin_exports_packages__package_id__remedies_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportRemedy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemedyLedger"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Remedy",
        "tags": ["export-diagnostics"]
      }
    },
    "/api/admin/exports/packages/{package_id}/reports": {
      "get": {
        "description": "Every profile this package has been diagnosed against.",
        "operationId": "read_reports_api_admin_exports_packages__package_id__reports_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExportDiagnosticsReport"
                  },
                  "title": "Response Read Reports Api Admin Exports Packages  Package Id  Reports Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Reports",
        "tags": ["export-diagnostics"]
      }
    },
    "/api/admin/exports/preflight": {
      "post": {
        "description": "Diagnose every feature use against one target profile.",
        "operationId": "run_preflight_api_admin_exports_preflight_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreflightBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportDiagnosticsReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such package, report or manifest."
          },
          "409": {
            "description": "The export path refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Run Preflight",
        "tags": ["export-diagnostics"]
      }
    },
    "/api/admin/feedback-queues/queues": {
      "post": {
        "description": "Build a feedback queue as the administrator.",
        "operationId": "create_feedback_queue_from_admin_workspace_api_admin_feedback_queues_queues_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeedbackQueueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackQueueProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Feedback Queue From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/grounding-gates/runs": {
      "post": {
        "description": "Evaluate a confirmed claim using authenticated administrator identity.",
        "operationId": "create_grounding_gate_from_admin_workspace_api_admin_grounding_gates_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroundingGateRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundingGateRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Grounding Gate From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/grounding-gates/workspace": {
      "get": {
        "description": "List separate raw grounding dimensions, policy verdicts, and fixture evidence.",
        "operationId": "get_grounding_gate_workspace_api_admin_grounding_gates_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundingGateWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Grounding Gate Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/grounding-gates/{run_id}/decision": {
      "post": {
        "description": "Append a disposition without rewriting or overriding the raw policy verdict.",
        "operationId": "review_grounding_gate_from_admin_workspace_api_admin_grounding_gates__run_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroundingGateReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundingGateProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Grounding Gate From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/grounding/claims/{claim_id}": {
      "get": {
        "description": "One claim's whole working set, read at one moment.",
        "operationId": "read_claim_api_admin_grounding_claims__claim_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "claim_id",
            "required": true,
            "schema": {
              "title": "Claim Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such claim in this tenant."
          },
          "409": {
            "description": "The claim or the preview moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Claim",
        "tags": ["grounding-workspace"]
      }
    },
    "/api/admin/grounding/claims/{claim_id}/preview": {
      "post": {
        "description": "What an action would touch, before anything is done.",
        "operationId": "preview_remediation_api_admin_grounding_claims__claim_id__preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "claim_id",
            "required": true,
            "schema": {
              "title": "Claim Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemediationPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlastPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such claim in this tenant."
          },
          "409": {
            "description": "The claim or the preview moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview Remediation",
        "tags": ["grounding-workspace"]
      }
    },
    "/api/admin/grounding/claims/{claim_id}/remediate": {
      "post": {
        "description": "Apply the remediation the person actually saw.\n\nThe radius is recomputed here and compared with the one the request carries,\nso a confirmation that described a different change is refused rather than\nhonoured.",
        "operationId": "remediate_api_admin_grounding_claims__claim_id__remediate_post",
        "parameters": [
          {
            "in": "path",
            "name": "claim_id",
            "required": true,
            "schema": {
              "title": "Claim Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Remediation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplyOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not take that action; the outcome names who can."
          },
          "404": {
            "description": "No such claim in this tenant."
          },
          "409": {
            "description": "The claim or the preview moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Remediate",
        "tags": ["grounding-workspace"]
      }
    },
    "/api/admin/grounding/queue": {
      "get": {
        "description": "The high-risk claims this reviewer can act on, worst first.\n\nClaims above this role are counted rather than hidden: a reviewer shown an\nempty queue while eleven critical claims wait for somebody more senior will\nconclude there is nothing to do.",
        "operationId": "read_queue_api_admin_grounding_queue_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HighRiskQueue"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Queue",
        "tags": ["grounding-workspace"]
      }
    },
    "/api/admin/inbox/captures": {
      "get": {
        "description": "A page of this tenant's inbox, with the whole queue's counts beside it.\n\n`search` matches the captured text. It narrows the counts as well as the\nrows, so the number beside the queue is always the number of things this\nrequest can see.",
        "operationId": "list_captures_api_admin_inbox_captures_get",
        "parameters": [
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Kind"
            }
          },
          {
            "in": "query",
            "name": "owner",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Owner"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 200,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such capture, for this caller."
          },
          "409": {
            "description": "The capture is not in a state for that."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Captures",
        "tags": ["inbox"]
      },
      "post": {
        "description": "Take one capture in. Quarantine is decided here, not sent.",
        "operationId": "create_capture_api_admin_inbox_captures_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaptureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxItem"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Capture",
        "tags": ["inbox"]
      }
    },
    "/api/admin/inbox/captures/{item_id}/convert": {
      "post": {
        "description": "Turn a capture into a new revision of a canonical record.",
        "operationId": "apply_conversion_api_admin_inbox_captures__item_id__convert_post",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConvertBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxItem"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such capture, for this caller."
          },
          "409": {
            "description": "The capture is not in a state for that."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply Conversion",
        "tags": ["inbox"]
      }
    },
    "/api/admin/inbox/captures/{item_id}/scan": {
      "post": {
        "description": "Record what a scanner concluded, and move the capture accordingly.",
        "operationId": "apply_scan_api_admin_inbox_captures__item_id__scan_post",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanResult"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxItem"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such capture, for this caller."
          },
          "409": {
            "description": "The capture is not in a state for that."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply Scan",
        "tags": ["inbox"]
      }
    },
    "/api/admin/inbox/captures/{item_id}/triage": {
      "post": {
        "description": "Assign, defer, archive, reject or mark a duplicate.",
        "operationId": "apply_triage_api_admin_inbox_captures__item_id__triage_post",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TriageAction"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InboxItem"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such capture, for this caller."
          },
          "409": {
            "description": "The capture is not in a state for that."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply Triage",
        "tags": ["inbox"]
      }
    },
    "/api/admin/incidents/workspace": {
      "get": {
        "operationId": "get_incident_workspace_api_admin_incidents_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetisIncidentWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Incident Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/integration-workspace/handoffs": {
      "get": {
        "description": "What this surface refuses to do, and the operator route that does it.",
        "operationId": "read_handoffs_api_admin_integration_workspace_handoffs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OperatorHandoffView"
                  },
                  "title": "Response Read Handoffs Api Admin Integration Workspace Handoffs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not recover this operation."
          },
          "404": {
            "description": "No such institution or operation."
          },
          "409": {
            "description": "The connection moved under this plan."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Handoffs",
        "tags": ["integration-workspace"]
      }
    },
    "/api/admin/integration-workspace/workspaces": {
      "get": {
        "description": "Every institution, each with what is wanting attention.",
        "operationId": "read_workspaces_api_admin_integration_workspace_workspaces_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IntegrationWorkspaceView"
                  },
                  "title": "Response Read Workspaces Api Admin Integration Workspace Workspaces Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not recover this operation."
          },
          "404": {
            "description": "No such institution or operation."
          },
          "409": {
            "description": "The connection moved under this plan."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Workspaces",
        "tags": ["integration-workspace"]
      },
      "post": {
        "description": "Put one institution's integrations in, whole.\n\nA connection carrying something shaped like a secret rather than a\nreference to one is refused here, before it reaches a row or a screen.",
        "operationId": "put_workspace_api_admin_integration_workspace_workspaces_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegrationWorkspaceAggregate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationWorkspaceAggregate"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not recover this operation."
          },
          "404": {
            "description": "No such institution or operation."
          },
          "409": {
            "description": "The connection moved under this plan."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Put Workspace",
        "tags": ["integration-workspace"]
      }
    },
    "/api/admin/integration-workspace/workspaces/{institution_id}": {
      "get": {
        "description": "One institution's connections, runs and unresolved outcomes.",
        "operationId": "read_workspace_api_admin_integration_workspace_workspaces__institution_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "institution_id",
            "required": true,
            "schema": {
              "title": "Institution Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrationWorkspaceView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not recover this operation."
          },
          "404": {
            "description": "No such institution or operation."
          },
          "409": {
            "description": "The connection moved under this plan."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Workspace",
        "tags": ["integration-workspace"]
      }
    },
    "/api/admin/integration-workspace/workspaces/{institution_id}/recoveries": {
      "post": {
        "description": "Queue one recovery. 202, because nothing has reached the far side yet.\n\nThe response is a queued operation with no receipt, which is exactly what\nit is: something that will be attempted. A 200 with a success here would\nbe this service telling an operator that another institution's system had\naccepted a payload it has not been sent.",
        "operationId": "enqueue_recovery_api_admin_integration_workspace_workspaces__institution_id__recoveries_post",
        "parameters": [
          {
            "in": "path",
            "name": "institution_id",
            "required": true,
            "schema": {
              "title": "Institution Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecoveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not recover this operation."
          },
          "404": {
            "description": "No such institution or operation."
          },
          "409": {
            "description": "The connection moved under this plan."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Enqueue Recovery",
        "tags": ["integration-workspace"]
      }
    },
    "/api/admin/integration-workspace/workspaces/{institution_id}/recoveries/plan": {
      "post": {
        "description": "What this recovery would do. Writes nothing and sends nothing.",
        "operationId": "plan_recovery_api_admin_integration_workspace_workspaces__institution_id__recoveries_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "institution_id",
            "required": true,
            "schema": {
              "title": "Institution Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecoveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecoveryPlanView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not recover this operation."
          },
          "404": {
            "description": "No such institution or operation."
          },
          "409": {
            "description": "The connection moved under this plan."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Plan Recovery",
        "tags": ["integration-workspace"]
      }
    },
    "/api/admin/integrity-links/": {
      "post": {
        "description": "Issue one link for this person, from this page, for this subject.",
        "operationId": "issue_link_api_admin_integrity_links__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignedLink"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "Your role does not follow that intent."
          },
          "404": {
            "description": "The case this link points at is gone."
          },
          "409": {
            "description": "The link is expired, replayed or altered."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No signing secret is configured, so this estate issues no links."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Issue Link",
        "tags": ["integrity-links"]
      }
    },
    "/api/admin/integrity-links/follow": {
      "post": {
        "description": "Whether this person, now, may follow this link.\n\nThe link is re-checked here against the current actor rather than trusted\nbecause it was issued: that is the whole of M9.7.b.",
        "operationId": "follow_link_api_admin_integrity_links_follow_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignedLink"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkVerdict"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "Your role does not follow that intent."
          },
          "404": {
            "description": "The case this link points at is gone."
          },
          "409": {
            "description": "The link is expired, replayed or altered."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "No signing secret is configured, so this estate issues no links."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Follow Link",
        "tags": ["integrity-links"]
      }
    },
    "/api/admin/integrity-links/intents": {
      "get": {
        "description": "What to offer on this page to this person.\n\nThe intersection of what the context allows and what the role may follow,\nso a page never draws a link that will be refused at the far end.",
        "operationId": "offered_intents_api_admin_integrity_links_intents_get",
        "parameters": [
          {
            "in": "query",
            "name": "context",
            "required": true,
            "schema": {
              "enum": ["course", "item", "attempt", "grade", "support"],
              "title": "Context",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "title": "Response Offered Intents Api Admin Integrity Links Intents Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Offered Intents",
        "tags": ["integrity-links"]
      }
    },
    "/api/admin/item-pool-eligibility/evaluations": {
      "post": {
        "description": "Judge an authored pool as the administrator.",
        "operationId": "create_item_pool_evaluation_from_admin_workspace_api_admin_item_pool_eligibility_evaluations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PoolEligibilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolEligibilityResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Item Pool Evaluation From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/item-pool-eligibility/workspace": {
      "get": {
        "description": "List pool evaluations with their verdicts, tallies, and selection evidence.",
        "operationId": "get_item_pool_eligibility_workspace_api_admin_item_pool_eligibility_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolEligibilityWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Item Pool Eligibility Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/learner-model-rationale/panels": {
      "post": {
        "description": "Run the four models as the administrator.",
        "operationId": "create_learner_model_panel_from_admin_workspace_api_admin_learner_model_rationale_panels_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerModelRationaleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerModelRationaleResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Learner Model Panel From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/learner-model-rationale/workspace": {
      "get": {
        "description": "List rationale panels with each model's own evidence kept separate.",
        "operationId": "get_learner_model_rationale_workspace_api_admin_learner_model_rationale_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerModelRationaleWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learner Model Rationale Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/learner-simulation/simulations": {
      "post": {
        "description": "Run an authored simulation as the administrator.",
        "operationId": "create_learner_simulation_from_admin_workspace_api_admin_learner_simulation_simulations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerSimulationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerSimulationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Learner Simulation From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/learner-simulation/workspace": {
      "get": {
        "description": "List simulations with their synthetic cohorts, runs, and isolation report.",
        "operationId": "get_learner_simulation_workspace_api_admin_learner_simulation_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerSimulationWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learner Simulation Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/learning-graph/scopes": {
      "get": {
        "description": "The graphs this tenant holds.",
        "operationId": "list_scopes_api_admin_learning_graph_scopes_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "title": "Response List Scopes Api Admin Learning Graph Scopes Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Scopes",
        "tags": ["learning-graph"]
      }
    },
    "/api/admin/learning-graph/{scope_id}": {
      "get": {
        "description": "One graph, its defects, its orderings and a layout.\n\nThe ordering is a query parameter rather than a client-side sort, so the\nlist a screen reader walks is the one the server computed \u2014 a client that\nre-sorts has re-implemented the ordering, and two implementations of an\nordering disagree about ties.",
        "operationId": "read_workspace_api_admin_learning_graph__scope_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "scope_id",
            "required": true,
            "schema": {
              "title": "Scope Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "order",
            "required": false,
            "schema": {
              "default": "topological",
              "enum": ["topological", "alphabetical", "by_kind", "by_defect"],
              "title": "Order",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "algorithm",
            "required": false,
            "schema": {
              "default": "layered",
              "enum": ["layered", "alphabetical_grid", "kind_columns"],
              "title": "Algorithm",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GraphWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No graph for that scope in this tenant."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Workspace",
        "tags": ["learning-graph"]
      }
    },
    "/api/admin/learning-pathways/authorings": {
      "post": {
        "description": "Analyze an authored pathway as the administrator.",
        "operationId": "create_learning_pathway_from_admin_workspace_api_admin_learning_pathways_authorings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PathwayAuthoringRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PathwayAuthoringResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Learning Pathway From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/learning-pathways/workspace": {
      "get": {
        "description": "List authored pathways with their graph, schedule, entry, and completion evidence.",
        "operationId": "get_learning_pathway_workspace_api_admin_learning_pathways_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PathwayWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learning Pathway Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/localization/glossary": {
      "post": {
        "description": "Record a course's decision about how a term is rendered.",
        "operationId": "add_glossary_term_api_admin_localization_glossary_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocaleGlossaryTerm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocaleGlossaryTerm"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Add Glossary Term",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs": {
      "get": {
        "description": "Every locale job this workspace holds.",
        "operationId": "read_jobs_api_admin_localization_jobs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/LocaleJobSummary"
                  },
                  "title": "Response Read Jobs Api Admin Localization Jobs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Jobs",
        "tags": ["localization"]
      },
      "post": {
        "description": "Cut a job against one source revision. The units come with it.",
        "operationId": "create_job_api_admin_localization_jobs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocaleJob"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocaleJobSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Job",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}": {
      "get": {
        "description": "One job, with what a build would do with every unapproved segment.",
        "operationId": "read_job_api_admin_localization_jobs__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocaleJobDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Job",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}/attestations": {
      "post": {
        "description": "A named person attesting that the target says what the source says.",
        "operationId": "record_attestation_api_admin_localization_jobs__job_id__attestations_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MeaningAttestationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeaningAttestation"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Attestation",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}/build": {
      "post": {
        "description": "Whether this locale may ship, with every refusal spelled out.",
        "operationId": "decide_build_api_admin_localization_jobs__job_id__build_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocaleParityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocaleBuildDecision"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Decide Build",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}/invalidations": {
      "post": {
        "description": "Rebind a job to a newer source revision and mark what that broke.",
        "operationId": "rebind_to_source_api_admin_localization_jobs__job_id__invalidations_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocaleParityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceInvalidationResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Rebind To Source",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}/parity": {
      "post": {
        "description": "Run all ten gates. Attestations come from the store, not the request.",
        "operationId": "compute_parity_api_admin_localization_jobs__job_id__parity_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocaleParityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocaleParityReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Compute Parity",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}/units/{unit_id}/acceptances": {
      "post": {
        "description": "Take a memory match. The result is a draft, never an approval.",
        "operationId": "accept_suggestion_api_admin_localization_jobs__job_id__units__unit_id__acceptances_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "unit_id",
            "required": true,
            "schema": {
              "title": "Unit Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemoryAcceptRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationUnit"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept Suggestion",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}/units/{unit_id}/suggestions": {
      "post": {
        "description": "Memory and glossary for one unit, with the withheld candidates named.",
        "operationId": "read_suggestions_api_admin_localization_jobs__job_id__units__unit_id__suggestions_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "unit_id",
            "required": true,
            "schema": {
              "title": "Unit Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationSuggestion"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Suggestions",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/jobs/{job_id}/units/{unit_id}/transitions": {
      "post": {
        "description": "Move one unit through its lifecycle, in the role the move implies.",
        "operationId": "move_unit_api_admin_localization_jobs__job_id__units__unit_id__transitions_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "unit_id",
            "required": true,
            "schema": {
              "title": "Unit Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnitTransitionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationUnit"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Move Unit",
        "tags": ["localization"]
      }
    },
    "/api/admin/localization/memory": {
      "post": {
        "description": "Record a translation pair. The owner is this workspace, not the body.",
        "operationId": "add_memory_entry_api_admin_localization_memory_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationMemoryEntry"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationMemoryEntry"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "The actor may not take this role on this unit."
          },
          "404": {
            "description": "No such job or unit."
          },
          "409": {
            "description": "The lifecycle, the memory or the build refuses this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Add Memory Entry",
        "tags": ["localization"]
      }
    },
    "/api/admin/mathematics-verifications/runs": {
      "post": {
        "description": "Execute a hash-bound mathematics verification as the administrator.",
        "operationId": "create_mathematics_verification_from_admin_workspace_api_admin_mathematics_verifications_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MathVerificationRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathVerificationRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Mathematics Verification From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/mathematics-verifications/workspace": {
      "get": {
        "description": "List executable math traces, policy outcomes, reviews, and corpus evidence.",
        "operationId": "get_mathematics_verification_workspace_api_admin_mathematics_verifications_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathVerificationWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Mathematics Verification Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/mathematics-verifications/{run_id}/decision": {
      "post": {
        "description": "Append a disposition without rewriting executable mathematics evidence.",
        "operationId": "review_mathematics_verification_from_admin_workspace_api_admin_mathematics_verifications__run_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MathVerificationReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathVerificationProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Mathematics Verification From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/media-workspace/projects": {
      "get": {
        "description": "Every production, each row stating its worst segment.",
        "operationId": "read_projects_api_admin_media_workspace_projects_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/MediaProjectSummaryView"
                  },
                  "title": "Response Read Projects Api Admin Media Workspace Projects Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such production, or no such baseline."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Projects",
        "tags": ["media-workspace"]
      },
      "post": {
        "description": "Put a production into the workspace, whole.\n\nThe aggregate validates its own references on the way in \u2014 a binding to a\nsegment this package does not have, or a decision about a finding nobody\nraised, is refused here rather than rendered as an empty row later.",
        "operationId": "put_project_api_admin_media_workspace_projects_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaWorkspaceAggregate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaProjectSummaryView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such production, or no such baseline."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Put Project",
        "tags": ["media-workspace"]
      }
    },
    "/api/admin/media-workspace/projects/{project_id}": {
      "get": {
        "description": "One production: its timeline, its gaps and what stops it reaching a learner.",
        "operationId": "read_project_api_admin_media_workspace_projects__project_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaProjectDetailView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such production, or no such baseline."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Project",
        "tags": ["media-workspace"]
      }
    },
    "/api/admin/media-workspace/projects/{project_id}/cut": {
      "get": {
        "description": "The digest of the current cut, and of the cut each track covers.\n\nThis exists so a caption producer can compute the anchor it must store\nrather than guess it. A staleness rule nobody can satisfy is a rule people\nroute around, and a routed-around rule is worse than none.",
        "operationId": "read_cut_anchor_api_admin_media_workspace_projects__project_id__cut_get",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Read Cut Anchor Api Admin Media Workspace Projects  Project Id  Cut Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such production, or no such baseline."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Cut Anchor",
        "tags": ["media-workspace"]
      }
    },
    "/api/admin/media-workspace/projects/{project_id}/replacement": {
      "post": {
        "description": "What replacing part of this cut would cost, in sign-offs and refusals.",
        "operationId": "preview_replacement_api_admin_media_workspace_projects__project_id__replacement_post",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaReplacementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaReplacementView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such production, or no such baseline."
          },
          "422": {
            "description": "The workspace does not hold together."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview Replacement",
        "tags": ["media-workspace"]
      }
    },
    "/api/admin/metis-v1-launch-gate": {
      "get": {
        "operationId": "get_metis_v1_launch_gate_api_admin_metis_v1_launch_gate_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumLaunchGateDashboardResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Metis V1 Launch Gate",
        "tags": ["admin"]
      }
    },
    "/api/admin/moderation/incidents": {
      "get": {
        "operationId": "list_moderation_incidents_api_admin_moderation_incidents_get",
        "parameters": [
          {
            "in": "query",
            "name": "incident_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Incident Type"
            }
          },
          {
            "in": "query",
            "name": "severity",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Severity"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ModerationIncidentResponse"
                  },
                  "title": "Response List Moderation Incidents Api Admin Moderation Incidents Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Moderation Incidents",
        "tags": ["admin"]
      }
    },
    "/api/admin/moderation/incidents/{incident_id}/decision": {
      "post": {
        "operationId": "decide_moderation_incident_api_admin_moderation_incidents__incident_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "incident_id",
            "required": true,
            "schema": {
              "title": "Incident Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModerationIncidentDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModerationIncidentDecisionResultResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Decide Moderation Incident",
        "tags": ["admin"]
      }
    },
    "/api/admin/monitoring": {
      "get": {
        "operationId": "get_monitoring_api_admin_monitoring_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitoringDataResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Monitoring",
        "tags": ["admin"]
      }
    },
    "/api/admin/operator-inspections": {
      "get": {
        "operationId": "get_operator_inspections_api_admin_operator_inspections_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperatorInspectionResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Operator Inspections",
        "tags": ["admin"]
      }
    },
    "/api/admin/palette/entries": {
      "get": {
        "description": "Every command this caller may run, grouped and labelled.",
        "operationId": "read_entries_api_admin_palette_entries_get",
        "parameters": [
          {
            "in": "query",
            "name": "context",
            "required": false,
            "schema": {
              "default": "anywhere",
              "enum": ["anywhere", "course", "item", "review", "operator"],
              "title": "Context",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "maxLength": 16,
              "minLength": 2,
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "default": "",
              "maxLength": 120,
              "title": "Q",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaletteView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not run this command."
          },
          "404": {
            "description": "No such command."
          },
          "409": {
            "description": "The selection this was built for has moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "The router tree this gate reads is not available here."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Entries",
        "tags": ["command-palette"]
      }
    },
    "/api/admin/palette/entries/{entry_id}/execute": {
      "post": {
        "description": "Resolve a command, if this caller may run it.\n\nThe same predicate the list route filters by. An entry the list withheld is\nrefused here with the reason it was withheld, rather than running because\nthe caller knew its id.",
        "operationId": "execute_entry_api_admin_palette_entries__entry_id__execute_post",
        "parameters": [
          {
            "in": "path",
            "name": "entry_id",
            "required": true,
            "schema": {
              "title": "Entry Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExecuteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not run this command."
          },
          "404": {
            "description": "No such command."
          },
          "409": {
            "description": "The selection this was built for has moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "The router tree this gate reads is not available here."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Execute Entry",
        "tags": ["command-palette"]
      }
    },
    "/api/admin/palette/integrity": {
      "get": {
        "description": "Whether every registration still resolves. Computed now, not asserted.",
        "operationId": "read_integrity_api_admin_palette_integrity_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteIntegrityReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not run this command."
          },
          "404": {
            "description": "No such command."
          },
          "409": {
            "description": "The selection this was built for has moved."
          },
          "503": {
            "description": "The router tree this gate reads is not available here."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Integrity",
        "tags": ["command-palette"]
      }
    },
    "/api/admin/psychometrics/queue": {
      "get": {
        "description": "Calibration runs waiting to be looked at, newest first.",
        "operationId": "read_queue_api_admin_psychometrics_queue_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewQueue"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Queue",
        "tags": ["psychometric-review"]
      }
    },
    "/api/admin/psychometrics/runs/{run_id}": {
      "get": {
        "description": "What one calibration found, and what this authority may do about it.",
        "operationId": "read_run_api_admin_psychometrics_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This authority may not take that action."
          },
          "404": {
            "description": "No such run in this tenant."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Run",
        "tags": ["psychometric-review"]
      }
    },
    "/api/admin/psychometrics/runs/{run_id}/decisions": {
      "post": {
        "description": "Record one decision against one run.\n\nThe authority is taken from the session, not from the body: a decision that\nnamed its own authority would let a caller promote by saying they were a\npsychometrician. The contract then refuses the action if that authority\ndoes not admit it, and refuses a countersignature from the same person or\nthe same discipline.",
        "operationId": "record_decision_api_admin_psychometrics_runs__run_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewDecision"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewDecision"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This authority may not take that action."
          },
          "404": {
            "description": "No such run in this tenant."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Decision",
        "tags": ["psychometric-review"]
      }
    },
    "/api/admin/publications/candidates": {
      "get": {
        "operationId": "read_candidates_api_admin_publications_candidates_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CandidateSummary"
                  },
                  "title": "Response Read Candidates Api Admin Publications Candidates Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Candidates",
        "tags": ["publication-candidates"]
      },
      "post": {
        "description": "Pin nine dimensions into one digest. The digest is computed here.",
        "operationId": "assemble_candidate_api_admin_publications_candidates_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CandidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidateSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Assemble Candidate",
        "tags": ["publication-candidates"]
      }
    },
    "/api/admin/publications/candidates/{candidate_id}": {
      "get": {
        "description": "The newest candidate, its approval ledger, and where it actually got to.",
        "operationId": "read_candidate_api_admin_publications_candidates__candidate_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CandidateDetail"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Candidate",
        "tags": ["publication-candidates"]
      }
    },
    "/api/admin/publications/candidates/{candidate_id}/approvals": {
      "post": {
        "description": "Sign one dimension of the current candidate, as yourself.",
        "operationId": "approve_dimension_api_admin_publications_candidates__candidate_id__approvals_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApprovalLedger"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Approve Dimension",
        "tags": ["publication-candidates"]
      }
    },
    "/api/admin/publications/candidates/{candidate_id}/schedules": {
      "get": {
        "operationId": "read_schedules_api_admin_publications_candidates__candidate_id__schedules_get",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ScheduleSummary"
                  },
                  "title": "Response Read Schedules Api Admin Publications Candidates  Candidate Id  Schedules Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Schedules",
        "tags": ["publication-candidates"]
      },
      "post": {
        "description": "Plan when each target is written, against this exact candidate.",
        "operationId": "plan_schedule_api_admin_publications_candidates__candidate_id__schedules_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleSummary"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Plan Schedule",
        "tags": ["publication-candidates"]
      }
    },
    "/api/admin/publications/candidates/{candidate_id}/schedules/{schedule_id}/confirm": {
      "post": {
        "description": "Confirm a schedule against an unchanged candidate. Returns refusals.",
        "operationId": "confirm_schedule_api_admin_publications_candidates__candidate_id__schedules__schedule_id__confirm_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "schedule_id",
            "required": true,
            "schema": {
              "title": "Schedule Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "title": "Response Confirm Schedule Api Admin Publications Candidates  Candidate Id  Schedules  Schedule Id  Confirm Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Confirm Schedule",
        "tags": ["publication-candidates"]
      }
    },
    "/api/admin/publications/candidates/{candidate_id}/schedules/{schedule_id}/preview": {
      "post": {
        "description": "Resolve every window and report everything wrong with the plan.",
        "operationId": "preview_schedule_api_admin_publications_candidates__candidate_id__schedules__schedule_id__preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "schedule_id",
            "required": true,
            "schema": {
              "title": "Schedule Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulePreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview Schedule",
        "tags": ["publication-candidates"]
      }
    },
    "/api/admin/publications/candidates/{candidate_id}/status": {
      "get": {
        "description": "Where this candidate actually got to, per target.",
        "operationId": "read_status_api_admin_publications_candidates__candidate_id__status_get",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicationStatusView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Status",
        "tags": ["publication-candidates"]
      },
      "post": {
        "description": "Record what happened at each target, and compute what that means.\n\nThe caller supplies attempts and read-backs. It does not supply a status:\nthat is derived here, and it is `published` only when all four facets of\nevery target read back and matched.",
        "operationId": "record_status_api_admin_publications_candidates__candidate_id__status_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatusBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicationStatusView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor may not take this role here."
          },
          "404": {
            "description": "No such candidate, schedule or status."
          },
          "409": {
            "description": "The candidate, the schedule or the approval no longer lines up."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Status",
        "tags": ["publication-candidates"]
      }
    },
    "/api/admin/review-mobile/scope": {
      "get": {
        "description": "What the reviewer surface offers, and what it refuses to.",
        "operationId": "read_scope_api_admin_review_mobile_scope_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MobileScope"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Scope",
        "tags": ["reviewer-mode"]
      }
    },
    "/api/admin/review-mobile/subjects": {
      "get": {
        "description": "Identities only. No payload is listed, projected or otherwise.",
        "operationId": "read_subjects_api_admin_review_mobile_subjects_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReviewSubject"
                  },
                  "title": "Response Read Subjects Api Admin Review Mobile Subjects Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not decide this review."
          },
          "404": {
            "description": "No such subject."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Subjects",
        "tags": ["reviewer-mode"]
      },
      "post": {
        "description": "Put a subject under review, payload and all. The payload stays here.",
        "operationId": "put_subject_api_admin_review_mobile_subjects_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewSubjectIntake"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewSubject"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not decide this review."
          },
          "404": {
            "description": "No such subject."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Put Subject",
        "tags": ["reviewer-mode"]
      }
    },
    "/api/admin/review-mobile/subjects/{subject_id}": {
      "get": {
        "description": "The subject as this pair may see it. Withheld fields are named.\n\nThe unprojected payload is read from the row and never leaves this\nfunction. A caller cannot ask for it, because there is no route that\nreturns it.",
        "operationId": "read_subject_api_admin_review_mobile_subjects__subject_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role",
            "required": true,
            "schema": {
              "enum": [
                "author",
                "editor",
                "subject_expert",
                "accessibility_specialist",
                "integrity_officer",
                "learner_support"
              ],
              "title": "Role",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "purpose",
            "required": true,
            "schema": {
              "enum": ["content", "accessibility", "integrity", "psychometrics", "learner_support"],
              "title": "Purpose",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "revision",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Revision"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectedSubject"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not decide this review."
          },
          "404": {
            "description": "No such subject."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Subject",
        "tags": ["reviewer-mode"]
      }
    },
    "/api/admin/review-mobile/subjects/{subject_id}/decisions": {
      "post": {
        "description": "Record a conclusion, if this reviewer may take it on this revision.",
        "operationId": "record_decision_api_admin_review_mobile_subjects__subject_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MobileDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewDecisionResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not decide this review."
          },
          "404": {
            "description": "No such subject."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Decision",
        "tags": ["reviewer-mode"]
      }
    },
    "/api/admin/review-mobile/visibility": {
      "get": {
        "description": "What this pair would be shown. Answerable without fetching anything.",
        "operationId": "read_visibility_api_admin_review_mobile_visibility_get",
        "parameters": [
          {
            "in": "query",
            "name": "role",
            "required": true,
            "schema": {
              "enum": [
                "author",
                "editor",
                "subject_expert",
                "accessibility_specialist",
                "integrity_officer",
                "learner_support"
              ],
              "title": "Role",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "purpose",
            "required": true,
            "schema": {
              "enum": ["content", "accessibility", "integrity", "psychometrics", "learner_support"],
              "title": "Purpose",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewVisibilityView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not decide this review."
          },
          "404": {
            "description": "No such subject."
          },
          "409": {
            "description": "The subject has moved under this decision."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A projection could not be verified and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Visibility",
        "tags": ["reviewer-mode"]
      }
    },
    "/api/admin/review-queues": {
      "get": {
        "operationId": "list_review_queues_api_admin_review_queues_get",
        "parameters": [
          {
            "in": "query",
            "name": "queue_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Queue Type"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReviewQueueItemResponse"
                  },
                  "title": "Response List Review Queues Api Admin Review Queues Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Review Queues",
        "tags": ["admin"]
      }
    },
    "/api/admin/review-queues/overview": {
      "get": {
        "operationId": "get_review_queue_overview_api_admin_review_queues_overview_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewQueueOverviewResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Review Queue Overview",
        "tags": ["admin"]
      }
    },
    "/api/admin/review-queues/{queue_type}/{item_id}": {
      "get": {
        "operationId": "get_review_queue_item_api_admin_review_queues__queue_type___item_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "queue_type",
            "required": true,
            "schema": {
              "title": "Queue Type",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewQueueDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Review Queue Item",
        "tags": ["admin"]
      }
    },
    "/api/admin/review-queues/{queue_type}/{item_id}/decision": {
      "post": {
        "operationId": "review_queue_item_api_admin_review_queues__queue_type___item_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "queue_type",
            "required": true,
            "schema": {
              "title": "Queue Type",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewDecisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Queue Item",
        "tags": ["admin"]
      }
    },
    "/api/admin/review-queues/{queue_type}/{item_id}/workflow-action": {
      "post": {
        "operationId": "review_queue_workflow_action_api_admin_review_queues__queue_type___item_id__workflow_action_post",
        "parameters": [
          {
            "in": "path",
            "name": "queue_type",
            "required": true,
            "schema": {
              "title": "Queue Type",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AvatarTeacherWorkflowActionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvatarTeacherWorkflowActionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Queue Workflow Action",
        "tags": ["admin"]
      }
    },
    "/api/admin/sequencing-overlays/analyses": {
      "post": {
        "description": "Merge and gate an authored overlay set as the administrator.",
        "operationId": "create_sequencing_overlay_from_admin_workspace_api_admin_sequencing_overlays_analyses_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SequencingOverlayRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SequencingOverlayResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Sequencing Overlay From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/sequencing-overlays/workspace": {
      "get": {
        "description": "List overlay analyses with their merge, floor, impact, and decision evidence.",
        "operationId": "get_sequencing_overlay_workspace_api_admin_sequencing_overlays_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SequencingOverlayWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Sequencing Overlay Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/solution-process-verifications/runs": {
      "post": {
        "description": "Execute exact worked-solution process checks as the administrator.",
        "operationId": "create_solution_process_from_admin_workspace_api_admin_solution_process_verifications_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolutionProcessVerificationRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolutionProcessVerificationRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Solution Process From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/solution-process-verifications/workspace": {
      "get": {
        "description": "List immutable steps, traces, final-answer dimensions, and review evidence.",
        "operationId": "get_solution_process_workspace_api_admin_solution_process_verifications_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolutionProcessWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Solution Process Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/solution-process-verifications/{run_id}/decision": {
      "post": {
        "description": "Append corrections without rewriting raw process or final-answer evidence.",
        "operationId": "review_solution_process_from_admin_workspace_api_admin_solution_process_verifications__run_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolutionProcessReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolutionProcessProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Solution Process From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-citations/workspace": {
      "get": {
        "description": "List citation provenance, locator survival, and rights-safe export context.",
        "operationId": "get_source_citation_workspace_api_admin_source_citations_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCitationWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Source Citation Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-citations/{package_id}": {
      "post": {
        "description": "Attach an exact citation using authenticated administrator authorship.",
        "operationId": "attach_source_citation_from_admin_workspace_api_admin_source_citations__package_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCitationAttachmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCitationSafeHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Attach Source Citation From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-claims/workspace": {
      "get": {
        "description": "List claim proposals, exact source context, and provider failure receipts.",
        "operationId": "get_source_claim_workspace_api_admin_source_claims_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceClaimWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Source Claim Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-claims/{package_id}/{run_id}/{proposal_id}/decision": {
      "post": {
        "description": "Accept, edit, reject, or defer one proposal using authenticated reviewer identity.",
        "operationId": "review_source_claim_proposal_api_admin_source_claims__package_id___run_id___proposal_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceClaimReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceClaimProposalReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Source Claim Proposal",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-governance/workspace": {
      "get": {
        "description": "List source-version governance records across tenants for authorized review.",
        "operationId": "get_source_governance_workspace_api_admin_source_governance_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceGovernanceWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Source Governance Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-governance/{package_id}/{item_id}/decision": {
      "post": {
        "description": "Record a source-governance decision using authenticated administrator identity.",
        "operationId": "review_source_governance_item_api_admin_source_governance__package_id___item_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceGovernanceReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceGovernanceItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Source Governance Item",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-impact/workspace": {
      "get": {
        "operationId": "get_source_impact_workspace_api_admin_source_impact_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceImpactWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect verified source changes and unresolved downstream impacts",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-impact/{package_id}/changes": {
      "post": {
        "operationId": "ingest_verified_source_change_api_admin_source_impact__package_id__changes_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceChangeIntakeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceChangeEventResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Ingest a verified source update, supersession, retraction, or rights change",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-impact/{package_id}/changes/{change_event_id}": {
      "get": {
        "operationId": "get_source_change_impact_detail_api_admin_source_impact__package_id__changes__change_event_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "change_event_id",
            "required": true,
            "schema": {
              "title": "Change Event Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceBlastRadiusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect an exact source change path and stable impact page",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-impact/{package_id}/changes/{change_event_id}/remediations": {
      "post": {
        "operationId": "remediate_source_change_impacts_api_admin_source_impact__package_id__changes__change_event_id__remediations_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "change_event_id",
            "required": true,
            "schema": {
              "title": "Change Event Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceRemediationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRemediationReceipt"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Route or complete source impact remediation with revision read-back",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-rights/workspace": {
      "get": {
        "operationId": "get_source_rights_workspace_api_admin_source_rights_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRightsWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Source Rights Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-rights/{item_id}/decision": {
      "post": {
        "operationId": "review_source_rights_item_api_admin_source_rights__item_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRightsDecisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Source Rights Item",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-risk/overlays": {
      "post": {
        "description": "Create an append-only institution overlay after proving it only tightens code floors.",
        "operationId": "create_source_risk_overlay_api_admin_source_risk_overlays_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceRiskInstitutionOverlayRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRiskInstitutionOverlayResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Source Risk Overlay",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-risk/registry": {
      "get": {
        "description": "Return immutable code floors and the authoritative framework decisions behind them.",
        "operationId": "get_source_risk_domain_registry_api_admin_source_risk_registry_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRiskDomainRegistryResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Source Risk Domain Registry",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-risk/workspace": {
      "get": {
        "description": "Re-evaluate cross-tenant risk assessments against current lifecycle evidence.",
        "operationId": "get_source_risk_workspace_api_admin_source_risk_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRiskWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Source Risk Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/source-risk/{package_id}/{assessment_id}/decision": {
      "post": {
        "description": "Bind a qualified administrator decision to the exact current evidence hash.",
        "operationId": "review_source_risk_assessment_api_admin_source_risk__package_id___assessment_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceRiskReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRiskAssessmentHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Review Source Risk Assessment",
        "tags": ["admin"]
      }
    },
    "/api/admin/taxonomies/{taxonomy}": {
      "get": {
        "description": "Every entry in one taxonomy, with the floor and the collisions.",
        "operationId": "read_taxonomy_api_admin_taxonomies__taxonomy__get",
        "parameters": [
          {
            "in": "path",
            "name": "taxonomy",
            "required": true,
            "schema": {
              "enum": [
                "subject",
                "discipline",
                "objective",
                "standard",
                "credential",
                "modality",
                "level",
                "audience"
              ],
              "title": "Taxonomy",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxonomyListing"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This change would break a code-owned entry."
          },
          "404": {
            "description": "No such entry in this taxonomy."
          },
          "409": {
            "description": "The preview this was approved against moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Taxonomy",
        "tags": ["taxonomy-registry"]
      }
    },
    "/api/admin/taxonomies/{taxonomy}/{code}/changes": {
      "post": {
        "description": "Move one entry through its lifecycle, against a preview that was read.",
        "operationId": "apply_change_api_admin_taxonomies__taxonomy___code__changes_post",
        "parameters": [
          {
            "in": "path",
            "name": "taxonomy",
            "required": true,
            "schema": {
              "enum": [
                "subject",
                "discipline",
                "objective",
                "standard",
                "credential",
                "modality",
                "level",
                "audience"
              ],
              "title": "Taxonomy",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "code",
            "required": true,
            "schema": {
              "title": "Code",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxonomyEntry"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This change would break a code-owned entry."
          },
          "404": {
            "description": "No such entry in this taxonomy."
          },
          "409": {
            "description": "The preview this was approved against moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply Change",
        "tags": ["taxonomy-registry"]
      }
    },
    "/api/admin/taxonomies/{taxonomy}/{code}/impact": {
      "get": {
        "description": "What this change would touch, counted per site.\n\nThe counts come from the sites themselves; a site that cannot be reached is\nmarked rather than reported as zero, because a zero from a site nobody\nasked is the number a person approves a rename against.",
        "operationId": "preview_change_api_admin_taxonomies__taxonomy___code__impact_get",
        "parameters": [
          {
            "in": "path",
            "name": "taxonomy",
            "required": true,
            "schema": {
              "enum": [
                "subject",
                "discipline",
                "objective",
                "standard",
                "credential",
                "modality",
                "level",
                "audience"
              ],
              "title": "Taxonomy",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "code",
            "required": true,
            "schema": {
              "title": "Code",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "change",
            "required": false,
            "schema": {
              "default": "rename",
              "title": "Change",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxonomyImpactPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This change would break a code-owned entry."
          },
          "404": {
            "description": "No such entry in this taxonomy."
          },
          "409": {
            "description": "The preview this was approved against moved."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview Change",
        "tags": ["taxonomy-registry"]
      }
    },
    "/api/admin/taxonomies/{taxonomy}/{code}/reissuable": {
      "get": {
        "description": "Whether this code may be given to something new. Almost never.",
        "operationId": "code_is_reissuable_api_admin_taxonomies__taxonomy___code__reissuable_get",
        "parameters": [
          {
            "in": "path",
            "name": "taxonomy",
            "required": true,
            "schema": {
              "enum": [
                "subject",
                "discipline",
                "objective",
                "standard",
                "credential",
                "modality",
                "level",
                "audience"
              ],
              "title": "Taxonomy",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "code",
            "required": true,
            "schema": {
              "title": "Code",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Code Is Reissuable Api Admin Taxonomies  Taxonomy   Code  Reissuable Get",
                  "type": "boolean"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Code Is Reissuable",
        "tags": ["taxonomy-registry"]
      }
    },
    "/api/admin/tutor-bindings/bindings": {
      "post": {
        "description": "Bind a tutor configuration to course material as the administrator.",
        "operationId": "create_tutor_binding_from_admin_workspace_api_admin_tutor_bindings_bindings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutorBindingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorBindingResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Tutor Binding From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/tutor-bindings/workspace": {
      "get": {
        "description": "List tutor bindings with their material resolutions and activation decisions.",
        "operationId": "get_tutor_binding_workspace_api_admin_tutor_bindings_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorBindingWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Binding Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/tutor-responses/evaluations": {
      "post": {
        "description": "Judge one tutor turn as the administrator.",
        "operationId": "create_tutor_response_evaluation_from_admin_workspace_api_admin_tutor_responses_evaluations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutorResponseEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorResponseProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Tutor Response Evaluation From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/tutor-responses/evaluations/{evaluation_id}/reviews": {
      "post": {
        "description": "Append an administrator review beside a verdict without moving it.",
        "operationId": "append_tutor_response_review_from_admin_workspace_api_admin_tutor_responses_evaluations__evaluation_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "evaluation_id",
            "required": true,
            "schema": {
              "title": "Evaluation Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutorResponseReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorResponseProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "409": {
            "description": "This conflicts with the admin record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append Tutor Response Review From Admin Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/tutor-responses/workspace": {
      "get": {
        "description": "List judged tutor turns with their verdicts, actions and corpus evidence.",
        "operationId": "get_tutor_response_workspace_api_admin_tutor_responses_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorResponseWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Response Workspace",
        "tags": ["admin"]
      }
    },
    "/api/admin/ui-states/actions": {
      "get": {
        "description": "Whether a surface in this state may offer this action, and why.",
        "operationId": "read_action_api_admin_ui_states_actions_get",
        "parameters": [
          {
            "in": "query",
            "name": "state",
            "required": true,
            "schema": {
              "enum": [
                "ready",
                "loading",
                "empty",
                "unauthorized",
                "stale",
                "offline",
                "conflict",
                "not_configured",
                "degraded",
                "failed"
              ],
              "title": "State",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": true,
            "schema": {
              "enum": ["read", "mutate", "retry", "refresh", "merge", "request_access", "contact"],
              "title": "Action",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionAnswer"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such state or surface."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Action",
        "tags": ["ui-states"]
      }
    },
    "/api/admin/ui-states/contract": {
      "get": {
        "description": "The whole table, with its text resolved for one locale.",
        "operationId": "read_contract_api_admin_ui_states_contract_get",
        "parameters": [
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "maxLength": 16,
              "minLength": 2,
              "title": "Locale",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StateContractView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such state or surface."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Contract",
        "tags": ["ui-states"]
      }
    },
    "/api/admin/ui-states/matrix": {
      "get": {
        "description": "Every surface in every state. A hundred cells and no holes.",
        "operationId": "read_matrix_api_admin_ui_states_matrix_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UiStateMatrix"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such state or surface."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Matrix",
        "tags": ["ui-states"]
      }
    },
    "/api/admin/ui-states/matrix/{surface}": {
      "get": {
        "description": "One surface, in every state.\n\nIts own model rather than a filtered matrix: a matrix missing ninety cells\nis not a matrix, and returning one would have meant bypassing the check\nthat says so.",
        "operationId": "read_surface_row_api_admin_ui_states_matrix__surface__get",
        "parameters": [
          {
            "in": "path",
            "name": "surface",
            "required": true,
            "schema": {
              "enum": [
                "route",
                "list",
                "detail",
                "editor",
                "preview",
                "media",
                "job",
                "review",
                "publication",
                "integration"
              ],
              "title": "Surface",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SurfaceStates"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such state or surface."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Surface Row",
        "tags": ["ui-states"]
      }
    },
    "/api/admin/ui-states/recovery/{event}": {
      "get": {
        "description": "What this recovery is required to keep.",
        "operationId": "read_recovery_api_admin_ui_states_recovery__event__get",
        "parameters": [
          {
            "in": "path",
            "name": "event",
            "required": true,
            "schema": {
              "enum": ["retry", "reconnect", "reauth", "refresh", "merge", "service_recovery"],
              "title": "Event",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "title": "Response Read Recovery Api Admin Ui States Recovery  Event  Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such state or surface."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Recovery",
        "tags": ["ui-states"]
      }
    },
    "/api/admin/users": {
      "get": {
        "operationId": "list_users_api_admin_users_get",
        "parameters": [
          {
            "in": "query",
            "name": "role",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Role"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 25,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedUserListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Users",
        "tags": ["admin"]
      }
    },
    "/api/admin/users/{user_id}": {
      "get": {
        "operationId": "get_user_api_admin_users__user_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedUserDetailResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get User",
        "tags": ["admin"]
      }
    },
    "/api/admin/users/{user_id}/learner-actions": {
      "post": {
        "operationId": "apply_user_learner_action_api_admin_users__user_id__learner_actions_post",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerActionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerActionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply User Learner Action",
        "tags": ["admin"]
      }
    },
    "/api/admin/users/{user_id}/role": {
      "patch": {
        "operationId": "update_user_role_api_admin_users__user_id__role_patch",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRoleUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserMutationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update User Role",
        "tags": ["admin"]
      }
    },
    "/api/admin/users/{user_id}/status": {
      "patch": {
        "operationId": "update_user_status_api_admin_users__user_id__status_patch",
        "parameters": [
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserStatusUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserMutationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such admin record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update User Status",
        "tags": ["admin"]
      }
    },
    "/api/admin/workspaces/{workspace}/{logical_id}": {
      "get": {
        "description": "One workspace screen: the subject, its panels, and what may be done.\n\nA refusal answers with the status it should and a view that says why, so\nthe screen renders a sentence rather than a blank shell.",
        "operationId": "read_workspace_api_admin_workspaces__workspace___logical_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "workspace",
            "required": true,
            "schema": {
              "enum": ["course", "item"],
              "title": "Workspace",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "logical_id",
            "required": true,
            "schema": {
              "title": "Logical Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "revision",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Revision"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "Your role does not read this kind."
          },
          "404": {
            "description": "No such subject, at that revision."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Workspace",
        "tags": ["workspaces"]
      }
    },
    "/api/agent-commands/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the eligibility matrix, and every race probe.",
        "operationId": "get_agent_command_evaluation_api_agent_commands_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ControlEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Agent Command Evaluation",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs": {
      "post": {
        "description": "Record a run's starting control state. Immutable once written.",
        "operationId": "register_run_control_state_api_agent_commands_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunControlState"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunControlState"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent command record."
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Register Run Control State",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}": {
      "get": {
        "description": "The state now, rebuilt by replaying the command history.",
        "operationId": "get_run_control_state_api_agent_commands_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunControlState"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent command record."
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Run Control State",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/budget-kill": {
      "post": {
        "operationId": "budget_kill_run_api_agent_commands_runs__run_id__budget_kill_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BudgetKillCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommandProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Stop before the next spend",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/cancel": {
      "post": {
        "operationId": "cancel_run_api_agent_commands_runs__run_id__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommandProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "End the run and fence late results",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/commands": {
      "get": {
        "description": "The whole command history for one run, oldest first.",
        "operationId": "list_run_commands_api_agent_commands_runs__run_id__commands_get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CommandRecord"
                  },
                  "title": "Response List Run Commands Api Agent Commands Runs  Run Id  Commands Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent command record."
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Run Commands",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/fence/{result_fence}": {
      "get": {
        "description": "Whether a result carrying this fence may still land on this run.",
        "operationId": "check_result_fence_api_agent_commands_runs__run_id__fence__result_fence__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "result_fence",
            "required": true,
            "schema": {
              "title": "Result Fence",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FenceCheck"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent command record."
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Result Fence",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/pause": {
      "post": {
        "operationId": "pause_run_api_agent_commands_runs__run_id__pause_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PauseCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommandProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Stop at the next step boundary",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/redirect": {
      "post": {
        "operationId": "redirect_run_api_agent_commands_runs__run_id__redirect_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RedirectCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommandProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Point at a new plan revision",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/replay": {
      "post": {
        "operationId": "replay_run_api_agent_commands_runs__run_id__replay_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplayCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommandProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Run it again as a new run",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-commands/runs/{run_id}/resume": {
      "post": {
        "operationId": "resume_run_api_agent_commands_runs__run_id__resume_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResumeCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommandProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the agent command record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Continue after revalidation",
        "tags": ["agent-commands"]
      }
    },
    "/api/agent-plans/dispatches": {
      "get": {
        "description": "List this tenant's immutable dispatch decisions, oldest first.",
        "operationId": "list_agent_plan_dispatches_api_agent_plans_dispatches_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DispatchProjection"
                  },
                  "title": "Response List Agent Plan Dispatches Api Agent Plans Dispatches Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent plan record."
          },
          "409": {
            "description": "This conflicts with the agent plan record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Agent Plan Dispatches",
        "tags": ["agent-plans"]
      },
      "post": {
        "description": "Check the bindings, expand the template if nothing refuses, and record either way.",
        "operationId": "create_agent_plan_dispatch_api_agent_plans_dispatches_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlanDispatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DispatchProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent plan record."
          },
          "409": {
            "description": "This conflicts with the agent plan record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Agent Plan Dispatch",
        "tags": ["agent-plans"]
      }
    },
    "/api/agent-plans/dispatches/{decision_id}": {
      "get": {
        "description": "Return one tenant-visible immutable dispatch decision.",
        "operationId": "get_agent_plan_dispatch_api_agent_plans_dispatches__decision_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "decision_id",
            "required": true,
            "schema": {
              "title": "Decision Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DispatchProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent plan record."
          },
          "409": {
            "description": "This conflicts with the agent plan record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Agent Plan Dispatch",
        "tags": ["agent-plans"]
      }
    },
    "/api/agent-plans/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the whole grant matrix, and every dispatch probe.",
        "operationId": "get_agent_plan_evaluation_api_agent_plans_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlanEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Agent Plan Evaluation",
        "tags": ["agent-plans"]
      }
    },
    "/api/agent-plans/templates": {
      "get": {
        "description": "List the ratified templates a dispatch may name.",
        "operationId": "list_agent_plan_templates_api_agent_plans_templates_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AgentPlanTemplate"
                  },
                  "title": "Response List Agent Plan Templates Api Agent Plans Templates Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Agent Plan Templates",
        "tags": ["agent-plans"]
      }
    },
    "/api/agent-results/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the field-name scan, and every authority probe.",
        "operationId": "get_result_intake_evaluation_api_agent_results_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntakeEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Result Intake Evaluation",
        "tags": ["agent-results"]
      }
    },
    "/api/agent-results/proposals/{proposal_id}/decisions": {
      "get": {
        "description": "List the decisions recorded about one proposal.",
        "operationId": "list_proposal_decisions_api_agent_results_proposals__proposal_id__decisions_get",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReviewDecisionRecord"
                  },
                  "title": "Response List Proposal Decisions Api Agent Results Proposals  Proposal Id  Decisions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent result intake record."
          },
          "409": {
            "description": "This conflicts with the agent result intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Proposal Decisions",
        "tags": ["agent-results"]
      },
      "post": {
        "description": "Record a person's accept, edit-and-accept, reject or defer.",
        "operationId": "record_proposal_decision_api_agent_results_proposals__proposal_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewDecisionRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent result intake record."
          },
          "409": {
            "description": "This conflicts with the agent result intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Proposal Decision",
        "tags": ["agent-results"]
      }
    },
    "/api/agent-results/results": {
      "get": {
        "description": "List this tenant's immutable intake records, oldest first.",
        "operationId": "list_agent_result_intakes_api_agent_results_results_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ProposalProjection"
                  },
                  "title": "Response List Agent Result Intakes Api Agent Results Results Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent result intake record."
          },
          "409": {
            "description": "This conflicts with the agent result intake record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Agent Result Intakes",
        "tags": ["agent-results"]
      },
      "post": {
        "description": "Verify a signed result and store it as a proposal, or record why not.",
        "operationId": "take_in_agent_result_api_agent_results_results_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntakeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProposalProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent result intake record."
          },
          "409": {
            "description": "This conflicts with the agent result intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Take In Agent Result",
        "tags": ["agent-results"]
      }
    },
    "/api/agent-results/results/{envelope_id}": {
      "get": {
        "description": "Return one tenant-visible immutable intake record.",
        "operationId": "get_agent_result_intake_api_agent_results_results__envelope_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "envelope_id",
            "required": true,
            "schema": {
              "title": "Envelope Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProposalProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent result intake record."
          },
          "409": {
            "description": "This conflicts with the agent result intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Agent Result Intake",
        "tags": ["agent-results"]
      }
    },
    "/api/agent-run-views/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the whole audience matrix, and every isolation probe.",
        "operationId": "get_agent_run_view_evaluation_api_agent_run_views_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunViewEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Agent Run View Evaluation",
        "tags": ["agent-run-views"]
      }
    },
    "/api/agent-run-views/runs": {
      "get": {
        "description": "List this tenant's runs as this caller's audience sees them.",
        "operationId": "list_agent_runs_api_agent_run_views_runs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RunListItemView"
                  },
                  "title": "Response List Agent Runs Api Agent Run Views Runs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such agent run view record."
          },
          "409": {
            "description": "This conflicts with the agent run view record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Agent Runs",
        "tags": ["agent-run-views"]
      }
    },
    "/api/agent-run-views/views": {
      "post": {
        "description": "Return one run as this caller's audience is cleared to see it.",
        "operationId": "get_agent_run_view_api_agent_run_views_views_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunViewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunViewProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such agent run view record."
          },
          "409": {
            "description": "This conflicts with the agent run view record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Agent Run View",
        "tags": ["agent-run-views"]
      }
    },
    "/api/agent-runtime/evaluation/gold-sets": {
      "get": {
        "description": "Return the versioned evaluation catalog for Metis agent-runtime checks.",
        "operationId": "get_agent_evaluation_gold_sets_api_agent_runtime_evaluation_gold_sets_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGoldSetCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Discover versioned Metis agent gold sets, rubrics, and privacy policy",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/evaluation/rubric-scores": {
      "post": {
        "description": "Score an annotation against a versioned rubric and persist a privacy receipt.",
        "operationId": "create_agent_rubric_score_api_agent_runtime_evaluation_rubric_scores_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentRubricScoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRubricScoreResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Score a Metis agent annotation with privacy-preserving receipts",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/evaluation/rubric-scores/{score_id}": {
      "get": {
        "description": "Return a persisted rubric score and its privacy receipt.",
        "operationId": "get_agent_rubric_score_api_agent_runtime_evaluation_rubric_scores__score_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "score_id",
            "required": true,
            "schema": {
              "title": "Score Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRubricScoreResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a persisted Metis agent rubric score",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/events": {
      "get": {
        "description": "Return recent bounded agent-runtime observability events.",
        "operationId": "list_agent_runtime_events_api_agent_runtime_events_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 8,
              "maximum": 50,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AgentRuntimeEventResponse"
                  },
                  "title": "Response List Agent Runtime Events Api Agent Runtime Events Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List recent Metis agent runtime events",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/graph-indexes": {
      "post": {
        "description": "Build and persist agent graph indexes for lookup, traversal, and review.",
        "operationId": "create_agent_graph_index_api_agent_runtime_graph_indexes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentGraphIndexRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGraphIndexResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a Metis agent graph index with community summaries",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/graph-indexes/{index_id}": {
      "get": {
        "description": "Return a persisted agent graph index by stable index ID.",
        "operationId": "get_agent_graph_index_api_agent_runtime_graph_indexes__index_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "index_id",
            "required": true,
            "schema": {
              "title": "Index Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentGraphIndexResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a persisted Metis agent graph index",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/orchestration-plans": {
      "post": {
        "description": "Plan a replayable agent-runtime DAG and persist its run envelope.",
        "operationId": "create_agent_orchestration_plan_api_agent_runtime_orchestration_plans_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentOrchestrationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentOrchestrationPlanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a durable Metis agent orchestration plan",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/orchestration-plans/{build_id}": {
      "get": {
        "description": "Return a persisted orchestration plan by durable build ID.",
        "operationId": "get_agent_orchestration_plan_api_agent_runtime_orchestration_plans__build_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "build_id",
            "required": true,
            "schema": {
              "title": "Build Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentOrchestrationPlanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a persisted Metis agent orchestration plan",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/orchestration-runs": {
      "post": {
        "description": "Start executable mode; model/tool adapters fail closed when not configured.",
        "operationId": "start_agent_orchestration_run_api_agent_runtime_orchestration_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentExecutionStartRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentExecutionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This actor does not own the plan it asked to execute."
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "409": {
            "description": "This conflicts with the agent runtime record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "The model or tool runtime is not configured, so executable mode fails closed rather than pretending to run."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Execute a persisted Metis agent DAG through the governed common run spine",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/orchestration-runs/{run_id}": {
      "get": {
        "description": "Return the persisted executable state, evidence, checkpoints, and receipts.",
        "operationId": "get_agent_orchestration_run_api_agent_runtime_orchestration_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentExecutionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a durable governed Metis agent DAG run",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/orchestration-runs/{run_id}/interventions": {
      "post": {
        "description": "Approve gates, pause, resume, or cancel with durable actor/rationale audit.",
        "operationId": "intervene_agent_orchestration_run_api_agent_runtime_orchestration_runs__run_id__interventions_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentExecutionInterventionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentExecutionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply an idempotent human intervention and resume the governed DAG when allowed",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/output-verifications": {
      "post": {
        "description": "Run deterministic verification against generated agent output.",
        "operationId": "create_agent_output_verification_api_agent_runtime_output_verifications_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentOutputVerificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentOutputVerificationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify Metis agent output with symbolic, code, and numeric checks",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/output-verifications/{verification_id}": {
      "get": {
        "description": "Return a persisted output verification by stable verification ID.",
        "operationId": "get_agent_output_verification_api_agent_runtime_output_verifications__verification_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "verification_id",
            "required": true,
            "schema": {
              "title": "Verification Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentOutputVerificationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a persisted Metis agent output verification",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/registry": {
      "get": {
        "description": "Return the canonical Metis agent registry visible to instructors.",
        "operationId": "get_agent_registry_api_agent_runtime_registry_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRegistryResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Discover Metis agent registry, versioned capabilities, and tool grants",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/research-integrity/adjudications": {
      "post": {
        "description": "Run claim extraction, query decomposition, verifier checks, and rollback decisions.",
        "operationId": "create_research_integrity_adjudication_api_agent_runtime_research_integrity_adjudications_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResearchIntegrityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResearchIntegrityResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Adjudicate generated research for fabricated evidence and safe degradation",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/research-integrity/adjudications/{review_id}": {
      "get": {
        "description": "Return a persisted research-integrity review by stable review ID.",
        "operationId": "get_research_integrity_adjudication_api_agent_runtime_research_integrity_adjudications__review_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "review_id",
            "required": true,
            "schema": {
              "title": "Review Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResearchIntegrityResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a persisted generated-research integrity adjudication",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/rollouts": {
      "post": {
        "description": "Build a rollout plan with guardrail metrics, rollback, and kill switches.",
        "operationId": "create_agent_rollout_plan_api_agent_runtime_rollouts_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentRolloutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRolloutPlanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Plan shadow, canary, or champion-challenger rollout for a Metis agent",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/rollouts/{rollout_id}": {
      "get": {
        "description": "Return a persisted rollout plan by stable rollout ID.",
        "operationId": "get_agent_rollout_plan_api_agent_runtime_rollouts__rollout_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "rollout_id",
            "required": true,
            "schema": {
              "title": "Rollout Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentRolloutPlanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a persisted Metis agent rollout plan",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/safety-screenings": {
      "post": {
        "description": "Run deterministic threat screening before agent tools can execute.",
        "operationId": "create_agent_safety_screening_api_agent_runtime_safety_screenings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentSafetyScreeningRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSafetyScreeningResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Screen a Metis agent run for threats, trust zone, and tool isolation",
        "tags": ["agent-runtime"]
      }
    },
    "/api/agent-runtime/safety-screenings/{screening_id}": {
      "get": {
        "description": "Return a persisted safety screening by stable screening ID.",
        "operationId": "get_agent_safety_screening_api_agent_runtime_safety_screenings__screening_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "screening_id",
            "required": true,
            "schema": {
              "title": "Screening Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSafetyScreeningResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such agent runtime record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a persisted Metis agent safety screening",
        "tags": ["agent-runtime"]
      }
    },
    "/api/analytics/achievements": {
      "get": {
        "description": "Return all achievements earned by the current user, ordered by date.",
        "operationId": "user_achievements_api_analytics_achievements_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AchievementResponse"
                  },
                  "title": "Response User Achievements Api Analytics Achievements Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the current user's achievements",
        "tags": ["analytics"]
      }
    },
    "/api/analytics/course/{course_id}": {
      "get": {
        "description": "Return analytics for a specific course.\n\nIncludes enrollment stats, average completion, score distribution,\nand per-module completion rates. Available to the course author\nand admin users.",
        "operationId": "course_analytics_api_analytics_course__course_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Course Analytics Api Analytics Course  Course Id  Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such analytics record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get analytics for a specific course",
        "tags": ["analytics"]
      }
    },
    "/api/analytics/dashboard": {
      "get": {
        "description": "Return a personalized learning dashboard for the current user.\n\nIncludes active enrollments, recent progress, achievement count,\nand average assessment score. Uses Redis caching for performance.",
        "operationId": "user_dashboard_api_analytics_dashboard_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerDashboardResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the current user's learning dashboard",
        "tags": ["analytics"]
      }
    },
    "/api/analytics/platform": {
      "get": {
        "description": "Return platform-wide analytics. Admin access only.\n\nProvides high-level metrics: total users, courses, enrollments,\nassessment submissions, and tutoring session counts.",
        "operationId": "platform_analytics_api_analytics_platform_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Platform Analytics Api Analytics Platform Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get platform-wide analytics (admin only)",
        "tags": ["analytics"]
      }
    },
    "/api/analytics/reminders": {
      "get": {
        "description": "Return live learner reminders derived from current Metis activity.",
        "operationId": "user_reminders_api_analytics_reminders_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerNotificationFeedResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the current user's reminders and continuation notifications",
        "tags": ["analytics"]
      }
    },
    "/api/anchored-comments/evaluation": {
      "get": {
        "description": "Anchor survival for every kind, the protection policy, and the mutation scan.",
        "operationId": "get_anchored_comment_evaluation_api_anchored_comments_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnchoredCommentReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Anchored Comment Evaluation",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/migrations": {
      "post": {
        "description": "Carry every thread on a subject to a new revision, recording each anchor's fate.",
        "operationId": "migrate_subject_threads_api_anchored_comments_migrations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MigrateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrationsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Migrate Subject Threads",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/subjects/{subject_id}/threads": {
      "get": {
        "description": "The threads on a subject this caller may see, each describing where it points.",
        "operationId": "navigate_subject_threads_api_anchored_comments_subjects__subject_id__threads_get",
        "parameters": [
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreadViewsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Navigate Subject Threads",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads": {
      "post": {
        "description": "Open a thread anchored to an exact revision. Every refusal comes back at once.",
        "operationId": "open_thread_api_anchored_comments_threads_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenThreadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommentThread"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not comment here, may not read the path anchored, or is not the author of what it asked to change."
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Open Thread",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads/{thread_id}": {
      "get": {
        "operationId": "get_thread_api_anchored_comments_threads__thread_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "thread_id",
            "required": true,
            "schema": {
              "title": "Thread Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommentThread"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Thread",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads/{thread_id}/edits": {
      "post": {
        "operationId": "edit_thread_comment_api_anchored_comments_threads__thread_id__edits_post",
        "parameters": [
          {
            "in": "path",
            "name": "thread_id",
            "required": true,
            "schema": {
              "title": "Thread Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommentThread"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not comment here, may not read the path anchored, or is not the author of what it asked to change."
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Edit Thread Comment",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads/{thread_id}/history": {
      "get": {
        "description": "Every version. An edit adds one; it does not replace the one before.",
        "operationId": "get_thread_history_api_anchored_comments_threads__thread_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "thread_id",
            "required": true,
            "schema": {
              "title": "Thread Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CommentThread"
                  },
                  "title": "Response Get Thread History Api Anchored Comments Threads  Thread Id  History Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Thread History",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads/{thread_id}/notifications": {
      "post": {
        "operationId": "plan_notifications_api_anchored_comments_threads__thread_id__notifications_post",
        "parameters": [
          {
            "in": "path",
            "name": "thread_id",
            "required": true,
            "schema": {
              "title": "Thread Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPlan"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Plan Notifications",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads/{thread_id}/reopen": {
      "post": {
        "operationId": "reopen_api_anchored_comments_threads__thread_id__reopen_post",
        "parameters": [
          {
            "in": "path",
            "name": "thread_id",
            "required": true,
            "schema": {
              "title": "Thread Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VersionedRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommentThread"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not comment here, may not read the path anchored, or is not the author of what it asked to change."
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Reopen",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads/{thread_id}/replies": {
      "post": {
        "operationId": "reply_to_thread_api_anchored_comments_threads__thread_id__replies_post",
        "parameters": [
          {
            "in": "path",
            "name": "thread_id",
            "required": true,
            "schema": {
              "title": "Thread Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommentThread"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not comment here, may not read the path anchored, or is not the author of what it asked to change."
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Reply To Thread",
        "tags": ["anchored-comments"]
      }
    },
    "/api/anchored-comments/threads/{thread_id}/resolve": {
      "post": {
        "operationId": "resolve_api_anchored_comments_threads__thread_id__resolve_post",
        "parameters": [
          {
            "in": "path",
            "name": "thread_id",
            "required": true,
            "schema": {
              "title": "Thread Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VersionedRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommentThread"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller may not comment here, may not read the path anchored, or is not the author of what it asked to change."
          },
          "404": {
            "description": "No such anchored comment record."
          },
          "409": {
            "description": "This conflicts with the anchored comment record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve",
        "tags": ["anchored-comments"]
      }
    },
    "/api/appeal-workflows/evaluation": {
      "get": {
        "description": "Every original role tried against both restrictions, every guard reached, every outcome walked.",
        "operationId": "get_appeal_workflow_evaluation_api_appeal_workflows_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Appeal Workflow Evaluation",
        "tags": ["appeal-workflows"]
      }
    },
    "/api/assessment-interlocks/checks": {
      "post": {
        "description": "Revalidate the assessment context and decide whether the operation may run.",
        "operationId": "create_interlock_check_api_assessment_interlocks_checks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterlockCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterlockProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessment interlock record."
          },
          "409": {
            "description": "This conflicts with the assessment interlock record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Interlock Check",
        "tags": ["assessment-interlocks"]
      }
    },
    "/api/assessment-interlocks/checks/{decision_id}": {
      "get": {
        "description": "Return one tenant-visible immutable interlock decision.",
        "operationId": "get_interlock_check_api_assessment_interlocks_checks__decision_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "decision_id",
            "required": true,
            "schema": {
              "title": "Decision Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterlockProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessment interlock record."
          },
          "409": {
            "description": "This conflicts with the assessment interlock record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Interlock Check",
        "tags": ["assessment-interlocks"]
      }
    },
    "/api/assessment-interlocks/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the matrix totality report, and the bypass sweep.",
        "operationId": "get_interlock_evaluation_api_assessment_interlocks_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterlockEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Interlock Evaluation",
        "tags": ["assessment-interlocks"]
      }
    },
    "/api/assessments": {
      "get": {
        "description": "List assessments with optional filtering by course, type, or status.\n\n`AssessmentResponse` nests every `QuestionResponse`, which carries\n`correct_answer` and `explanation`, so a caller who is not an instructor\nis handed the questions with the key removed.",
        "operationId": "list_assessments_api_assessments_get",
        "parameters": [
          {
            "description": "Filter by course",
            "in": "query",
            "name": "course_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by course",
              "title": "Course Id"
            }
          },
          {
            "description": "Filter by type",
            "in": "query",
            "name": "assessment_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by type",
              "title": "Assessment Type"
            }
          },
          {
            "description": "Filter by published state",
            "in": "query",
            "name": "is_published",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by published state",
              "title": "Is Published"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AssessmentResponse"
                  },
                  "title": "Response List Assessments Api Assessments Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List assessments",
        "tags": ["assessments"]
      },
      "post": {
        "description": "Create a new assessment. Requires instructor role.",
        "operationId": "create_assessment_api_assessments_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a new assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}": {
      "delete": {
        "description": "Delete an assessment and all its questions and submissions.",
        "operationId": "delete_assessment_api_assessments__assessment_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete an assessment",
        "tags": ["assessments"]
      },
      "get": {
        "description": "Get full assessment details including all questions.\n\nA learner sits this assessment, so a caller who is not an instructor is\nhanded the questions with `correct_answer`, `explanation` and the\nevidence derived from them removed.",
        "operationId": "get_assessment_api_assessments__assessment_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get an assessment by ID",
        "tags": ["assessments"]
      },
      "patch": {
        "description": "Update assessment fields.",
        "operationId": "update_assessment_api_assessments__assessment_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssessmentUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/calibration": {
      "get": {
        "description": "Return the current item-calibration and mastery-threshold report.\n\nOnly the assessment's course author or an admin can view this report.",
        "operationId": "get_assessment_calibration_api_assessments__assessment_id__calibration_get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentCalibrationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A assessments result could not be produced and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get live calibration for an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/calibration/recompute": {
      "post": {
        "description": "Recompute a calibration report from current live learner submissions.",
        "operationId": "recompute_assessment_calibration_api_assessments__assessment_id__calibration_recompute_post",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentCalibrationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A assessments result could not be produced and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Recompute live calibration for an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/fairness-review": {
      "get": {
        "description": "Return the latest fairness review for the assessment's live learner cohorts.",
        "operationId": "get_assessment_fairness_review_api_assessments__assessment_id__fairness_review_get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentFairnessReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A assessments result could not be produced and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get fairness and DIF review for an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/fairness-review/recompute": {
      "post": {
        "description": "Recompute fairness and DIF review from the latest live learner data.",
        "operationId": "recompute_assessment_fairness_review_api_assessments__assessment_id__fairness_review_recompute_post",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentFairnessReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A assessments result could not be produced and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Recompute fairness and DIF review for an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/questions": {
      "post": {
        "description": "Add a new question to an assessment.",
        "operationId": "add_question_api_assessments__assessment_id__questions_post",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Add a question to an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/questions/{question_id}": {
      "delete": {
        "description": "Delete a question from an assessment.",
        "operationId": "delete_question_api_assessments__assessment_id__questions__question_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "question_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Question Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete a question",
        "tags": ["assessments"]
      },
      "patch": {
        "description": "Update a question's fields.",
        "operationId": "update_question_api_assessments__assessment_id__questions__question_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "question_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Question Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuestionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuestionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such assessments record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update a question",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/submissions": {
      "get": {
        "description": "Get the current user's submissions for an assessment.",
        "operationId": "get_submissions_api_assessments__assessment_id__submissions_get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SubmissionResponse"
                  },
                  "title": "Response Get Submissions Api Assessments  Assessment Id  Submissions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get submissions for an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/assessments/{assessment_id}/submit": {
      "post": {
        "description": "Submit answers for auto-grading.\n\nValidates attempt limits, grades objective questions automatically,\nand returns the score. Essay and code questions are left for\nmanual grading by instructors.",
        "operationId": "submit_assessment_api_assessments__assessment_id__submit_post",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Assessment Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmissionCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this assessments operation cannot act on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Submit answers for an assessment",
        "tags": ["assessments"]
      }
    },
    "/api/auth/login": {
      "post": {
        "description": "Authenticate a user and return JWT tokens.\n\nValidates the email/password combination and returns an\naccess token (short-lived) and refresh token (long-lived).",
        "operationId": "login_api_auth_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "This request carries no usable credential."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Login with email and password",
        "tags": ["auth"]
      }
    },
    "/api/auth/me": {
      "get": {
        "description": "Return the profile of the currently authenticated user.",
        "operationId": "get_me_api_auth_me_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "This token names an account that no longer exists."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get current authenticated user",
        "tags": ["auth"]
      },
      "patch": {
        "description": "Persist editable learner profile fields and study preferences.",
        "operationId": "update_me_api_auth_me_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "This token names an account that no longer exists."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update the current authenticated user profile",
        "tags": ["auth"]
      }
    },
    "/api/auth/refresh": {
      "post": {
        "description": "Exchange a valid refresh token for a new token pair.\n\nThe old refresh token is consumed and a new pair is issued.\nIf the refresh token is invalid or expired, returns 401.",
        "operationId": "refresh_api_auth_refresh_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "This request carries no usable credential."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Refresh an access token",
        "tags": ["auth"]
      }
    },
    "/api/auth/register": {
      "post": {
        "description": "Register a new user and return authentication tokens.\n\nCreates the user account with the provided credentials and\nimmediately issues an access/refresh token pair so the user\ncan begin using the platform without a separate login step.",
        "operationId": "register_api_auth_register_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the auth record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Register a new user account",
        "tags": ["auth"]
      }
    },
    "/api/author-analytics/evaluation": {
      "get": {
        "description": "Return corpus outcomes, catalog completeness, and every disclosure probe.",
        "operationId": "get_author_analytics_evaluation_api_author_analytics_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyticsEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Author Analytics Evaluation",
        "tags": ["author-analytics"]
      }
    },
    "/api/author-analytics/reports": {
      "post": {
        "description": "Compute every catalog metric over the supplied observations.",
        "operationId": "create_author_analytics_report_api_author_analytics_reports_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorAnalyticsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorAnalyticsProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such author analytics record."
          },
          "409": {
            "description": "This conflicts with the author analytics record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Author Analytics Report",
        "tags": ["author-analytics"]
      }
    },
    "/api/author-analytics/reports/{report_id}": {
      "get": {
        "description": "Return one tenant-visible immutable analytics report.",
        "operationId": "get_author_analytics_report_api_author_analytics_reports__report_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorAnalyticsProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such author analytics record."
          },
          "409": {
            "description": "This conflicts with the author analytics record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Author Analytics Report",
        "tags": ["author-analytics"]
      }
    },
    "/api/authoring/{kind}": {
      "get": {
        "description": "Operational rows only. A list never opens a payload.",
        "operationId": "list_aggregates_api_authoring__kind__get",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AggregateSummary"
                  },
                  "title": "Response List Aggregates Api Authoring  Kind  Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Aggregates",
        "tags": ["authoring"]
      },
      "post": {
        "description": "Create one aggregate at revision 1.",
        "operationId": "create_aggregate_api_authoring__kind__post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthoringCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Aggregate",
        "tags": ["authoring"]
      }
    },
    "/api/authoring/{kind}/{logical_id}": {
      "get": {
        "description": "One exact revision, or the current one, as this caller may read it.",
        "operationId": "read_aggregate_api_authoring__kind___logical_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "logical_id",
            "required": true,
            "schema": {
              "title": "Logical Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "revision",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Revision"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Aggregate",
        "tags": ["authoring"]
      },
      "put": {
        "description": "Edit an unpublished aggregate. A published one is refused by name.",
        "operationId": "edit_aggregate_api_authoring__kind___logical_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "logical_id",
            "required": true,
            "schema": {
              "title": "Logical Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthoringEditRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Edit Aggregate",
        "tags": ["authoring"]
      }
    },
    "/api/authoring/{kind}/{logical_id}/archive": {
      "post": {
        "description": "Put an aggregate on the shelf. Its lifecycle state does not move.",
        "operationId": "archive_aggregate_api_authoring__kind___logical_id__archive_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "logical_id",
            "required": true,
            "schema": {
              "title": "Logical Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArchiveBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Archive Aggregate",
        "tags": ["authoring"]
      }
    },
    "/api/authoring/{kind}/{logical_id}/restore": {
      "post": {
        "description": "Take it back off the shelf. It does not revive a withdrawal.",
        "operationId": "restore_aggregate_api_authoring__kind___logical_id__restore_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "logical_id",
            "required": true,
            "schema": {
              "title": "Logical Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArchiveBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Restore Aggregate",
        "tags": ["authoring"]
      }
    },
    "/api/authoring/{kind}/{logical_id}/revisions": {
      "post": {
        "description": "The route that exists for changing something published.",
        "operationId": "new_revision_api_authoring__kind___logical_id__revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "logical_id",
            "required": true,
            "schema": {
              "title": "Logical Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthoringEditRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "New Revision",
        "tags": ["authoring"]
      }
    },
    "/api/authoring/{kind}/{logical_id}/transitions": {
      "post": {
        "description": "Move the lifecycle state. It never touches the payload.",
        "operationId": "transition_aggregate_api_authoring__kind___logical_id__transitions_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "course",
                "lesson",
                "item",
                "rubric",
                "source",
                "objective",
                "standard",
                "review",
                "release"
              ],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "logical_id",
            "required": true,
            "schema": {
              "title": "Logical Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransitionBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthoringOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This role may not act on this aggregate."
          },
          "404": {
            "description": "No such aggregate, or no such kind."
          },
          "409": {
            "description": "The revision moved under this request, or the idempotency key was reused for a different intent."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Transition Aggregate",
        "tags": ["authoring"]
      }
    },
    "/api/best-of-n/evaluation": {
      "get": {
        "description": "Return executable corpus outcomes for the retention, ranking, and bias rules.",
        "operationId": "get_best_of_n_evaluation_api_best_of_n_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BestOfNEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Best Of N Evaluation",
        "tags": ["best-of-n"]
      }
    },
    "/api/best-of-n/runs": {
      "post": {
        "description": "Score a recorded candidate set without removing or accepting anything.",
        "operationId": "create_best_of_n_run_api_best_of_n_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BestOfNRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BestOfNRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such best of n record."
          },
          "409": {
            "description": "This conflicts with the best of n record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Best Of N Run",
        "tags": ["best-of-n"]
      }
    },
    "/api/best-of-n/runs/{run_id}": {
      "get": {
        "description": "Return one tenant-visible immutable run, its decision, and any revision.",
        "operationId": "get_best_of_n_run_api_best_of_n_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BestOfNProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such best of n record."
          },
          "409": {
            "description": "This conflicts with the best of n record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Best Of N Run",
        "tags": ["best-of-n"]
      }
    },
    "/api/caliper/deliveries": {
      "post": {
        "description": "Say how far a consumer has got, and be told what is left.\n\nWithout this, a consumer that asks for the next page and receives an\nempty one cannot tell a gap from being caught up: both look like no\nevents. The answer carries `outstanding`, so an empty page beside a\nnon-zero count is a problem a consumer can see.",
        "operationId": "acknowledge_caliper_delivery_api_caliper_deliveries_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaliperDeliveryAcknowledgement"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaliperDeliveryState"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The acknowledgement goes backwards, or names a sequence past what this estate has recorded."
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Acknowledge Caliper events a consumer has processed",
        "tags": ["caliper"]
      }
    },
    "/api/caliper/deliveries/{consumer}": {
      "get": {
        "description": "A consumer that has never acknowledged reads zero, not absent: it has\nprocessed nothing, which is a position and not a missing record.",
        "operationId": "read_caliper_delivery_state_api_caliper_deliveries__consumer__get",
        "parameters": [
          {
            "in": "path",
            "name": "consumer",
            "required": true,
            "schema": {
              "title": "Consumer",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaliperDeliveryState"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "What a Caliper consumer has acknowledged and what is left",
        "tags": ["caliper"]
      }
    },
    "/api/caliper/events": {
      "get": {
        "description": "Query standardized Caliper events for institutional consumers.",
        "operationId": "query_caliper_events_api_caliper_events_get",
        "parameters": [
          {
            "in": "query",
            "name": "actor_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Actor Id"
            }
          },
          {
            "in": "query",
            "name": "event_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Event Type"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Action"
            }
          },
          {
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since"
            }
          },
          {
            "in": "query",
            "name": "until",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Until"
            }
          },
          {
            "in": "query",
            "name": "after_sequence",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "After Sequence"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaliperEventListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Query IMS Caliper analytics events",
        "tags": ["caliper"]
      },
      "post": {
        "description": "Record one idempotent Caliper event.",
        "operationId": "record_caliper_event_api_caliper_events_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaliperEventCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaliperEventResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record an IMS Caliper analytics event",
        "tags": ["caliper"]
      }
    },
    "/api/caliper/export": {
      "get": {
        "description": "Return Caliper payloads in a sensor envelope for institutional ingestion.",
        "operationId": "export_caliper_envelope_api_caliper_export_get",
        "parameters": [
          {
            "in": "query",
            "name": "actor_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Actor Id"
            }
          },
          {
            "in": "query",
            "name": "event_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Event Type"
            }
          },
          {
            "in": "query",
            "name": "after_sequence",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "After Sequence"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaliperEnvelopeResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export IMS Caliper events as a sensor envelope",
        "tags": ["caliper"]
      }
    },
    "/api/claim-decompositions/evaluation": {
      "get": {
        "description": "Return the reproducible labeled-corpus report and uncertainty intervals.",
        "operationId": "get_claim_decomposition_evaluation_api_claim_decompositions_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimCorpusEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Claim Decomposition Evaluation",
        "tags": ["claim-decompositions"]
      }
    },
    "/api/claim-decompositions/runs": {
      "post": {
        "description": "Decompose one exact content revision against authorized source candidates.",
        "operationId": "create_claim_decomposition_run_api_claim_decompositions_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClaimDecompositionRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimDecompositionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such claim decomposition record."
          },
          "409": {
            "description": "This conflicts with the claim decomposition record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Claim Decomposition Run",
        "tags": ["claim-decompositions"]
      }
    },
    "/api/claim-decompositions/runs/{package_id}/{run_id}": {
      "get": {
        "description": "Return the hash-bound immutable creation receipt for a visible run.",
        "operationId": "get_claim_decomposition_run_api_claim_decompositions_runs__package_id___run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimDecompositionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such claim decomposition record."
          },
          "409": {
            "description": "This conflicts with the claim decomposition record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Claim Decomposition Run",
        "tags": ["claim-decompositions"]
      }
    },
    "/api/code-verifications/evaluation": {
      "get": {
        "description": "Return executable adversarial-corpus conformance and uncertainty intervals.",
        "operationId": "get_code_verification_evaluation_api_code_verifications_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CodeEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Code Verification Evaluation",
        "tags": ["code-verifications"]
      }
    },
    "/api/code-verifications/runs": {
      "post": {
        "description": "Compile and execute exact code artifacts in fresh pinned containers.",
        "operationId": "create_code_verification_run_api_code_verifications_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodeVerificationRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CodeVerificationRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such code verification record."
          },
          "409": {
            "description": "This conflicts with the code verification record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Code Verification Run",
        "tags": ["code-verifications"]
      }
    },
    "/api/code-verifications/runs/{run_id}": {
      "get": {
        "description": "Return one tenant-visible immutable run and its current-revision state.",
        "operationId": "get_code_verification_run_api_code_verifications_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CodeVerificationProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such code verification record."
          },
          "409": {
            "description": "This conflicts with the code verification record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Code Verification Run",
        "tags": ["code-verifications"]
      }
    },
    "/api/content-freshness/admissions": {
      "post": {
        "operationId": "resolve_content_freshness_admission_api_content_freshness_admissions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentFreshnessAdmissionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentFreshnessAdmissionDecision"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Recheck and resolve a tutor, assessment, build, publication, or delivery admission",
        "tags": ["content-freshness"]
      }
    },
    "/api/content-freshness/dependency-signals": {
      "post": {
        "operationId": "ingest_content_dependency_signal_api_content_freshness_dependency_signals_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DependencyFreshnessSignalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DependencyFreshnessImpact"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Ingest a verified dependency change and append every affected freshness verdict",
        "tags": ["content-freshness"]
      }
    },
    "/api/content-freshness/policy": {
      "get": {
        "operationId": "get_content_freshness_policy_api_content_freshness_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentFreshnessPolicy"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read exact content dependencies, review windows, states, and surface policy",
        "tags": ["content-freshness"]
      }
    },
    "/api/content-freshness/reviews": {
      "post": {
        "operationId": "create_content_freshness_review_api_content_freshness_reviews_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentFreshnessReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentFreshnessWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Bind one content revision to exact dependencies and append its freshness review",
        "tags": ["content-freshness"]
      }
    },
    "/api/content-freshness/verdicts": {
      "get": {
        "operationId": "list_content_freshness_verdicts_api_content_freshness_verdicts_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["current", "due", "stale", "blocked", "unknown", "not_applicable"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "risk",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["low", "moderate", "high", "critical"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Risk"
            }
          },
          {
            "in": "query",
            "name": "content_kind",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["lesson", "item", "answer", "rationale", "feedback", "hint"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Content Kind"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentFreshnessCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List the latest exact-revision content freshness verdicts",
        "tags": ["content-freshness"]
      }
    },
    "/api/content-freshness/verdicts/{verdict_id}": {
      "get": {
        "operationId": "get_content_freshness_verdict_api_content_freshness_verdicts__verdict_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "verdict_id",
            "required": true,
            "schema": {
              "title": "Verdict Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentFreshnessWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read a revalidated exact dependency, finding, propagation, and history workspace",
        "tags": ["content-freshness"]
      }
    },
    "/api/content-review-templates/evaluation": {
      "get": {
        "description": "The required-role matrix, the eligibility walk, the change impact and the overlay property.",
        "operationId": "get_content_review_template_evaluation_api_content_review_templates_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentReviewTemplateReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Content Review Template Evaluation",
        "tags": ["content-review-templates"]
      }
    },
    "/api/content-review-templates/freshness": {
      "post": {
        "description": "What a change invalidates and what carries forward, with the provenance of each carry.",
        "operationId": "evaluate_freshness_api_content_review_templates_freshness_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FreshnessRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FreshnessResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the content review template record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Evaluate Freshness",
        "tags": ["content-review-templates"]
      }
    },
    "/api/content-review-templates/resolve": {
      "post": {
        "description": "The platform template for this content, with the institution's additions applied.",
        "operationId": "resolve_template_api_content_review_templates_resolve_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EffectiveTemplate"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the content review template record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve Template",
        "tags": ["content-review-templates"]
      }
    },
    "/api/content-review-templates/signoffs/check": {
      "post": {
        "description": "Every reason this signoff would not count, and the status it would leave behind.",
        "operationId": "check_dimension_signoff_api_content_review_templates_signoffs_check_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignoffCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignoffCheckResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the content review template record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Dimension Signoff",
        "tags": ["content-review-templates"]
      }
    },
    "/api/content-review-templates/status": {
      "post": {
        "operationId": "get_review_status_api_content_review_templates_status_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewStatus"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the content review template record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Review Status",
        "tags": ["content-review-templates"]
      }
    },
    "/api/course-boards": {
      "get": {
        "operationId": "get_course_board_api_course_boards_get",
        "parameters": [
          {
            "in": "query",
            "name": "scope",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/BoardScope",
              "default": "courses"
            }
          },
          {
            "in": "query",
            "name": "course_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Course Id"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/BoardGroupMode",
              "default": "none"
            }
          },
          {
            "in": "query",
            "name": "maturity",
            "required": false,
            "schema": {
              "default": [],
              "items": {
                "$ref": "#/components/schemas/MaturityState"
              },
              "title": "Maturity",
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 255,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseBoardView"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project a revisioned course or module board",
        "tags": ["course-boards"]
      }
    },
    "/api/course-boards/courses": {
      "post": {
        "operationId": "create_board_course_api_course_boards_courses_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseBoardCreateCourseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseBoardMutationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a canonical course from the course board",
        "tags": ["course-boards"]
      }
    },
    "/api/course-boards/courses/{course_id}/modules": {
      "post": {
        "operationId": "create_board_module_api_course_boards_courses__course_id__modules_post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseBoardCreateModuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseBoardMutationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a canonical module from its course board",
        "tags": ["course-boards"]
      }
    },
    "/api/course-boards/group": {
      "patch": {
        "operationId": "regroup_course_board_entity_api_course_boards_group_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseBoardGroupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseBoardMutationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Move a canonical course or module to a board group",
        "tags": ["course-boards"]
      }
    },
    "/api/course-boards/history/{entity_kind}/{entity_id}": {
      "get": {
        "operationId": "get_course_board_history_api_course_boards_history__entity_kind___entity_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "entity_kind",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/BoardEntityKind"
            }
          },
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "title": "Entity Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseBoardHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the immutable maturity-transition history for an entity",
        "tags": ["course-boards"]
      }
    },
    "/api/course-boards/reorder": {
      "post": {
        "operationId": "reorder_course_board_api_course_boards_reorder_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseBoardReorderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseBoardReorderResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Reorder a complete canonical board with optimistic concurrency",
        "tags": ["course-boards"]
      }
    },
    "/api/course-boards/transitions": {
      "post": {
        "operationId": "transition_course_board_entity_api_course_boards_transitions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseBoardTransitionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseBoardTransitionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply one server-resolved guarded maturity transition",
        "tags": ["course-boards"]
      }
    },
    "/api/courses": {
      "get": {
        "description": "List published courses with optional filtering and search.\n\nSupports pagination, category/difficulty filtering, and full-text search.\n\nAn anonymous caller sees published courses and only published courses. The\n`status` filter used to override that default silently: the service falls\nback to `published` when no status is given, so a request for `draft` from\nnobody in particular returned draft courses with their unpublished lessons'\nbody text. AN UNAUTHENTICATED FILTER THAT CAN SELECT WHAT THE DEFAULT\nPROTECTS IS NOT A DEFAULT. It is refused rather than quietly rewritten,\nbecause a caller whose filter was ignored is being told something untrue\nabout what they are looking at.",
        "operationId": "list_courses_api_courses_get",
        "parameters": [
          {
            "description": "Page number",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "description": "Page number",
              "minimum": 1,
              "title": "Page",
              "type": "integer"
            }
          },
          {
            "description": "Items per page",
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 20,
              "description": "Items per page",
              "maximum": 100,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          },
          {
            "description": "Filter by category",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by category",
              "title": "Category"
            }
          },
          {
            "description": "Filter by difficulty",
            "in": "query",
            "name": "difficulty",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by difficulty",
              "title": "Difficulty"
            }
          },
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by status",
              "title": "Status"
            }
          },
          {
            "description": "Search in title and description",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Search in title and description",
              "title": "Search"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "summary": "List courses with filtering and pagination",
        "tags": ["courses"]
      },
      "post": {
        "description": "Create a new course. Requires instructor or admin role.",
        "operationId": "create_course_api_courses_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the courses record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a new course",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}": {
      "delete": {
        "description": "Delete a course and all its content (modules, lessons, assessments).",
        "operationId": "delete_course_api_courses__course_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete a course",
        "tags": ["courses"]
      },
      "get": {
        "description": "Get full course details including all modules and lessons.\n\nAn unpublished course answers 404 to an anonymous caller rather than 403:\na 403 would confirm the id exists, and whether a draft exists is itself\nsomething they may not know. The response carries every lesson's `content`,\nso this route was reading unpublished bodies out to anybody holding an id.",
        "operationId": "get_course_api_courses__course_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "summary": "Get a course by ID",
        "tags": ["courses"]
      },
      "patch": {
        "description": "Update course fields. Only non-null fields are applied.",
        "operationId": "update_course_api_courses__course_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CourseUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "409": {
            "description": "This conflicts with the courses record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update a course",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/concept-graph": {
      "get": {
        "description": "Return the best available approved course-linked concept graph.\n\nThe graph itself comes from an approved package, so this route was not\nreading unpublished text out \u2014 but answering 200 for a draft course and 404\nfor a nonexistent one is an existence oracle for draft ids. It answers the\nsame way as its sibling for the same reason.",
        "operationId": "get_course_concept_graph_api_courses__course_id__concept_graph_get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseLinkedConceptGraphResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "summary": "Get the learner-facing concept graph for a course",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/enroll": {
      "post": {
        "description": "Enroll the current user in a course.",
        "operationId": "enroll_in_course_api_courses__course_id__enroll_post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrollmentResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the courses record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Enroll in a course",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/lecture-package": {
      "get": {
        "description": "Return the latest prerecorded lecture package if one exists.",
        "operationId": "get_course_lecture_package_api_courses__course_id__lecture_package_get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseLecturePackageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the latest prerecorded lecture package for a course",
        "tags": ["courses"]
      },
      "post": {
        "description": "Generate prerecorded lecture assets for polished course delivery and export.",
        "operationId": "generate_course_lecture_package_api_courses__course_id__lecture_package_post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LectureGenerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseLecturePackageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this courses operation cannot act on."
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Generate a prerecorded lecture package for a course",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/lecture-package/assets/{asset_path}": {
      "get": {
        "description": "Return a safe asset file from the latest Yemaya-rendered lecture package.",
        "operationId": "get_course_lecture_package_asset_api_courses__course_id__lecture_package_assets__asset_path__get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "asset_path",
            "required": true,
            "schema": {
              "title": "Asset Path",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {},
              "application/xml": {},
              "image/svg+xml": {},
              "text/html": {},
              "text/markdown": {},
              "text/plain": {}
            },
            "description": "Rendered lecture package asset"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Fetch a rendered lecture package asset",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/lecture-package/evaluation": {
      "get": {
        "description": "Return the persisted lecture output-quality evaluation for the latest course package.",
        "operationId": "get_course_lecture_package_evaluation_api_courses__course_id__lecture_package_evaluation_get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LectureMediaEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the latest prerecorded lecture media evaluation for a course",
        "tags": ["courses"]
      },
      "post": {
        "description": "Run the canonical lecture output-quality suite over the latest course package.",
        "operationId": "evaluate_course_lecture_package_api_courses__course_id__lecture_package_evaluation_post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LectureMediaEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Evaluate prerecorded lecture media quality for a course",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/modules": {
      "post": {
        "description": "Create a new module within a course.",
        "operationId": "create_module_api_courses__course_id__modules_post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModuleResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Add a module to a course",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/modules/{module_id}": {
      "delete": {
        "description": "Delete a module and all its lessons.",
        "operationId": "delete_module_api_courses__course_id__modules__module_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "module_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Module Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete a module",
        "tags": ["courses"]
      },
      "patch": {
        "description": "Update module fields within a course.",
        "operationId": "update_module_api_courses__course_id__modules__module_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "module_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Module Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModuleResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update a module",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/modules/{module_id}/lessons": {
      "post": {
        "description": "Create a new lesson within a module.",
        "operationId": "create_lesson_api_courses__course_id__modules__module_id__lessons_post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "module_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Module Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Add a lesson to a module",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/modules/{module_id}/lessons/{lesson_id}": {
      "delete": {
        "description": "Delete a lesson from a module.",
        "operationId": "delete_lesson_api_courses__course_id__modules__module_id__lessons__lesson_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "module_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Module Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete a lesson",
        "tags": ["courses"]
      },
      "patch": {
        "description": "Update lesson fields.",
        "operationId": "update_lesson_api_courses__course_id__modules__module_id__lessons__lesson_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "module_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Module Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update a lesson",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/progress/{lesson_id}": {
      "post": {
        "description": "Update the current user's progress on a specific lesson.\n\nRequires an active enrollment in the course. Updates or creates\nthe progress record and recalculates overall course completion.",
        "operationId": "update_progress_api_courses__course_id__progress__lesson_id__post",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgressUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgressResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update lesson progress",
        "tags": ["courses"]
      }
    },
    "/api/courses/{course_id}/workload-revision": {
      "get": {
        "operationId": "capture_course_workload_revision_api_courses__course_id__workload_revision_get",
        "parameters": [
          {
            "in": "path",
            "name": "course_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Course Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CourseWorkloadRevisionSnapshot-Output"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such courses record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Capture an exact course revision for workload estimation",
        "tags": ["courses"]
      }
    },
    "/api/credential-pathways/approvals": {
      "post": {
        "description": "Record the caller's own sign-off against one evaluation.",
        "operationId": "record_approval_api_credential_pathways_approvals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApprovalSignoff"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Approval",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/approvals/{lock_sha256}": {
      "get": {
        "description": "List the sign-offs recorded against exactly this evaluation.",
        "operationId": "list_approvals_api_credential_pathways_approvals__lock_sha256__get",
        "parameters": [
          {
            "in": "path",
            "name": "lock_sha256",
            "required": true,
            "schema": {
              "title": "Lock Sha256",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ApprovalSignoff"
                  },
                  "title": "Response List Approvals Api Credential Pathways Approvals  Lock Sha256  Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Approvals",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/credentials/{credential_id}": {
      "get": {
        "description": "Return the credential as it stands, after replaying its lifecycle events.",
        "operationId": "get_credential_api_credential_pathways_credentials__credential_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Credential",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/credentials/{credential_id}/history": {
      "get": {
        "description": "Return every lifecycle event appended to this credential, oldest first.",
        "operationId": "get_credential_history_api_credential_pathways_credentials__credential_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/LifecycleEvent"
                  },
                  "title": "Response Get Credential History Api Credential Pathways Credentials  Credential Id  History Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Credential History",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/credentials/{credential_id}/lifecycle": {
      "post": {
        "description": "Append a lifecycle event. The credential's history is never edited.",
        "operationId": "act_on_credential_api_credential_pathways_credentials__credential_id__lifecycle_post",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LifecycleActionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LifecycleEvent"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Act On Credential",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/credentials/{credential_id}/verification": {
      "get": {
        "description": "Read a credential's standing. Verification carries no field that could change it.",
        "operationId": "verify_credential_api_credential_pathways_credentials__credential_id__verification_get",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify Credential",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/eligibility": {
      "post": {
        "description": "Evaluate a pathway against a subject and record nothing.\n\nThis is the surface a reviewer reads before approving: it returns the lock\nthey would be approving, every criterion's verdict, and the refusals an\nissuance would raise \u2014 including that a made-up subject never issues.",
        "operationId": "preview_eligibility_for_subject_api_credential_pathways_eligibility_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssuanceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EligibilityPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "A dependency this credential pathway operation needs is not configured."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview Eligibility For Subject",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the evidence matrix, and every authority probe.",
        "operationId": "get_credential_evaluation_api_credential_pathways_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Credential Evaluation",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credential-pathways/issuances": {
      "get": {
        "description": "List this tenant's recorded issuance outcomes, oldest first.",
        "operationId": "list_issuances_api_credential_pathways_issuances_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CredentialProjection"
                  },
                  "title": "Response List Issuances Api Credential Pathways Issuances Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Issuances",
        "tags": ["credential-pathways"]
      },
      "post": {
        "description": "Evaluate a pathway and record the outcome: a credential, or the refusals.",
        "operationId": "request_issuance_api_credential_pathways_issuances_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssuanceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such credential pathway record."
          },
          "409": {
            "description": "This conflicts with the credential pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "A dependency this credential pathway operation needs is not configured."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Request Issuance",
        "tags": ["credential-pathways"]
      }
    },
    "/api/credentials/badges": {
      "get": {
        "description": "List credentials scoped to the caller unless the caller is an instructor.",
        "operationId": "list_credentials_api_credentials_badges_get",
        "parameters": [
          {
            "in": "query",
            "name": "learner_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Learner Id"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["active", "expired", "revoked"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List issued credentials",
        "tags": ["credentials"]
      }
    },
    "/api/credentials/badges/issue": {
      "post": {
        "description": "Issue one signed Open Badge credential and optional CLR fragment.",
        "operationId": "issue_credential_api_credentials_badges_issue_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialIssueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Issue a CLR or Open Badges credential",
        "tags": ["credentials"]
      }
    },
    "/api/credentials/badges/{credential_id}": {
      "get": {
        "description": "Return an issued credential document and proof metadata.",
        "operationId": "get_credential_api_credentials_badges__credential_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such credentials record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get one issued credential",
        "tags": ["credentials"]
      }
    },
    "/api/credentials/badges/{credential_id}/revoke": {
      "post": {
        "description": "Revoke a credential so verifier endpoints fail it immediately.",
        "operationId": "revoke_credential_api_credentials_badges__credential_id__revoke_post",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialRevocationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialRevocationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such credentials record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Revoke an issued credential",
        "tags": ["credentials"]
      }
    },
    "/api/credentials/badges/{credential_id}/verify": {
      "get": {
        "description": "Public verifier endpoint for a credential URL or QR-code scan.",
        "operationId": "verify_credential_by_id_api_credentials_badges__credential_id__verify_get",
        "parameters": [
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Credential Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialVerificationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Verify an issued CLR or Open Badges credential by URL",
        "tags": ["credentials"]
      }
    },
    "/api/credentials/clr/{learner_id}": {
      "get": {
        "description": "Export the learner's signed credentials in a CLR-compatible envelope.",
        "operationId": "export_clr_record_api_credentials_clr__learner_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "learner_id",
            "required": true,
            "schema": {
              "title": "Learner Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClrRecordResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export a Comprehensive Learner Record for one learner",
        "tags": ["credentials"]
      }
    },
    "/api/credentials/verify": {
      "post": {
        "description": "Verify a credential id, hash/proof pair, or full presented credential.",
        "operationId": "verify_credential_document_api_credentials_verify_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialVerificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialVerificationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Verify a presented CLR or Open Badges credential document",
        "tags": ["credentials"]
      }
    },
    "/api/cultural-reviews/admissions": {
      "post": {
        "operationId": "resolve_cultural_review_admission_api_cultural_reviews_admissions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CulturalReviewAdmissionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CulturalReviewAdmissionDecision"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Recheck fresh locale and region quorum before build, publication, or delivery",
        "tags": ["cultural-reviews"]
      }
    },
    "/api/cultural-reviews/assignment-events": {
      "post": {
        "operationId": "append_cultural_review_assignment_event_api_cultural_reviews_assignment_events_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CulturalReviewAssignmentEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CulturalReviewWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a conflict, substitute activation, or escalation event",
        "tags": ["cultural-reviews"]
      }
    },
    "/api/cultural-reviews/assignment-runs": {
      "get": {
        "operationId": "list_cultural_review_assignments_api_cultural_reviews_assignment_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["approved", "pending", "blocked", "expired", "conflicted"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CulturalReviewCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List current cultural, regional, and language review assignment scopes",
        "tags": ["cultural-reviews"]
      },
      "post": {
        "operationId": "create_cultural_review_assignment_api_cultural_reviews_assignment_runs_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CulturalReviewAssignmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CulturalReviewWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Match qualified reviewers under privacy, workload, conflict, and substitute rules",
        "tags": ["cultural-reviews"]
      }
    },
    "/api/cultural-reviews/assignment-runs/{assignment_run_id}": {
      "get": {
        "operationId": "get_cultural_review_assignment_api_cultural_reviews_assignment_runs__assignment_run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "assignment_run_id",
            "required": true,
            "schema": {
              "title": "Assignment Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "evaluated_at",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Evaluated At"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CulturalReviewWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read exact assignments, structured decisions, lifecycle events, and fresh quorum",
        "tags": ["cultural-reviews"]
      }
    },
    "/api/cultural-reviews/decisions": {
      "post": {
        "operationId": "submit_cultural_review_decision_api_cultural_reviews_decisions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CulturalReviewDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CulturalReviewWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Submit a structured review of one exact locale variant and evidence packet",
        "tags": ["cultural-reviews"]
      }
    },
    "/api/cultural-reviews/policy": {
      "get": {
        "operationId": "get_cultural_review_policy_api_cultural_reviews_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CulturalReviewPolicy"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read exact reviewer qualifications, matching privacy, workload, and quorum policy",
        "tags": ["cultural-reviews"]
      }
    },
    "/api/curriculum/alignment-proposals/{proposal_id}/reviews": {
      "post": {
        "operationId": "review_alignment_proposal_api_curriculum_alignment_proposals__proposal_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlignmentReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlignmentProposalReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept, edit, or reject one exact standards-alignment proposal",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/alignment-suggestion-runs": {
      "post": {
        "operationId": "create_alignment_suggestion_run_api_curriculum_alignment_suggestion_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlignmentSuggestionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlignmentSuggestionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a fenced standards-alignment suggestion run",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/alignment-workspace": {
      "get": {
        "operationId": "get_alignment_workspace_api_curriculum_alignment_workspace_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlignmentWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read standards proposals, human decisions, acceptances, and lineage",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/brief-policy": {
      "get": {
        "operationId": "get_curriculum_brief_policy_api_curriculum_brief_policy_get",
        "parameters": [
          {
            "in": "query",
            "name": "institution_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Institution Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefPolicyResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get effective code and institution curriculum-brief floors",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/brief-policy-overlays": {
      "post": {
        "operationId": "create_curriculum_brief_policy_overlay_api_curriculum_brief_policy_overlays_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumBriefInstitutionFloorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefInstitutionFloorResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a monotonic institution curriculum-brief floor",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/briefs": {
      "get": {
        "operationId": "list_curriculum_briefs_api_curriculum_briefs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List visible versioned curriculum briefs",
        "tags": ["curriculum"]
      },
      "post": {
        "operationId": "create_curriculum_brief_api_curriculum_briefs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumBriefRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create an immutable curriculum-brief revision",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/briefs/{brief_id}": {
      "get": {
        "operationId": "get_curriculum_brief_api_curriculum_briefs__brief_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "brief_id",
            "required": true,
            "schema": {
              "title": "Brief Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get exact curriculum-brief revision and review history",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/briefs/{brief_id}/revisions": {
      "post": {
        "operationId": "revise_curriculum_brief_api_curriculum_briefs__brief_id__revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "brief_id",
            "required": true,
            "schema": {
              "title": "Brief Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumBriefRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a curriculum-brief revision",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/briefs/{brief_id}/revisions/{revision_id}/planning-readiness": {
      "get": {
        "operationId": "get_curriculum_brief_planning_readiness_api_curriculum_briefs__brief_id__revisions__revision_id__planning_readiness_get",
        "parameters": [
          {
            "in": "path",
            "name": "brief_id",
            "required": true,
            "schema": {
              "title": "Brief Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revision_id",
            "required": true,
            "schema": {
              "title": "Revision Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "source_package_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Source Package Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefPlanningReadinessResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify an exact accepted current curriculum brief before planning",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/briefs/{brief_id}/revisions/{revision_id}/reviews": {
      "post": {
        "operationId": "review_curriculum_brief_api_curriculum_briefs__brief_id__revisions__revision_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "brief_id",
            "required": true,
            "schema": {
              "title": "Brief Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revision_id",
            "required": true,
            "schema": {
              "title": "Revision Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumBriefReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumBriefHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept, return, or reject an exact curriculum-brief revision",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/coverage-policy": {
      "get": {
        "operationId": "get_curriculum_coverage_policy_api_curriculum_coverage_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CoveragePolicyModelResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the versioned curriculum-coverage vocabulary and default thresholds",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/coverage-reports": {
      "get": {
        "operationId": "list_curriculum_coverage_reports_api_curriculum_coverage_reports_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CoverageReportCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List visible immutable objective coverage reports",
        "tags": ["curriculum"]
      },
      "post": {
        "operationId": "create_curriculum_coverage_report_api_curriculum_coverage_reports_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CoverageReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CoverageReportWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Measure exact objective-content-assessment links and apply policy separately",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/coverage-reports/{report_id}": {
      "get": {
        "operationId": "get_curriculum_coverage_report_api_curriculum_coverage_reports__report_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CoverageReportWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read raw coverage links, policy verdicts, remediation, and lineage",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/coverage-reports/{report_id}/recomputations": {
      "post": {
        "operationId": "recompute_curriculum_coverage_report_api_curriculum_coverage_reports__report_id__recomputations_post",
        "parameters": [
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CoverageRecomputeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CoverageReportWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Recompute from a new exact revision or governed threshold snapshot",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/cross-core-interlocks": {
      "get": {
        "description": "Return the Metis V1 actively curated cross-core interlock catalog.",
        "operationId": "get_curriculum_interlock_catalog_api_curriculum_cross_core_interlocks_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumInterlockCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get curated cross-core discipline interlocks",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/cross-core-interlocks/{interlock_id}": {
      "get": {
        "description": "Return one actively curated cross-core interlock.",
        "operationId": "get_curriculum_interlock_entry_api_curriculum_cross_core_interlocks__interlock_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "interlock_id",
            "required": true,
            "schema": {
              "title": "Interlock Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumCrossCoreInterlockResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get one curated cross-core discipline interlock",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/decision-workspaces": {
      "get": {
        "operationId": "list_curriculum_decision_workspaces_api_curriculum_decision_workspaces_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDecisionCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List immutable curriculum decision ledgers and current projections",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/decision-workspaces/{set_id}": {
      "get": {
        "operationId": "get_curriculum_decision_workspace_api_curriculum_decision_workspaces__set_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "set_id",
            "required": true,
            "schema": {
              "title": "Set Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDecisionWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get current and historical curriculum decision projections",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/decision-workspaces/{set_id}/decisions": {
      "post": {
        "operationId": "create_curriculum_decision_api_curriculum_decision_workspaces__set_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "set_id",
            "required": true,
            "schema": {
              "title": "Set Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDecisionWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record or supersede an exact-evidence curriculum decision",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discipline-plans/exports": {
      "post": {
        "operationId": "export_discipline_plan_request_api_curriculum_discipline_plans_exports_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisciplinePlanExportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisciplinePlanExportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export and round-trip a typed plan through QTI, course, and standards profiles",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discipline-plans/validate": {
      "post": {
        "operationId": "validate_discipline_plan_request_api_curriculum_discipline_plans_validate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisciplinePlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisciplinePlanValidationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Validate a typed plan against its exact inherited discipline template",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discipline-templates": {
      "get": {
        "operationId": "list_discipline_templates_api_curriculum_discipline_templates_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisciplineTemplateCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List versioned discipline-planning templates and export mappings",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discipline-templates/{template_id}": {
      "get": {
        "operationId": "get_discipline_template_entry_api_curriculum_discipline_templates__template_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "template_id",
            "required": true,
            "schema": {
              "title": "Template Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisciplineTemplateDefinition"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get one exact discipline-planning template version",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discovery/actions": {
      "get": {
        "operationId": "list_curriculum_discovery_actions_api_curriculum_discovery_actions_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDiscoveryActionWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List visible immutable curriculum-discovery actions and reviews",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discovery/connectors": {
      "get": {
        "operationId": "list_curriculum_discovery_connectors_api_curriculum_discovery_connectors_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDiscoveryConnectorCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List versioned curriculum-discovery connector contracts",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discovery/connectors/{connector_id}/snapshots": {
      "post": {
        "operationId": "snapshot_curriculum_discovery_catalog_api_curriculum_discovery_connectors__connector_id__snapshots_post",
        "parameters": [
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "title": "Connector Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumDiscoverySnapshotRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDiscoverySnapshotWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record an authorized metadata-only catalog snapshot",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discovery/import-requests/{action_id}/reviews": {
      "post": {
        "operationId": "review_curriculum_discovery_import_request_api_curriculum_discovery_import_requests__action_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "action_id",
            "required": true,
            "schema": {
              "title": "Action Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumDiscoveryImportReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDiscoveryActionWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Independently review exact rights and validation evidence for import",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discovery/items/{item_id}": {
      "get": {
        "operationId": "get_curriculum_discovery_item_api_curriculum_discovery_items__item_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDiscoveryIndexRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get one exact visible curriculum-discovery source version",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discovery/items/{item_id}/actions": {
      "post": {
        "operationId": "create_curriculum_discovery_action_api_curriculum_discovery_items__item_id__actions_post",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumDiscoveryActionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDiscoveryActionWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview, bookmark, request import, or link an exact discovery item",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/discovery/search": {
      "post": {
        "operationId": "search_curriculum_discovery_catalog_api_curriculum_discovery_search_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumDiscoverySearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDiscoverySearchResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Search, facet, rank, diagnose, and compare visible curriculum metadata",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/gold-sets": {
      "get": {
        "description": "Return all launch gold sets for the Metis core-six disciplines.",
        "operationId": "get_curriculum_gold_set_catalog_api_curriculum_gold_sets_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumGoldSetCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get core-six curriculum gold-set catalog",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/gold-sets/release-gate-dashboard": {
      "get": {
        "description": "Return gold-set coverage targets for the Metis V1 release gate.",
        "operationId": "get_curriculum_gold_set_release_gate_dashboard_api_curriculum_gold_sets_release_gate_dashboard_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumGoldSetReleaseGateDashboardResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get core-six curriculum gold-set release-gate coverage",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/gold-sets/{discipline_id}": {
      "get": {
        "description": "Return all gold sets for one core discipline.",
        "operationId": "get_curriculum_gold_set_entries_api_curriculum_gold_sets__discipline_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "discipline_id",
            "required": true,
            "schema": {
              "title": "Discipline Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumDisciplineGoldSetsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get one core-discipline curriculum gold-set bundle",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/objective-maps": {
      "get": {
        "operationId": "list_curriculum_maps_api_curriculum_objective_maps_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumMapCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List visible versioned objective and concept maps",
        "tags": ["curriculum"]
      },
      "post": {
        "operationId": "create_curriculum_map_api_curriculum_objective_maps_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumMapRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumMapHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create an immutable objective and concept-map revision",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/objective-maps/{map_id}": {
      "get": {
        "operationId": "get_curriculum_map_api_curriculum_objective_maps__map_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "map_id",
            "required": true,
            "schema": {
              "title": "Map Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumMapHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read exact objective and concept-map revision history",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/objective-maps/{map_id}/revisions": {
      "post": {
        "operationId": "revise_curriculum_map_api_curriculum_objective_maps__map_id__revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "map_id",
            "required": true,
            "schema": {
              "title": "Map Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumMapRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumMapHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a validated objective and concept-map snapshot",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/objective-maps/{map_id}/revisions/{revision_id}/planning-readiness": {
      "get": {
        "operationId": "get_curriculum_map_planning_readiness_api_curriculum_objective_maps__map_id__revisions__revision_id__planning_readiness_get",
        "parameters": [
          {
            "in": "path",
            "name": "map_id",
            "required": true,
            "schema": {
              "title": "Map Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revision_id",
            "required": true,
            "schema": {
              "title": "Revision Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumMapPlanningReadinessResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify an exact current validated map and accepted brief",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/outline-variant-sets": {
      "get": {
        "operationId": "list_outline_variant_sets_api_curriculum_outline_variant_sets_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutlineVariantWorkspaceCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List immutable course-outline comparison workspaces",
        "tags": ["curriculum"]
      },
      "post": {
        "operationId": "create_outline_variant_set_api_curriculum_outline_variant_sets_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OutlineVariantSetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutlineVariantSetWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Generate a bounded set of structurally validated outline variants",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/outline-variant-sets/{set_id}": {
      "get": {
        "operationId": "get_outline_variant_set_api_curriculum_outline_variant_sets__set_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "set_id",
            "required": true,
            "schema": {
              "title": "Set Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutlineVariantSetWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read variants, validations, score provenance, and decisions",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/outline-variant-sets/{set_id}/decisions": {
      "post": {
        "operationId": "decide_outline_variant_api_curriculum_outline_variant_sets__set_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "set_id",
            "required": true,
            "schema": {
              "title": "Set Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OutlineDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutlineVariantSetWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Select, reject, merge, or fork exact outline structures",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/outline-variant-sets/{set_id}/manual-variants": {
      "post": {
        "operationId": "add_manual_outline_variant_api_curriculum_outline_variant_sets__set_id__manual_variants_post",
        "parameters": [
          {
            "in": "path",
            "name": "set_id",
            "required": true,
            "schema": {
              "title": "Set Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OutlineManualVariantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutlineVariantSetWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Add a manually authored outline with no generated score provenance",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/outline-variant-sets/{set_id}/variants/{variant_id}/scores": {
      "post": {
        "operationId": "score_outline_variant_api_curriculum_outline_variant_sets__set_id__variants__variant_id__scores_post",
        "parameters": [
          {
            "in": "path",
            "name": "set_id",
            "required": true,
            "schema": {
              "title": "Set Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "variant_id",
            "required": true,
            "schema": {
              "title": "Variant Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OutlineHumanScoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutlineVariantSetWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record a named human score separately from generated scores",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/reviewer-pools": {
      "get": {
        "description": "Return launch expert reviewer pools for the Metis core-six disciplines.",
        "operationId": "get_curriculum_reviewer_pool_catalog_api_curriculum_reviewer_pools_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumReviewerPoolCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get core-six expert reviewer-pool catalog",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/reviewer-pools/{discipline_id}": {
      "get": {
        "description": "Return one expert reviewer pool for a core discipline.",
        "operationId": "get_curriculum_reviewer_pool_entry_api_curriculum_reviewer_pools__discipline_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "discipline_id",
            "required": true,
            "schema": {
              "title": "Discipline Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumReviewerPoolResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get one core-discipline expert reviewer pool",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/safety-policies": {
      "get": {
        "description": "Return implemented V1 curriculum safety policies.",
        "operationId": "get_curriculum_safety_policy_catalog_api_curriculum_safety_policies_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumSafetyPolicyCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get implemented core-discipline curriculum safety policies",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/safety-policies/{discipline_id}": {
      "get": {
        "description": "Return one implemented core-discipline safety policy.",
        "operationId": "get_curriculum_safety_policy_entry_api_curriculum_safety_policies__discipline_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "discipline_id",
            "required": true,
            "schema": {
              "title": "Discipline Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumSafetyPolicyResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get one core-discipline curriculum safety policy",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/safety-policies/{discipline_id}/evaluate": {
      "post": {
        "description": "Evaluate content against an implemented curriculum safety policy.",
        "operationId": "evaluate_curriculum_safety_policy_content_api_curriculum_safety_policies__discipline_id__evaluate_post",
        "parameters": [
          {
            "in": "path",
            "name": "discipline_id",
            "required": true,
            "schema": {
              "title": "Discipline Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CurriculumSafetyPolicyEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumSafetyPolicyEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Evaluate content against a core-discipline curriculum safety policy",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/seed-packs": {
      "get": {
        "description": "Return all launch seed packs for the Metis core-six disciplines.",
        "operationId": "get_curriculum_seed_pack_catalog_api_curriculum_seed_packs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumSeedPackCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get core-six curriculum seed-pack catalog",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/seed-packs/{discipline_id}": {
      "get": {
        "description": "Return one complete core-discipline seed pack.",
        "operationId": "get_curriculum_seed_pack_entry_api_curriculum_seed_packs__discipline_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "discipline_id",
            "required": true,
            "schema": {
              "title": "Discipline Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumSeedPackResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get one core-discipline curriculum seed pack",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/standards-mappings": {
      "get": {
        "description": "Return all launch standards mappings for the Metis core-six disciplines.",
        "operationId": "get_curriculum_standards_mapping_catalog_api_curriculum_standards_mappings_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumStandardsMappingCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get core-six curriculum standards-mapping catalog",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/standards-mappings/{discipline_id}": {
      "get": {
        "description": "Return one complete standards mapping for a core discipline.",
        "operationId": "get_curriculum_standards_mapping_entry_api_curriculum_standards_mappings__discipline_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "discipline_id",
            "required": true,
            "schema": {
              "title": "Discipline Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurriculumStandardsMappingResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get one core-discipline curriculum standards mapping",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/standards-registry": {
      "get": {
        "operationId": "get_canonical_standards_registry_api_curriculum_standards_registry_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CanonicalStandardsRegistryResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List canonical current and versioned standards records",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/subject-routes": {
      "post": {
        "description": "Return the enforced headline or scaffolding route for one pipeline request.",
        "operationId": "route_subject_for_pipeline_api_curriculum_subject_routes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearningSubjectRouteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearningSubjectRouteResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolve subject treatment for a Metis pipeline",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/subject-taxonomy": {
      "get": {
        "description": "Return core-six headline subjects and supporting-subject defaults.",
        "operationId": "get_subject_taxonomy_api_curriculum_subject_taxonomy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearningSubjectTaxonomyResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Get the Metis V1 learning-subject taxonomy",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/subject-taxonomy/lookup": {
      "post": {
        "description": "Resolve free-form subject text to a headline or scaffolding-only treatment.",
        "operationId": "lookup_subject_taxonomy_entry_api_curriculum_subject_taxonomy_lookup_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearningSubjectLookupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearningSubjectLookupResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Resolve learner-entered subject text against the taxonomy",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/subject-taxonomy/{subject_id}": {
      "get": {
        "description": "Return one subject entry from the Metis V1 taxonomy.",
        "operationId": "get_subject_taxonomy_entry_api_curriculum_subject_taxonomy__subject_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearningSubjectResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such curriculum record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get one learning subject by ID or alias",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/workload-estimates": {
      "get": {
        "operationId": "list_workload_estimates_api_curriculum_workload_estimates_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadEstimateCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List visible exact-source workload estimates",
        "tags": ["curriculum"]
      },
      "post": {
        "operationId": "create_workload_estimate_api_curriculum_workload_estimates_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkloadEstimateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadEstimateWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Calculate and retain an exact-source workload estimate",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/workload-estimates/{estimate_id}": {
      "get": {
        "operationId": "get_workload_estimate_api_curriculum_workload_estimates__estimate_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_id",
            "required": true,
            "schema": {
              "title": "Estimate Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadEstimateWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read raw and adjusted workload calculations with exact lineage",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/workload-estimates/{estimate_id}/overrides": {
      "post": {
        "operationId": "override_workload_estimate_api_curriculum_workload_estimates__estimate_id__overrides_post",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_id",
            "required": true,
            "schema": {
              "title": "Estimate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkloadOverrideRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadEstimateWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such curriculum record."
          },
          "409": {
            "description": "This conflicts with the curriculum record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record a reasoned workload override without changing raw arithmetic",
        "tags": ["curriculum"]
      }
    },
    "/api/curriculum/workload-model": {
      "get": {
        "operationId": "get_workload_effort_model_api_curriculum_workload_model_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadEffortModelResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the exact versioned workload-effort model and assumptions",
        "tags": ["curriculum"]
      }
    },
    "/api/evaluator-panels/evaluation": {
      "get": {
        "description": "Return executable corpus outcomes and uncertainty intervals for the panel rules.",
        "operationId": "get_evaluator_panel_evaluation_api_evaluator_panels_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PanelEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Evaluator Panel Evaluation",
        "tags": ["evaluator-panels"]
      }
    },
    "/api/evaluator-panels/runs": {
      "post": {
        "description": "Aggregate recorded evaluator observations into one advisory panel result.",
        "operationId": "create_evaluator_panel_run_api_evaluator_panels_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluatorPanelRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluatorPanelRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such evaluator panel record."
          },
          "409": {
            "description": "This conflicts with the evaluator panel record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Evaluator Panel Run",
        "tags": ["evaluator-panels"]
      }
    },
    "/api/evaluator-panels/runs/{run_id}": {
      "get": {
        "description": "Return one tenant-visible immutable panel run and its review history.",
        "operationId": "get_evaluator_panel_run_api_evaluator_panels_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluatorPanelProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such evaluator panel record."
          },
          "409": {
            "description": "This conflicts with the evaluator panel record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Evaluator Panel Run",
        "tags": ["evaluator-panels"]
      }
    },
    "/api/experiment-governance/evaluation": {
      "get": {
        "description": "Return corpus outcomes and every attempt to escape the pre-registration.",
        "operationId": "get_experiment_governance_evaluation_api_experiment_governance_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExperimentEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Experiment Governance Evaluation",
        "tags": ["experiment-governance"]
      }
    },
    "/api/experiment-governance/runs": {
      "get": {
        "description": "List this tenant's immutable experiment runs, oldest first.",
        "operationId": "list_experiment_runs_api_experiment_governance_runs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExperimentRunProjection"
                  },
                  "title": "Response List Experiment Runs Api Experiment Governance Runs Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such experiment governance record."
          },
          "409": {
            "description": "This conflicts with the experiment governance record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Experiment Runs",
        "tags": ["experiment-governance"]
      },
      "post": {
        "description": "Allocate the cohort, derive the state from the commands, and analyse if stopped.",
        "operationId": "create_experiment_run_api_experiment_governance_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExperimentRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExperimentRunProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such experiment governance record."
          },
          "409": {
            "description": "This conflicts with the experiment governance record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Experiment Run",
        "tags": ["experiment-governance"]
      }
    },
    "/api/experiment-governance/runs/{run_id}": {
      "get": {
        "description": "Return one tenant-visible immutable experiment run.",
        "operationId": "get_experiment_run_api_experiment_governance_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExperimentRunProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such experiment governance record."
          },
          "409": {
            "description": "This conflicts with the experiment governance record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Experiment Run",
        "tags": ["experiment-governance"]
      }
    },
    "/api/feedback-queues/evaluation": {
      "get": {
        "description": "Return corpus outcomes and every attempt to make the queue edit content.",
        "operationId": "get_feedback_queue_evaluation_api_feedback_queues_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Feedback Queue Evaluation",
        "tags": ["feedback-queues"]
      }
    },
    "/api/feedback-queues/queues": {
      "post": {
        "description": "Redact and threshold the signals, then cluster what survives into a queue.",
        "operationId": "create_feedback_queue_api_feedback_queues_queues_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeedbackQueueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackQueueProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such feedback queue record."
          },
          "409": {
            "description": "This conflicts with the feedback queue record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Feedback Queue",
        "tags": ["feedback-queues"]
      }
    },
    "/api/feedback-queues/queues/{queue_id}": {
      "get": {
        "description": "Return one tenant-visible immutable feedback queue.",
        "operationId": "get_feedback_queue_api_feedback_queues_queues__queue_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "queue_id",
            "required": true,
            "schema": {
              "title": "Queue Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackQueueProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such feedback queue record."
          },
          "409": {
            "description": "This conflicts with the feedback queue record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Feedback Queue",
        "tags": ["feedback-queues"]
      }
    },
    "/api/feedback-queues/queues/{queue_id}/decisions": {
      "get": {
        "description": "Return every recorded decision for one queue.",
        "operationId": "list_feedback_decisions_api_feedback_queues_queues__queue_id__decisions_get",
        "parameters": [
          {
            "in": "path",
            "name": "queue_id",
            "required": true,
            "schema": {
              "title": "Queue Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DecisionRecord"
                  },
                  "title": "Response List Feedback Decisions Api Feedback Queues Queues  Queue Id  Decisions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such feedback queue record."
          },
          "409": {
            "description": "This conflicts with the feedback queue record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Feedback Decisions",
        "tags": ["feedback-queues"]
      },
      "post": {
        "description": "Record an author's call. Accepting mints a draft; nothing here publishes.",
        "operationId": "record_feedback_decision_api_feedback_queues_queues__queue_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "queue_id",
            "required": true,
            "schema": {
              "title": "Queue Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DecisionRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such feedback queue record."
          },
          "409": {
            "description": "This conflicts with the feedback queue record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Feedback Decision",
        "tags": ["feedback-queues"]
      }
    },
    "/api/generation/jobs": {
      "post": {
        "description": "Estimate, reserve, dispatch. Returns the finished job or fails typed.",
        "operationId": "start_job_api_generation_jobs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerationBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationJob"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Start Job",
        "tags": ["generation"]
      }
    },
    "/api/generation/jobs/{job_id}": {
      "get": {
        "description": "One job, as it stands.",
        "operationId": "read_job_api_generation_jobs__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationJob"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such generation record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Job",
        "tags": ["generation"]
      }
    },
    "/api/generation/jobs/{job_id}/cancel": {
      "post": {
        "description": "Stop it and bump the fence, so a result still in flight lands late.",
        "operationId": "cancel_job_api_generation_jobs__job_id__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerationJob"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such generation record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Cancel Job",
        "tags": ["generation"]
      }
    },
    "/api/generation/jobs/{job_id}/progress": {
      "get": {
        "description": "How far along, and never what it has produced.",
        "operationId": "read_progress_api_generation_jobs__job_id__progress_get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Job Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sequence",
            "required": false,
            "schema": {
              "default": 1,
              "title": "Sequence",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Read Progress Api Generation Jobs  Job Id  Progress Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such generation record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read Progress",
        "tags": ["generation"]
      }
    },
    "/api/gradebook-corrections/aggregates": {
      "post": {
        "description": "A weighted mean over the grades that have a value; the rest are named, not dropped.",
        "operationId": "recompute_aggregate_api_gradebook_corrections_aggregates_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradeAggregateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AggregateResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Recompute Aggregate",
        "tags": ["gradebook-corrections"]
      }
    },
    "/api/gradebook-corrections/decisions": {
      "post": {
        "description": "Decide a correction. An approval appends an event; nothing is ever overwritten.\n\nTHE PRIOR DECISIONS COME FROM THE STORE, NOT THE BODY. That is the whole\npoint of this route's shape: a separation of duties checked against history\nthe actor supplies is not a separation of duties. The tenant is resolved\nfrom the session for the same reason \u2014 scoping the store by a body field\nwould put the hole back one level down.",
        "operationId": "decide_correction_api_gradebook_corrections_decisions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradeDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GradeDecisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Decide Correction",
        "tags": ["gradebook-corrections"]
      }
    },
    "/api/gradebook-corrections/evaluation": {
      "get": {
        "description": "The visibility walk, the guard walk, the append-only proof and the idempotency proof.",
        "operationId": "get_gradebook_correction_evaluation_api_gradebook_corrections_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GradebookCorrectionReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Gradebook Correction Evaluation",
        "tags": ["gradebook-corrections"]
      }
    },
    "/api/gradebook-corrections/histories/as-of": {
      "post": {
        "description": "The grade as it stood at an earlier moment, so a view already shown can be reproduced.",
        "operationId": "get_history_as_of_api_gradebook_corrections_histories_as_of_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradeProjectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GradeHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get History As Of",
        "tags": ["gradebook-corrections"]
      }
    },
    "/api/gradebook-corrections/projections": {
      "post": {
        "description": "The grade as this caller's audience sees it. A learner reads only their own.",
        "operationId": "get_projection_api_gradebook_corrections_projections_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradeProjectionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GradeProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such gradebook correction record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Projection",
        "tags": ["gradebook-corrections"]
      }
    },
    "/api/gradebook-corrections/propagations": {
      "post": {
        "description": "Send the value in force onward. A target already holding it is reported unchanged.",
        "operationId": "propagate_grade_api_gradebook_corrections_propagations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradePropagationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropagationResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Propagate Grade",
        "tags": ["gradebook-corrections"]
      }
    },
    "/api/gradebook-corrections/queues": {
      "post": {
        "description": "The correction queue, ordered by what a reviewer should look at first.",
        "operationId": "get_queue_api_gradebook_corrections_queues_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradeQueueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GradeQueueResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Queue",
        "tags": ["gradebook-corrections"]
      }
    },
    "/api/gradebook-ingress/bindings": {
      "post": {
        "description": "Say what an external line item is about, so scores on it can be recorded.\n\nWithout this an inbound score is a number attributed to nothing: the\nledger requires the item revision the value was arrived at against, and\nneither LTI AGS nor OneRoster carries one.",
        "operationId": "register_grade_binding_api_gradebook_ingress_bindings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GradeBindingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GradeBinding"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Bind an external line item to the item revision and scale it scores",
        "tags": ["gradebook-ingress"]
      }
    },
    "/api/gradebook-ingress/projection": {
      "get": {
        "description": "Derive the grade from every entry the ledger holds for it.\n\n404 covers both \"no such binding for you\" and \"no entries yet\", and the\ndetail says which of the two it is without saying anything about another\ntenant.",
        "operationId": "read_ags_grade_projection_api_gradebook_ingress_projection_get",
        "parameters": [
          {
            "in": "query",
            "name": "platform_id",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "title": "Platform Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "line_item_id",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "title": "Line Item Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "user_id",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "This caller has not bound that line item, or the ledger holds nothing for that grade yet."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "The current state of one LTI AGS grade, derived from the ledger",
        "tags": ["gradebook-ingress"]
      }
    },
    "/api/grounding-gates/evaluation": {
      "get": {
        "description": "Return bounded fixture conformance and Wilson uncertainty intervals.",
        "operationId": "get_grounding_gate_evaluation_api_grounding_gates_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundingCorpusEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Grounding Gate Evaluation",
        "tags": ["grounding-gates"]
      }
    },
    "/api/grounding-gates/runs": {
      "post": {
        "description": "Evaluate one current confirmed claim against its exact retrieved evidence.",
        "operationId": "create_grounding_gate_run_api_grounding_gates_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroundingGateRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundingGateRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such grounding gate record."
          },
          "409": {
            "description": "This conflicts with the grounding gate record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Grounding Gate Run",
        "tags": ["grounding-gates"]
      }
    },
    "/api/grounding-gates/runs/{package_id}/{run_id}": {
      "get": {
        "description": "Return one visible immutable run with current staleness projection.",
        "operationId": "get_grounding_gate_run_api_grounding_gates_runs__package_id___run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundingGateProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such grounding gate record."
          },
          "409": {
            "description": "This conflicts with the grounding gate record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Grounding Gate Run",
        "tags": ["grounding-gates"]
      }
    },
    "/api/human-signoff-gates/attempt-checks": {
      "post": {
        "description": "What would stop this signature, without making it.",
        "operationId": "check_gate_attempt_api_human_signoff_gates_attempt_checks_post",
        "parameters": [
          {
            "in": "header",
            "name": "x-metis-session-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Session-Id"
            }
          },
          {
            "in": "header",
            "name": "x-metis-auth-method",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Auth-Method"
            }
          },
          {
            "in": "header",
            "name": "x-metis-authenticated-at",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Authenticated-At"
            }
          },
          {
            "in": "header",
            "name": "x-metis-tenant-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Tenant-Id"
            }
          },
          {
            "in": "header",
            "name": "x-metis-batch-context",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Batch-Context"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/GateRefusal"
                  },
                  "title": "Response Check Gate Attempt Api Human Signoff Gates Attempt Checks Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Gate Attempt",
        "tags": ["human-signoff-gates"]
      }
    },
    "/api/human-signoff-gates/evaluation": {
      "get": {
        "description": "Every machine actor refused, every way round the gate closed.",
        "operationId": "get_human_signoff_gate_evaluation_api_human_signoff_gates_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanSignoffGateReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Human Signoff Gate Evaluation",
        "tags": ["human-signoff-gates"]
      }
    },
    "/api/human-signoff-gates/invalidations": {
      "post": {
        "description": "Stop a gate counting after a material change, keeping every signature it had.",
        "operationId": "invalidate_gate_api_human_signoff_gates_invalidations_post",
        "parameters": [
          {
            "in": "header",
            "name": "x-metis-tenant-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Tenant-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvalidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GateInvalidation"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Invalidate Gate",
        "tags": ["human-signoff-gates"]
      }
    },
    "/api/human-signoff-gates/outcomes": {
      "post": {
        "description": "Where a gate stands: who has signed, and whether that is a quorum.",
        "operationId": "get_outcome_api_human_signoff_gates_outcomes_post",
        "parameters": [
          {
            "in": "header",
            "name": "x-metis-tenant-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Tenant-Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OutcomeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignoffGateOutcome"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Outcome",
        "tags": ["human-signoff-gates"]
      }
    },
    "/api/human-signoff-gates/signoffs": {
      "post": {
        "description": "Sign a gate as the caller. A machine, a delegate or a batch is refused here too.",
        "operationId": "sign_gate_api_human_signoff_gates_signoffs_post",
        "parameters": [
          {
            "in": "header",
            "name": "x-metis-session-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Session-Id"
            }
          },
          {
            "in": "header",
            "name": "x-metis-auth-method",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Auth-Method"
            }
          },
          {
            "in": "header",
            "name": "x-metis-authenticated-at",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Authenticated-At"
            }
          },
          {
            "in": "header",
            "name": "x-metis-tenant-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Tenant-Id"
            }
          },
          {
            "in": "header",
            "name": "x-metis-batch-context",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Batch-Context"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Sign Gate",
        "tags": ["human-signoff-gates"]
      }
    },
    "/api/institution-overlays/activations": {
      "post": {
        "description": "Activate a reviewed version, or return every reason it may not go live.",
        "operationId": "activate_overlay_api_institution_overlays_activations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Activate Overlay",
        "tags": ["institution-overlays"]
      }
    },
    "/api/institution-overlays/evaluation": {
      "get": {
        "description": "The direction walk, the resolution probes, the monotonicity property and the lifecycle.",
        "operationId": "get_institution_overlay_evaluation_api_institution_overlays_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstitutionOverlayReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Institution Overlay Evaluation",
        "tags": ["institution-overlays"]
      }
    },
    "/api/institution-overlays/previews": {
      "post": {
        "description": "What activating this version would touch, counted from the inventory given.",
        "operationId": "preview_overlay_api_institution_overlays_previews_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OverlayImpactPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview Overlay",
        "tags": ["institution-overlays"]
      }
    },
    "/api/institution-overlays/resolutions": {
      "post": {
        "description": "What is in force for this tenant, and which level put each value there.",
        "operationId": "resolve_overlays_api_institution_overlays_resolutions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OverlayResolveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResolutionResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve Overlays",
        "tags": ["institution-overlays"]
      }
    },
    "/api/institution-overlays/revalidations": {
      "post": {
        "description": "What each dependent item needs after the change, and what nothing touched.",
        "operationId": "revalidate_dependents_api_institution_overlays_revalidations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevalidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevalidateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Revalidate Dependents",
        "tags": ["institution-overlays"]
      }
    },
    "/api/institution-overlays/rollbacks": {
      "post": {
        "description": "A rollback is a new draft carrying the old values; nothing in history is rewritten.",
        "operationId": "roll_overlay_back_api_institution_overlays_rollbacks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RollbackRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OverlayVersion"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the institution overlay record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Roll Overlay Back",
        "tags": ["institution-overlays"]
      }
    },
    "/api/integrity-audit/authorizations": {
      "post": {
        "description": "An integrity lead grants; the grantor recorded is the caller, not a name in the body.",
        "operationId": "grant_forensic_authorization_api_integrity_audit_authorizations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForensicAuthorization"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForensicAuthorization"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Grant Forensic Authorization",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/cases/{case_id}/explanation": {
      "post": {
        "description": "The learner's seven sections from canonical records. A refusal is 422 with its reason.",
        "operationId": "project_learner_explanation_api_integrity_audit_cases__case_id__explanation_post",
        "parameters": [
          {
            "in": "path",
            "name": "case_id",
            "required": true,
            "schema": {
              "title": "Case Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExplanationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerExplanationView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project Learner Explanation",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/chains/{kind}/{subject_id}": {
      "get": {
        "description": "The chain as the caller's audience sees it. The reading is appended as an access link.",
        "operationId": "view_audit_chain_api_integrity_audit_chains__kind___subject_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": ["signal", "case"],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "authorization_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 160,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChainView"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "View Audit Chain",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/chains/{kind}/{subject_id}/events": {
      "post": {
        "description": "Append the next link. The subject in the path and the body must agree.",
        "operationId": "append_audit_event_api_integrity_audit_chains__kind___subject_id__events_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": ["signal", "case"],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppendRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditEvent"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append Audit Event",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/chains/{kind}/{subject_id}/export": {
      "get": {
        "operationId": "export_audit_chain_api_integrity_audit_chains__kind___subject_id__export_get",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": ["signal", "case"],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "authorization_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 160,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Authorization Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditExport"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export Audit Chain",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/chains/{kind}/{subject_id}/holds/{hold_id}/release": {
      "post": {
        "operationId": "release_legal_hold_api_integrity_audit_chains__kind___subject_id__holds__hold_id__release_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": ["signal", "case"],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "hold_id",
            "required": true,
            "schema": {
              "title": "Hold Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HoldRelease"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalHold"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Release Legal Hold",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/chains/{kind}/{subject_id}/purge": {
      "post": {
        "description": "Drop payloads the policy allows. A legal hold refuses the whole purge with 409.",
        "operationId": "purge_under_retention_api_integrity_audit_chains__kind___subject_id__purge_post",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": ["signal", "case"],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetentionPolicy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurgeReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Purge Under Retention",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/chains/{kind}/{subject_id}/verify": {
      "get": {
        "operationId": "verify_audit_chain_api_integrity_audit_chains__kind___subject_id__verify_get",
        "parameters": [
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": ["signal", "case"],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subject_id",
            "required": true,
            "schema": {
              "title": "Subject Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChainVerification"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify Audit Chain",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/evaluation": {
      "get": {
        "description": "Visibility per audience, a tampered link, a purge under hold, an export, four explanations.",
        "operationId": "get_integrity_audit_evaluation_api_integrity_audit_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrityAuditReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Integrity Audit Evaluation",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/histories/{signal_id}/{case_id}": {
      "get": {
        "operationId": "verify_audit_history_api_integrity_audit_histories__signal_id___case_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "signal_id",
            "required": true,
            "schema": {
              "title": "Signal Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "case_id",
            "required": true,
            "schema": {
              "title": "Case Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HistoryVerification"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Verify Audit History",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-audit/holds": {
      "post": {
        "operationId": "place_legal_hold_api_integrity_audit_holds_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegalHold"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LegalHold"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such integrity audit record."
          },
          "409": {
            "description": "This conflicts with the integrity audit record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Place Legal Hold",
        "tags": ["integrity-audit"]
      }
    },
    "/api/integrity-modes/historical/{vocabulary_id}/{code}/{recorded_under}": {
      "get": {
        "description": "What a code meant under the mapping version a session was recorded with.",
        "operationId": "get_historical_resolution_api_integrity_modes_historical__vocabulary_id___code___recorded_under__get",
        "parameters": [
          {
            "in": "path",
            "name": "vocabulary_id",
            "required": true,
            "schema": {
              "enum": [
                "assessment.integrity_mode",
                "interlock.mode",
                "tutor_grounding.assessment_mode",
                "tutor_preview.assessment_mode",
                "tutor_binding.integrity_mode",
                "tutoring.integrity_mode",
                "learner.tutor_style"
              ],
              "title": "Vocabulary Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "code",
            "required": true,
            "schema": {
              "title": "Code",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "recorded_under",
            "required": true,
            "schema": {
              "title": "Recorded Under",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HistoricalResolution"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Historical Resolution",
        "tags": ["integrity-modes"]
      }
    },
    "/api/integrity-modes/registry": {
      "get": {
        "description": "Every vocabulary, every projection, every round trip and every deprecation.",
        "operationId": "get_integrity_mode_registry_api_integrity_modes_registry_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegrityModeRegistryReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Integrity Mode Registry",
        "tags": ["integrity-modes"]
      }
    },
    "/api/integrity-modes/round-trip/{vocabulary_id}/{code}": {
      "get": {
        "description": "Send one code through its canonical and back, and say what was lost.",
        "operationId": "get_round_trip_api_integrity_modes_round_trip__vocabulary_id___code__get",
        "parameters": [
          {
            "in": "path",
            "name": "vocabulary_id",
            "required": true,
            "schema": {
              "enum": [
                "assessment.integrity_mode",
                "interlock.mode",
                "tutor_grounding.assessment_mode",
                "tutor_preview.assessment_mode",
                "tutor_binding.integrity_mode",
                "tutoring.integrity_mode",
                "learner.tutor_style"
              ],
              "title": "Vocabulary Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "code",
            "required": true,
            "schema": {
              "title": "Code",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoundTrip"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Round Trip",
        "tags": ["integrity-modes"]
      }
    },
    "/api/integrity-signals/access-audit": {
      "get": {
        "description": "Who viewed which signal, as which audience, and which fields were shown.",
        "operationId": "get_access_audit_api_integrity_signals_access_audit_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AccessAuditEntry"
                  },
                  "title": "Response Get Access Audit Api Integrity Signals Access Audit Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such integrity signal review record."
          },
          "409": {
            "description": "This conflicts with the integrity signal review record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Access Audit",
        "tags": ["integrity-signals"]
      }
    },
    "/api/integrity-signals/evaluation": {
      "get": {
        "description": "The six reviewer journeys, every protected-data probe, and the visibility matrix.",
        "operationId": "get_integrity_signal_review_evaluation_api_integrity_signals_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegritySignalReviewReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Integrity Signal Review Evaluation",
        "tags": ["integrity-signals"]
      }
    },
    "/api/integrity-signals/queue": {
      "get": {
        "description": "The permission-filtered queue, with priority, deadlines, duplicates and freshness derived.",
        "operationId": "get_queue_api_integrity_signals_queue_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SignalQueueItem"
                  },
                  "title": "Response Get Queue Api Integrity Signals Queue Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity signal review record."
          },
          "409": {
            "description": "This conflicts with the integrity signal review record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Queue",
        "tags": ["integrity-signals"]
      }
    },
    "/api/integrity-signals/signals": {
      "post": {
        "description": "Record a signal projection. It arrives new at version 1 and moves only by action.",
        "operationId": "record_signal_api_integrity_signals_signals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignalProjectionBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignalProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such integrity signal review record."
          },
          "409": {
            "description": "This conflicts with the integrity signal review record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Signal",
        "tags": ["integrity-signals"]
      }
    },
    "/api/integrity-signals/signals/{signal_id}/actions": {
      "post": {
        "description": "Request evidence, dismiss, escalate or open a case. No grade or consequence travels here.",
        "operationId": "act_on_signal_api_integrity_signals_signals__signal_id__actions_post",
        "parameters": [
          {
            "in": "path",
            "name": "signal_id",
            "required": true,
            "schema": {
              "title": "Signal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewAction"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActionRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity signal review record."
          },
          "409": {
            "description": "This conflicts with the integrity signal review record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Act On Signal",
        "tags": ["integrity-signals"]
      }
    },
    "/api/integrity-signals/signals/{signal_id}/history": {
      "get": {
        "operationId": "get_signal_history_api_integrity_signals_signals__signal_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "signal_id",
            "required": true,
            "schema": {
              "title": "Signal Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ActionRecord"
                  },
                  "title": "Response Get Signal History Api Integrity Signals Signals  Signal Id  History Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity signal review record."
          },
          "409": {
            "description": "This conflicts with the integrity signal review record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Signal History",
        "tags": ["integrity-signals"]
      }
    },
    "/api/integrity-signals/signals/{signal_id}/view": {
      "post": {
        "description": "The field-level-redacted view for the caller's audience. Leaves an access-audit entry.",
        "operationId": "view_signal_api_integrity_signals_signals__signal_id__view_post",
        "parameters": [
          {
            "in": "path",
            "name": "signal_id",
            "required": true,
            "schema": {
              "title": "Signal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ViewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecureView"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such integrity signal review record."
          },
          "409": {
            "description": "This conflicts with the integrity signal review record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "View Signal",
        "tags": ["integrity-signals"]
      }
    },
    "/api/item-bank/accessibility-completeness/items/{draft_id}/assessments": {
      "post": {
        "operationId": "append_accessibility_completeness_assessment_api_item_bank_accessibility_completeness_items__draft_id__assessments_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessibilityCompletenessAssessmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessibilityCompletenessAssessmentResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append contextual checklist and exact alternative-asset completeness evidence",
        "tags": ["accessibility-completeness"]
      }
    },
    "/api/item-bank/accessibility-completeness/items/{draft_id}/history": {
      "get": {
        "operationId": "get_accessibility_completeness_history_api_item_bank_accessibility_completeness_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessibilityCompletenessHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable contextual completeness assessments and publication gates",
        "tags": ["accessibility-completeness"]
      }
    },
    "/api/item-bank/accessibility-completeness/items/{draft_id}/prepare": {
      "post": {
        "operationId": "prepare_accessibility_completeness_api_item_bank_accessibility_completeness_items__draft_id__prepare_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessibilityCompletenessPreparationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessibilityCompletenessPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve the exact item, target, locale, PNP, and alternative applicability matrix",
        "tags": ["accessibility-completeness"]
      }
    },
    "/api/item-bank/accessibility-completeness/items/{draft_id}/publication-gates": {
      "post": {
        "operationId": "append_accessibility_completeness_gate_api_item_bank_accessibility_completeness_items__draft_id__publication_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessibilityCompletenessGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessibilityCompletenessGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the exact fail-closed accessibility completeness publication decision",
        "tags": ["accessibility-completeness"]
      }
    },
    "/api/item-bank/accessibility/items/{draft_id}/audits": {
      "post": {
        "operationId": "append_item_accessibility_audit_api_item_bank_accessibility_items__draft_id__audits_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemAccessibilityAuditRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAccessibilityAuditResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append exact automated, manual, preview, and QTI support evidence",
        "tags": ["item-accessibility"]
      }
    },
    "/api/item-bank/accessibility/items/{draft_id}/history": {
      "get": {
        "operationId": "get_item_accessibility_history_api_item_bank_accessibility_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAccessibilityHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable item accessibility audits, findings, matrices, and gates",
        "tags": ["item-accessibility"]
      }
    },
    "/api/item-bank/accessibility/items/{draft_id}/prepare": {
      "get": {
        "operationId": "prepare_item_accessibility_api_item_bank_accessibility_items__draft_id__prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAccessibilityPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare the exact versioned item accessibility checklist and current evidence",
        "tags": ["item-accessibility"]
      }
    },
    "/api/item-bank/accessibility/items/{draft_id}/release-gates": {
      "post": {
        "operationId": "append_item_accessibility_gate_api_item_bank_accessibility_items__draft_id__release_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemAccessibilityGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAccessibilityGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the authoritative no-exception item accessibility release gate",
        "tags": ["item-accessibility"]
      }
    },
    "/api/item-bank/answer-consistency/items/{draft_id}/history": {
      "get": {
        "operationId": "get_answer_consistency_history_api_item_bank_answer_consistency_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerConsistencyHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable answer-consistency scans, reviews, and release gates",
        "tags": ["answer-consistency"]
      }
    },
    "/api/item-bank/answer-consistency/items/{draft_id}/prepare": {
      "get": {
        "operationId": "prepare_answer_consistency_api_item_bank_answer_consistency_items__draft_id__prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "maxLength": 63,
              "minLength": 2,
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerConsistencyPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare the exact key, scoring, rationale, feedback, hint, and freshness state",
        "tags": ["answer-consistency"]
      }
    },
    "/api/item-bank/answer-consistency/items/{draft_id}/release-gates": {
      "post": {
        "operationId": "append_answer_consistency_gate_api_item_bank_answer_consistency_items__draft_id__release_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerConsistencyGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerConsistencyGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the mutation- and review-bound answer release decision",
        "tags": ["answer-consistency"]
      }
    },
    "/api/item-bank/answer-consistency/items/{draft_id}/reviews": {
      "post": {
        "operationId": "append_answer_consistency_review_api_item_bank_answer_consistency_items__draft_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerConsistencyReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerConsistencyReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append human dispositions for every semantic answer-consistency finding",
        "tags": ["answer-consistency"]
      }
    },
    "/api/item-bank/answer-consistency/items/{draft_id}/scans": {
      "post": {
        "operationId": "append_answer_consistency_scan_api_item_bank_answer_consistency_items__draft_id__scans_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerConsistencyScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerConsistencyScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append exact key, correctness, surface, equivalence, and tolerance findings",
        "tags": ["answer-consistency"]
      }
    },
    "/api/item-bank/answer-leakage/items/{draft_id}/history": {
      "get": {
        "operationId": "get_answer_leakage_history_api_item_bank_answer_leakage_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerLeakageHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable leakage scans, raw findings, reviews, and release gates",
        "tags": ["answer-leakage"]
      }
    },
    "/api/item-bank/answer-leakage/items/{draft_id}/prepare": {
      "get": {
        "operationId": "prepare_answer_leakage_api_item_bank_answer_leakage_items__draft_id__prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerLeakagePreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare exact protected-material and learner-visible channel coverage state",
        "tags": ["answer-leakage"]
      }
    },
    "/api/item-bank/answer-leakage/items/{draft_id}/release-gates": {
      "post": {
        "operationId": "append_answer_leakage_gate_api_item_bank_answer_leakage_items__draft_id__release_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerLeakageReleaseGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerLeakageReleaseGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the authoritative no-leakage learner-release gate",
        "tags": ["answer-leakage"]
      }
    },
    "/api/item-bank/answer-leakage/items/{draft_id}/reviews": {
      "post": {
        "operationId": "append_answer_leakage_review_api_item_bank_answer_leakage_items__draft_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerLeakageReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerLeakageReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a completed human review of every raw leakage finding",
        "tags": ["answer-leakage"]
      }
    },
    "/api/item-bank/answer-leakage/items/{draft_id}/scans": {
      "post": {
        "operationId": "append_answer_leakage_scan_api_item_bank_answer_leakage_items__draft_id__scans_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerLeakageScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerLeakageScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append exact attributed scan evidence across every learner-visible channel",
        "tags": ["answer-leakage"]
      }
    },
    "/api/item-bank/answer-verification/items/{draft_id}/history": {
      "get": {
        "operationId": "get_answer_verification_history_api_item_bank_answer_verification_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerVerificationHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable raw findings, human reviews, and publication gates",
        "tags": ["answer-verification"]
      }
    },
    "/api/item-bank/answer-verification/items/{draft_id}/prepare": {
      "get": {
        "operationId": "prepare_answer_verification_api_item_bank_answer_verification_items__draft_id__prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "maxLength": 63,
              "minLength": 2,
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerVerificationPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare exact single-correct applicability, evidence, review, and gate state",
        "tags": ["answer-verification"]
      }
    },
    "/api/item-bank/answer-verification/items/{draft_id}/publication-gates": {
      "post": {
        "operationId": "append_answer_publication_gate_api_item_bank_answer_verification_items__draft_id__publication_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerPublicationGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerPublicationGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the authoritative single-correct publication gate decision",
        "tags": ["answer-verification"]
      }
    },
    "/api/item-bank/answer-verification/items/{draft_id}/reviews": {
      "post": {
        "operationId": "append_answer_review_api_item_bank_answer_verification_items__draft_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a completed human uniqueness or ambiguity review",
        "tags": ["answer-verification"]
      }
    },
    "/api/item-bank/answer-verification/items/{draft_id}/verifications": {
      "post": {
        "operationId": "append_answer_verification_api_item_bank_answer_verification_items__draft_id__verifications_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnswerVerificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnswerVerificationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append exact known-value and attributed checker ambiguity evidence",
        "tags": ["answer-verification"]
      }
    },
    "/api/item-bank/assemblies": {
      "get": {
        "operationId": "list_item_assemblies_api_item_bank_assemblies_get",
        "parameters": [
          {
            "in": "query",
            "name": "assessment_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 255,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Assessment Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAssemblyCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List authorized immutable item-assembly runs",
        "tags": ["item-assembly"]
      },
      "post": {
        "operationId": "create_item_assembly_api_item_bank_assemblies_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemAssemblyRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAssemblyWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve exact candidates and persist one deterministic assembly run",
        "tags": ["item-assembly"]
      }
    },
    "/api/item-bank/assemblies/{assembly_id}": {
      "get": {
        "operationId": "get_item_assembly_api_item_bank_assemblies__assembly_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "assembly_id",
            "required": true,
            "schema": {
              "title": "Assembly Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAssemblyWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one exact assembly, diagnostics, alternatives, and decisions",
        "tags": ["item-assembly"]
      }
    },
    "/api/item-bank/assemblies/{assembly_id}/decisions": {
      "post": {
        "operationId": "append_item_assembly_decision_api_item_bank_assemblies__assembly_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "assembly_id",
            "required": true,
            "schema": {
              "title": "Assembly Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemAssemblyDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemAssemblyWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append an explicit accept, reject, or request-changes decision",
        "tags": ["item-assembly"]
      }
    },
    "/api/item-bank/clarity/items/{draft_id}/history": {
      "get": {
        "operationId": "get_item_clarity_history_api_item_bank_clarity_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemClarityHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable clarity scans, human decisions, and release gates",
        "tags": ["item-clarity"]
      }
    },
    "/api/item-bank/clarity/items/{draft_id}/prepare": {
      "get": {
        "operationId": "prepare_item_clarity_api_item_bank_clarity_items__draft_id__prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "maxLength": 63,
              "minLength": 2,
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemClarityPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare exact item text, versioned clarity rules, review, and gate state",
        "tags": ["item-clarity"]
      }
    },
    "/api/item-bank/clarity/items/{draft_id}/release-gates": {
      "post": {
        "operationId": "append_item_clarity_gate_api_item_bank_clarity_items__draft_id__release_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemClarityGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemClarityGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the authoritative blocking-ambiguity release decision",
        "tags": ["item-clarity"]
      }
    },
    "/api/item-bank/clarity/items/{draft_id}/reviews": {
      "post": {
        "operationId": "append_item_clarity_review_api_item_bank_clarity_items__draft_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemClarityReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemClarityReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append human decisions for every retained raw clarity finding",
        "tags": ["item-clarity"]
      }
    },
    "/api/item-bank/clarity/items/{draft_id}/scans": {
      "post": {
        "operationId": "append_item_clarity_scan_api_item_bank_clarity_items__draft_id__scans_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemClarityScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemClarityScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append deterministic anchored findings and attributed semantic assists",
        "tags": ["item-clarity"]
      }
    },
    "/api/item-bank/comparisons": {
      "get": {
        "operationId": "list_item_comparisons_api_item_bank_comparisons_get",
        "parameters": [
          {
            "in": "query",
            "name": "draft_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Draft Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemComparisonCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List authorized immutable item comparisons",
        "tags": ["item-comparison"]
      },
      "post": {
        "operationId": "create_item_comparison_api_item_bank_comparisons_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemComparisonCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemComparisonWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve and persist one exact role-redacted semantic item comparison",
        "tags": ["item-comparison"]
      }
    },
    "/api/item-bank/comparisons/{comparison_id}": {
      "get": {
        "operationId": "get_item_comparison_api_item_bank_comparisons__comparison_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "comparison_id",
            "required": true,
            "schema": {
              "title": "Comparison Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemComparisonWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one exact comparison and its immutable decision projections",
        "tags": ["item-comparison"]
      }
    },
    "/api/item-bank/comparisons/{comparison_id}/decisions": {
      "post": {
        "operationId": "append_item_comparison_decision_api_item_bank_comparisons__comparison_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "comparison_id",
            "required": true,
            "schema": {
              "title": "Comparison Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemComparisonDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemComparisonWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append select, reject, request-changes, merge, or supersede authority",
        "tags": ["item-comparison"]
      }
    },
    "/api/item-bank/distractor-quality/items/{draft_id}/history": {
      "get": {
        "operationId": "get_distractor_quality_history_api_item_bank_distractor_quality_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorQualityHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable distractor-quality scans, reviews, and release gates",
        "tags": ["distractor-quality"]
      }
    },
    "/api/item-bank/distractor-quality/items/{draft_id}/prepare": {
      "get": {
        "operationId": "prepare_distractor_quality_api_item_bank_distractor_quality_items__draft_id__prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "maxLength": 63,
              "minLength": 2,
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "discipline_id",
            "required": false,
            "schema": {
              "default": "general",
              "enum": ["general", "mathematics", "science", "language-arts"],
              "title": "Discipline Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorQualityPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare exact option text, rationale, applicability, and quality state",
        "tags": ["distractor-quality"]
      }
    },
    "/api/item-bank/distractor-quality/items/{draft_id}/release-gates": {
      "post": {
        "operationId": "append_distractor_quality_gate_api_item_bank_distractor_quality_items__draft_id__release_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DistractorQualityGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorQualityGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the revision- and rule-bound distractor release decision",
        "tags": ["distractor-quality"]
      }
    },
    "/api/item-bank/distractor-quality/items/{draft_id}/reviews": {
      "post": {
        "operationId": "append_distractor_quality_review_api_item_bank_distractor_quality_items__draft_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DistractorQualityReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorQualityReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append human dispositions for every attributed semantic finding",
        "tags": ["distractor-quality"]
      }
    },
    "/api/item-bank/distractor-quality/items/{draft_id}/scans": {
      "post": {
        "operationId": "append_distractor_quality_scan_api_item_bank_distractor_quality_items__draft_id__scans_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DistractorQualityScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorQualityScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append exact deterministic and attributed semantic distractor findings",
        "tags": ["distractor-quality"]
      }
    },
    "/api/item-bank/distractors/concepts": {
      "get": {
        "operationId": "get_misconception_catalog_api_item_bank_distractors_concepts_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MisconceptionCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the versioned misconception vocabulary for one authorized tenant",
        "tags": ["distractor-mapping"]
      }
    },
    "/api/item-bank/distractors/concepts/revisions": {
      "post": {
        "operationId": "append_misconception_revision_api_item_bank_distractors_concepts_revisions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MisconceptionConceptRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MisconceptionConceptRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a versioned misconception vocabulary revision",
        "tags": ["distractor-mapping"]
      }
    },
    "/api/item-bank/distractors/items/{draft_id}/analyses": {
      "post": {
        "operationId": "append_distractor_analysis_api_item_bank_distractors_items__draft_id__analyses_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DistractorAnalysisRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorAnalysisResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Run versioned known-value lint and attributed mapping suggestions",
        "tags": ["distractor-mapping"]
      }
    },
    "/api/item-bank/distractors/items/{draft_id}/history": {
      "get": {
        "operationId": "get_distractor_history_api_item_bank_distractors_items__draft_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable distractor analyses, human reviews, and empirical statistics",
        "tags": ["distractor-mapping"]
      }
    },
    "/api/item-bank/distractors/items/{draft_id}/prepare": {
      "get": {
        "operationId": "prepare_distractor_mapping_api_item_bank_distractors_items__draft_id__prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "maxLength": 63,
              "minLength": 2,
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare exact distractors, vocabulary, evidence, and review freshness",
        "tags": ["distractor-mapping"]
      }
    },
    "/api/item-bank/distractors/items/{draft_id}/reviews": {
      "post": {
        "operationId": "append_distractor_review_api_item_bank_distractors_items__draft_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DistractorReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append human accept, edit, or reject decisions for every suggestion",
        "tags": ["distractor-mapping"]
      }
    },
    "/api/item-bank/distractors/items/{draft_id}/statistics": {
      "post": {
        "operationId": "append_distractor_statistics_api_item_bank_distractors_items__draft_id__statistics_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DistractorStatisticsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistractorStatisticsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append empirical option statistics without inferring learner misconceptions",
        "tags": ["distractor-mapping"]
      }
    },
    "/api/item-bank/drafts": {
      "post": {
        "operationId": "capture_item_draft_api_item_bank_drafts_post",
        "parameters": [
          {
            "description": "Single-tenant scope override available only to admins.",
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Single-tenant scope override available only to admins.",
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemDraftCaptureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemDraftResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preserve a zero-form item capture and create an incomplete draft",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}": {
      "get": {
        "operationId": "get_item_draft_api_item_bank_drafts__draft_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "description": "Single-tenant scope override available only to admins.",
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Single-tenant scope override available only to admins.",
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemDraftResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one authorized item draft with its complete revision history",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code": {
      "get": {
        "operationId": "get_math_code_item_history_api_item_bank_drafts__draft_id__math_code_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathCodeRevisionHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read authorized immutable math/code authoring history",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code/execute-preview": {
      "post": {
        "operationId": "execute_math_code_item_preview_api_item_bank_drafts__draft_id__math_code_execute_preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodePreviewExecutionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CodePreviewExecutionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Run visible code cases in a bounded, networkless, disposable sandbox",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code/prepare": {
      "get": {
        "operationId": "prepare_math_code_item_api_item_bank_drafts__draft_id__math_code_prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathCodePreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare an exact item source for math or code authoring",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code/preview": {
      "get": {
        "operationId": "preview_math_code_item_api_item_bank_drafts__draft_id__math_code_preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "mode",
            "required": false,
            "schema": {
              "default": "author",
              "enum": ["author", "learner"],
              "title": "Mode",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathCodePreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview answer-safe math/code learner and author surfaces",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code/projection": {
      "get": {
        "operationId": "project_math_code_item_api_item_bank_drafts__draft_id__math_code_projection_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "surface",
            "required": false,
            "schema": {
              "default": "learner",
              "enum": ["learner", "search", "export", "log", "tutor"],
              "title": "Surface",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathCodeSafeProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project hidden-test-free math/code fields for a downstream surface",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code/protected-export": {
      "get": {
        "operationId": "export_protected_math_code_item_api_item_bank_drafts__draft_id__math_code_protected_export_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathCodeProtectedExport"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export canonical math answers, hidden tests, and pinned runtime contracts",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code/render-plan": {
      "get": {
        "operationId": "render_math_code_item_api_item_bank_drafts__draft_id__math_code_render_plan_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathRenderPlan"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Build a scriptless, networkless MathML renderer plan",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/math-code/revisions": {
      "post": {
        "operationId": "append_math_code_item_revision_api_item_bank_drafts__draft_id__math_code_revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MathCodeRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathCodeRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append one protected math/code authoring revision",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive": {
      "get": {
        "operationId": "get_media_interactive_item_history_api_item_bank_drafts__draft_id__media_interactive_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaInteractiveRevisionHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable media/interactive authoring history",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive/capture-preview": {
      "post": {
        "operationId": "capture_media_interactive_item_preview_api_item_bank_drafts__draft_id__media_interactive_capture_preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewResponseCaptureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreviewResponseCaptureReceipt"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Validate and HMAC-sign one typed preview response event",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive/prepare": {
      "get": {
        "operationId": "prepare_media_interactive_item_api_item_bank_drafts__draft_id__media_interactive_prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaInteractivePreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare an exact source for governed media/interactive authoring",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive/preview": {
      "post": {
        "operationId": "preview_media_interactive_item_api_item_bank_drafts__draft_id__media_interactive_preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccommodationPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaInteractivePreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview locale, device, input, bandwidth, and accessibility modes",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive/projection": {
      "get": {
        "operationId": "project_media_interactive_item_api_item_bank_drafts__draft_id__media_interactive_projection_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "surface",
            "required": false,
            "schema": {
              "default": "learner",
              "enum": ["learner", "search", "export", "log", "tutor"],
              "title": "Surface",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaInteractiveSafeProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project answer- and signer-free fields for a downstream surface",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive/protected-export": {
      "get": {
        "operationId": "export_protected_media_interactive_item_api_item_bank_drafts__draft_id__media_interactive_protected_export_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaInteractiveProtectedExport"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export protected scoring hooks, expected values, and signer references",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive/qti-report": {
      "get": {
        "operationId": "report_media_interactive_item_qti_api_item_bank_drafts__draft_id__media_interactive_qti_report_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "target",
            "required": false,
            "schema": {
              "default": "qti-3.0-metis-extension",
              "enum": ["qti-3.0-core", "qti-3.0-metis-extension", "qti-2.2"],
              "title": "Target",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaInteractiveQtiReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export and round-trip through an exact QTI profile",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/media-interactive/revisions": {
      "post": {
        "operationId": "append_media_interactive_item_revision_api_item_bank_drafts__draft_id__media_interactive_revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaInteractiveRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaInteractiveRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append one governed media/interactive authoring revision",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/selected-response": {
      "get": {
        "operationId": "get_selected_response_history_api_item_bank_drafts__draft_id__selected_response_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectedResponseRevisionHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the authorized immutable selected-response revision history",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/selected-response/prepare": {
      "get": {
        "operationId": "prepare_selected_response_api_item_bank_drafts__draft_id__selected_response_prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectedResponsePreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare an exact source and protected-property policy for response authoring",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/selected-response/preview": {
      "get": {
        "operationId": "preview_selected_response_api_item_bank_drafts__draft_id__selected_response_preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "mode",
            "required": false,
            "schema": {
              "default": "author",
              "enum": ["author", "key", "learner"],
              "title": "Mode",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "seed",
            "required": false,
            "schema": {
              "default": "preview",
              "maxLength": 160,
              "minLength": 1,
              "title": "Seed",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "mapping": {
                      "author": "#/components/schemas/SelectedResponseAuthorPreview",
                      "key": "#/components/schemas/SelectedResponseKeyPreview",
                      "learner": "#/components/schemas/SelectedResponseLearnerPreview"
                    },
                    "propertyName": "mode"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/SelectedResponseAuthorPreview"
                    },
                    {
                      "$ref": "#/components/schemas/SelectedResponseLearnerPreview"
                    },
                    {
                      "$ref": "#/components/schemas/SelectedResponseKeyPreview"
                    }
                  ],
                  "title": "Response Preview Selected Response Api Item Bank Drafts  Draft Id  Selected Response Preview Get"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview stable selected-response identities in author, key, or learner mode",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/selected-response/projection": {
      "get": {
        "operationId": "project_selected_response_api_item_bank_drafts__draft_id__selected_response_projection_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "surface",
            "required": false,
            "schema": {
              "default": "learner",
              "enum": ["learner", "search", "export", "log", "tutor"],
              "title": "Surface",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectedResponseSafeProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project key-free selected-response fields for a named downstream surface",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/selected-response/protected-export": {
      "get": {
        "operationId": "export_protected_selected_response_api_item_bank_drafts__draft_id__selected_response_protected_export_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectedResponseProtectedExport"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export protected keys and rationales with explicit author authorization",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/selected-response/revisions": {
      "post": {
        "operationId": "append_selected_response_revision_api_item_bank_drafts__draft_id__selected_response_revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelectedResponseRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectedResponseRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append one protected selected-response authoring revision",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/selected-response/score-preview": {
      "post": {
        "operationId": "score_selected_response_preview_api_item_bank_drafts__draft_id__selected_response_score_preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelectedResponseSubmission"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelectedResponseScoreResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Score a stable-identity submission inside the protected author workbench",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/structured": {
      "put": {
        "operationId": "edit_item_draft_api_item_bank_drafts__draft_id__structured_put",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "description": "Single-tenant scope override available only to admins.",
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Single-tenant scope override available only to admins.",
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemDraftStructuredEditRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemDraftResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append an answer-safe structured item draft revision",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/validate": {
      "post": {
        "operationId": "validate_item_draft_api_item_bank_drafts__draft_id__validate_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "description": "Single-tenant scope override available only to admins.",
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Single-tenant scope override available only to admins.",
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemDraftValidationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemDraftResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append an explicit item draft completion validation result",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/variant-proposals/{proposal_id}/decision": {
      "post": {
        "operationId": "decide_item_variant_api_item_bank_drafts__draft_id__variant_proposals__proposal_id__decision_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "pattern": "^item-variant-proposal-[a-f0-9]{40}$",
              "title": "Proposal Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemVariantDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemVariantDecisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept, edit, or reject one item variant without bank admission",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/variant-sets/{set_id}": {
      "get": {
        "operationId": "get_item_variant_set_api_item_bank_drafts__draft_id__variant_sets__set_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "set_id",
            "required": true,
            "schema": {
              "pattern": "^item-variant-set-[a-f0-9]{40}$",
              "title": "Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemVariantSetResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one authorized item-variant set with human decisions",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/variants": {
      "post": {
        "operationId": "create_item_variant_set_api_item_bank_drafts__draft_id__variants_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemVariantSetRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemVariantSetResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Generate and persist a fenced item-variant proposal set",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/variants/prepare": {
      "get": {
        "operationId": "prepare_item_variants_api_item_bank_drafts__draft_id__variants_prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "count",
            "required": false,
            "schema": {
              "default": 2,
              "maximum": 6,
              "minimum": 1,
              "title": "Count",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemVariantPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare an exact item revision and bounded variant cost estimate",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/written-response": {
      "get": {
        "operationId": "get_written_response_history_api_item_bank_drafts__draft_id__written_response_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrittenResponseRevisionHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the authorized immutable written-response revision history",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/written-response/moderation-plan": {
      "post": {
        "operationId": "plan_written_response_moderation_api_item_bank_drafts__draft_id__written_response_moderation_plan_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WrittenResponseModerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrittenResponseModerationPlan"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Evaluate blind marking discrepancy and reconciliation requirements",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/written-response/prepare": {
      "get": {
        "operationId": "prepare_written_response_api_item_bank_drafts__draft_id__written_response_prepare_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrittenResponsePreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare an exact source and protected policy for written-response authoring",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/written-response/preview": {
      "get": {
        "operationId": "preview_written_response_api_item_bank_drafts__draft_id__written_response_preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "mode",
            "required": false,
            "schema": {
              "default": "author",
              "enum": ["author", "marker", "learner"],
              "title": "Mode",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "mapping": {
                      "author": "#/components/schemas/WrittenResponseAuthorPreview",
                      "learner": "#/components/schemas/WrittenResponseLearnerPreview",
                      "marker": "#/components/schemas/WrittenResponseMarkerPreview"
                    },
                    "propertyName": "mode"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/WrittenResponseAuthorPreview"
                    },
                    {
                      "$ref": "#/components/schemas/WrittenResponseLearnerPreview"
                    },
                    {
                      "$ref": "#/components/schemas/WrittenResponseMarkerPreview"
                    }
                  ],
                  "title": "Response Preview Written Response Api Item Bank Drafts  Draft Id  Written Response Preview Get"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview written-response author, marker, or learner field boundaries",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/written-response/projection": {
      "get": {
        "operationId": "project_written_response_api_item_bank_drafts__draft_id__written_response_projection_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "surface",
            "required": false,
            "schema": {
              "default": "learner",
              "enum": ["learner", "search", "export", "log", "tutor"],
              "title": "Surface",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrittenResponseSafeProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project scoring-free written-response fields for a downstream surface",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/written-response/protected-export": {
      "get": {
        "operationId": "export_protected_written_response_api_item_bank_drafts__draft_id__written_response_protected_export_get",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrittenResponseProtectedExport"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export protected scoring, exemplar, and moderation authoring properties",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/drafts/{draft_id}/written-response/revisions": {
      "post": {
        "operationId": "append_written_response_revision_api_item_bank_drafts__draft_id__written_response_revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Draft Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WrittenResponseRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WrittenResponseRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append one protected written-response authoring revision",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/estimates/calibration-promotions/assessments": {
      "get": {
        "operationId": "list_calibration_promotion_assessments_api_item_bank_estimates_calibration_promotions_assessments_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "model_family",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["1PL", "2PL", "3PL"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Model Family"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["eligible_for_ratification", "field_test", "manual_review"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalibrationPromotionCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List compact calibration-promotion assessment summaries",
        "tags": ["calibration-promotions"]
      },
      "post": {
        "operationId": "create_calibration_promotion_assessment_api_item_bank_estimates_calibration_promotions_assessments_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalibrationPromotionRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalibrationPromotionWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Assess exact sample and uncertainty evidence without automatic promotion",
        "tags": ["calibration-promotions"]
      }
    },
    "/api/item-bank/estimates/calibration-promotions/assessments/{assessment_id}": {
      "get": {
        "operationId": "get_calibration_promotion_assessment_api_item_bank_estimates_calibration_promotions_assessments__assessment_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalibrationPromotionWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one revalidated calibration-promotion assessment and optional receipt",
        "tags": ["calibration-promotions"]
      }
    },
    "/api/item-bank/estimates/calibration-promotions/policy": {
      "get": {
        "operationId": "get_calibration_promotion_policy_api_item_bank_estimates_calibration_promotions_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalibrationPromotionPolicy"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the exact model/use calibration-promotion eligibility policy",
        "tags": ["calibration-promotions"]
      }
    },
    "/api/item-bank/estimates/contexts": {
      "get": {
        "operationId": "list_item_estimate_contexts_api_item_bank_estimates_contexts_get",
        "parameters": [
          {
            "in": "query",
            "name": "course_id",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemEstimateContextCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List authorized current item-estimate course contexts",
        "tags": ["item-estimates"]
      }
    },
    "/api/item-bank/estimates/dif-analyses/policy": {
      "get": {
        "operationId": "get_dif_analysis_policy_api_item_bank_estimates_dif_analyses_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DifAnalysisPolicy"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the exact privacy, cohort, model, and decision policy for DIF",
        "tags": ["dif-analyses"]
      }
    },
    "/api/item-bank/estimates/dif-analyses/runs": {
      "get": {
        "operationId": "list_dif_analysis_runs_api_item_bank_estimates_dif_analyses_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "cohort_dimension",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["locale_family", "language_support", "region", "consented_demographic"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cohort Dimension"
            }
          },
          {
            "in": "query",
            "name": "result_status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["eligible", "insufficient", "not_applicable", "error", "conflict"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Result Status"
            }
          },
          {
            "in": "query",
            "name": "finding",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "no_statistical_signal",
                    "statistical_signal",
                    "material_signal",
                    "inconclusive"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Finding"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DifAnalysisCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List privacy-safe DIF run summaries",
        "tags": ["dif-analyses"]
      },
      "post": {
        "operationId": "create_dif_analysis_run_api_item_bank_estimates_dif_analyses_runs_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DifAnalysisRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DifAnalysisWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Analyze exact deidentified item responses without automatic fairness decisions",
        "tags": ["dif-analyses"]
      }
    },
    "/api/item-bank/estimates/dif-analyses/runs/{run_id}": {
      "get": {
        "operationId": "get_dif_analysis_run_api_item_bank_estimates_dif_analyses_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DifAnalysisWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one revalidated privacy-safe DIF workspace",
        "tags": ["dif-analyses"]
      }
    },
    "/api/item-bank/estimates/dif-analyses/runs/{run_id}/results/{result_id}/decisions": {
      "post": {
        "operationId": "create_dif_review_decision_api_item_bank_estimates_dif_analyses_runs__run_id__results__result_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "result_id",
            "required": true,
            "schema": {
              "title": "Result Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DifReviewDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DifAnalysisWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record a dual-approved human disposition without applying an item action",
        "tags": ["dif-analyses"]
      }
    },
    "/api/item-bank/estimates/difficulty-checks/evaluations": {
      "post": {
        "operationId": "evaluate_item_difficulty_api_item_bank_estimates_difficulty_checks_evaluations_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemDifficultyCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemDifficultyCheckResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Compare declared and empirical difficulty on a ratified common scale",
        "tags": ["item-difficulty"]
      }
    },
    "/api/item-bank/estimates/irt-diagnostics/policy": {
      "get": {
        "operationId": "get_irt_diagnostic_policy_api_item_bank_estimates_irt_diagnostics_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IrtDiagnosticPolicy"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the exact code-owned IRT bounds and fit policy",
        "tags": ["irt-diagnostics"]
      }
    },
    "/api/item-bank/estimates/irt-diagnostics/runs": {
      "get": {
        "operationId": "list_irt_diagnostic_runs_api_item_bank_estimates_irt_diagnostics_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "model_family",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["1PL", "2PL", "3PL"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Model Family"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["calibrated", "flagged", "ineligible"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IrtDiagnosticCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List compact IRT run summaries with separate derived verdicts",
        "tags": ["irt-diagnostics"]
      },
      "post": {
        "operationId": "create_irt_diagnostic_run_api_item_bank_estimates_irt_diagnostics_runs_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IrtDiagnosticRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IrtDiagnosticWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Persist raw tool output and a separate no-promotion IRT diagnostic verdict",
        "tags": ["irt-diagnostics"]
      }
    },
    "/api/item-bank/estimates/irt-diagnostics/runs/{verdict_id}": {
      "get": {
        "operationId": "get_irt_diagnostic_run_api_item_bank_estimates_irt_diagnostics_runs__verdict_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "verdict_id",
            "required": true,
            "schema": {
              "title": "Verdict Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IrtDiagnosticWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one immutable raw IRT run and its separately derived verdict",
        "tags": ["irt-diagnostics"]
      }
    },
    "/api/item-bank/estimates/predict": {
      "post": {
        "operationId": "predict_item_estimates_api_item_bank_estimates_predict_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemEstimatePredictionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemEstimatePredictionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Predict bounded uncalibrated values for one exact item and context revision",
        "tags": ["item-estimates"]
      }
    },
    "/api/item-bank/estimates/revisions": {
      "post": {
        "operationId": "append_item_estimate_revision_api_item_bank_estimates_revisions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemEstimateRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemEstimateRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create or append an immutable exact item-estimate revision",
        "tags": ["item-estimates"]
      }
    },
    "/api/item-bank/estimates/sets": {
      "get": {
        "operationId": "list_item_estimate_sets_api_item_bank_estimates_sets_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemEstimateCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List latest item-estimate revisions in one authorized tenant",
        "tags": ["item-estimates"]
      }
    },
    "/api/item-bank/estimates/sets/{estimate_set_id}": {
      "get": {
        "operationId": "get_item_estimate_history_api_item_bank_estimates_sets__estimate_set_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_set_id",
            "required": true,
            "schema": {
              "title": "Estimate Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemEstimateHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one authorized immutable item-estimate history",
        "tags": ["item-estimates"]
      }
    },
    "/api/item-bank/estimates/sets/{estimate_set_id}/audit": {
      "get": {
        "operationId": "get_item_estimate_audit_api_item_bank_estimates_sets__estimate_set_id__audit_get",
        "parameters": [
          {
            "in": "path",
            "name": "estimate_set_id",
            "required": true,
            "schema": {
              "title": "Estimate Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemEstimateAuditResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable item-estimate revision audit events",
        "tags": ["item-estimates"]
      }
    },
    "/api/item-bank/exposure-control/admissions": {
      "post": {
        "operationId": "resolve_exposure_admission_api_item_bank_exposure_control_admissions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExposureAdmissionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExposureAdmissionDecision"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve one server-side pool, assembly, delivery, or export admission",
        "tags": ["exposure-control"]
      }
    },
    "/api/item-bank/exposure-control/assessments": {
      "get": {
        "operationId": "list_exposure_assessments_api_item_bank_exposure_control_assessments_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["normal", "warning", "restricted", "quarantined", "retired"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "State"
            }
          },
          {
            "in": "query",
            "name": "classification",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": ["standard", "secure", "high_stakes"],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Classification"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExposureCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List current exact-revision exposure lifecycle assessments",
        "tags": ["exposure-control"]
      }
    },
    "/api/item-bank/exposure-control/assessments/{assessment_id}": {
      "get": {
        "operationId": "get_exposure_assessment_api_item_bank_exposure_control_assessments__assessment_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExposureWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read a revalidated exposure, incident, enforcement, and appeal workspace",
        "tags": ["exposure-control"]
      }
    },
    "/api/item-bank/exposure-control/assessments/{assessment_id}/appeals": {
      "post": {
        "operationId": "decide_exposure_appeal_api_item_bank_exposure_control_assessments__assessment_id__appeals_post",
        "parameters": [
          {
            "in": "path",
            "name": "assessment_id",
            "required": true,
            "schema": {
              "title": "Assessment Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExposureAppealRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExposureWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record an authorized incident appeal and recompute without rewriting history",
        "tags": ["exposure-control"]
      }
    },
    "/api/item-bank/exposure-control/event-batches": {
      "post": {
        "operationId": "ingest_exposure_event_batch_api_item_bank_exposure_control_event_batches_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExposureEventBatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExposureWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Aggregate exact-revision production exposure and enforce lifecycle thresholds",
        "tags": ["exposure-control"]
      }
    },
    "/api/item-bank/exposure-control/incidents": {
      "post": {
        "operationId": "ingest_verified_compromise_incident_api_item_bank_exposure_control_incidents_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifiedCompromiseReport"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExposureWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Ingest an administrator-verified compromise report and enforce its response",
        "tags": ["exposure-control"]
      }
    },
    "/api/item-bank/exposure-control/policy": {
      "get": {
        "operationId": "get_exposure_control_policy_api_item_bank_exposure_control_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExposureControlPolicy"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read exact exposure metrics, thresholds, breach signals, and lifecycle policy",
        "tags": ["exposure-control"]
      }
    },
    "/api/item-bank/imports/catalog": {
      "get": {
        "operationId": "get_item_import_catalog_api_item_bank_imports_catalog_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemImportCatalog"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read supported bulk-item import profiles, limits, policies, and outcomes",
        "tags": ["item-import"]
      }
    },
    "/api/item-bank/imports/previews": {
      "post": {
        "operationId": "preview_item_import_api_item_bank_imports_previews_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemImportPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemImportWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Retain one immutable source and preview every discovered import item",
        "tags": ["item-import"]
      }
    },
    "/api/item-bank/imports/{batch_id}": {
      "get": {
        "operationId": "get_item_import_api_item_bank_imports__batch_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "title": "Batch Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemImportWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read an exact import preview and optional immutable commit receipt",
        "tags": ["item-import"]
      }
    },
    "/api/item-bank/imports/{batch_id}/commits": {
      "post": {
        "operationId": "commit_item_import_api_item_bank_imports__batch_id__commits_post",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "title": "Batch Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemImportCommitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemImportWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Commit authorized items idempotently and reconcile every discovered input",
        "tags": ["item-import"]
      }
    },
    "/api/item-bank/imports/{batch_id}/source": {
      "get": {
        "operationId": "get_item_import_source_api_item_bank_imports__batch_id__source_get",
        "parameters": [
          {
            "in": "path",
            "name": "batch_id",
            "required": true,
            "schema": {
              "title": "Batch Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemImportImmutableSource"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the exact immutable source bytes retained for one import batch",
        "tags": ["item-import"]
      }
    },
    "/api/item-bank/items/{item_id}/revisions/{revision}/preview": {
      "get": {
        "operationId": "preview_item_revision_api_item_bank_items__item_id__revisions__revision__preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Item Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revision",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Revision",
              "type": "integer"
            }
          },
          {
            "description": "Single-tenant scope override available only to admins.",
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Single-tenant scope override available only to admins.",
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemBankPreviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview one authorized exact answer-safe item revision",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/learning-links/revisions": {
      "post": {
        "operationId": "append_item_learning_link_revision_api_item_bank_learning_links_revisions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemLearningLinkRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemLearningLinkRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create or append an exact immutable item learning-link revision",
        "tags": ["item-learning-links"]
      }
    },
    "/api/item-bank/learning-links/sets": {
      "get": {
        "operationId": "list_item_learning_link_sets_api_item_bank_learning_links_sets_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemLearningLinkCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List latest item learning-link revisions in one authorized tenant",
        "tags": ["item-learning-links"]
      }
    },
    "/api/item-bank/learning-links/sets/{link_set_id}": {
      "get": {
        "operationId": "get_item_learning_link_history_api_item_bank_learning_links_sets__link_set_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "link_set_id",
            "required": true,
            "schema": {
              "title": "Link Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemLearningLinkHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one authorized immutable item learning-link history",
        "tags": ["item-learning-links"]
      }
    },
    "/api/item-bank/learning-links/sets/{link_set_id}/audit": {
      "get": {
        "operationId": "get_item_learning_link_audit_api_item_bank_learning_links_sets__link_set_id__audit_get",
        "parameters": [
          {
            "in": "path",
            "name": "link_set_id",
            "required": true,
            "schema": {
              "title": "Link Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemLearningLinkAuditResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable item learning-link revision audit events",
        "tags": ["item-learning-links"]
      }
    },
    "/api/item-bank/learning-links/sets/{link_set_id}/projections": {
      "get": {
        "operationId": "get_item_learning_link_projections_api_item_bank_learning_links_sets__link_set_id__projections_get",
        "parameters": [
          {
            "in": "path",
            "name": "link_set_id",
            "required": true,
            "schema": {
              "title": "Link Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemLearningLinkProjectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project exact link semantics across item, coverage, graph, search, and export",
        "tags": ["item-learning-links"]
      }
    },
    "/api/item-bank/learning-links/targets": {
      "get": {
        "operationId": "search_item_learning_targets_api_item_bank_learning_links_targets_get",
        "parameters": [
          {
            "in": "query",
            "name": "course_id",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "title": "Course Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "default": "",
              "maxLength": 500,
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "target_kind",
            "required": false,
            "schema": {
              "default": ["objective", "standard", "concept", "prerequisite"],
              "items": {
                "enum": ["objective", "standard", "concept", "prerequisite"],
                "type": "string"
              },
              "title": "Target Kind",
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearningTargetCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Search authorized exact objective, standard, concept, and prerequisite targets",
        "tags": ["item-learning-links"]
      }
    },
    "/api/item-bank/previews": {
      "post": {
        "operationId": "prepare_item_preview_api_item_bank_previews_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemPreviewPrepareRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemPreviewPreparation"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare one exact learner renderer build in a nonoperational session",
        "tags": ["item-preview"]
      }
    },
    "/api/item-bank/previews/author-overlays": {
      "post": {
        "operationId": "open_item_preview_author_overlay_api_item_bank_previews_author_overlays_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemPreviewAuthorOverlayRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemPreviewAuthorOverlay"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Open the separately authorized protected answer and scoring overlay",
        "tags": ["item-preview"]
      }
    },
    "/api/item-bank/previews/simulations": {
      "post": {
        "operationId": "simulate_item_preview_api_item_bank_previews_simulations_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemPreviewSimulationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemPreviewSimulationResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Simulate a disposable preview action without operational writes",
        "tags": ["item-preview"]
      }
    },
    "/api/item-bank/search": {
      "post": {
        "operationId": "search_item_bank_api_item_bank_search_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ItemBankSearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemBankSearchResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Search answer-safe exact item revisions in one authorized tenant",
        "tags": ["item-bank"]
      }
    },
    "/api/item-bank/stimulus-authoring/blast-radius/{cause_id}": {
      "get": {
        "operationId": "get_stimulus_blast_radius_api_item_bank_stimulus_authoring_blast_radius__cause_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "cause_id",
            "required": true,
            "schema": {
              "title": "Cause Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusBlastRadiusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read append-only review and gate staleness caused by an edit",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-bank/stimulus-authoring/sets": {
      "get": {
        "operationId": "list_stimulus_sets_api_item_bank_stimulus_authoring_sets_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusSetCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List latest immutable stimulus sets in one authorized tenant",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-bank/stimulus-authoring/sets/revisions": {
      "post": {
        "operationId": "append_stimulus_set_revision_api_item_bank_stimulus_authoring_sets_revisions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StimulusSetRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusSetRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a stimulus set or append an exact immutable revision",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-bank/stimulus-authoring/sets/{stimulus_set_id}": {
      "get": {
        "operationId": "get_stimulus_set_history_api_item_bank_stimulus_authoring_sets__stimulus_set_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "stimulus_set_id",
            "required": true,
            "schema": {
              "title": "Stimulus Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusSetHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one authorized immutable stimulus-set history",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-bank/stimulus-authoring/sets/{stimulus_set_id}/preview": {
      "post": {
        "operationId": "preview_stimulus_set_api_item_bank_stimulus_authoring_sets__stimulus_set_id__preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "stimulus_set_id",
            "required": true,
            "schema": {
              "title": "Stimulus Set Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StimulusSetPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusSetPreviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview an exact item/stimulus combination and surface conflicts",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-bank/stimulus-authoring/stimuli": {
      "get": {
        "operationId": "list_stimuli_api_item_bank_stimulus_authoring_stimuli_get",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusCatalogResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List latest immutable stimuli in one authorized tenant",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-bank/stimulus-authoring/stimuli/revisions": {
      "post": {
        "operationId": "append_stimulus_revision_api_item_bank_stimulus_authoring_stimuli_revisions_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StimulusRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a stimulus or append an exact immutable revision",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-bank/stimulus-authoring/stimuli/{stimulus_id}": {
      "get": {
        "operationId": "get_stimulus_history_api_item_bank_stimulus_authoring_stimuli__stimulus_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "stimulus_id",
            "required": true,
            "schema": {
              "title": "Stimulus Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StimulusHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one authorized immutable stimulus history",
        "tags": ["stimulus-authoring"]
      }
    },
    "/api/item-pool-eligibility/evaluation": {
      "get": {
        "description": "Return corpus outcomes and the two-sided boundary probe of every dimension.",
        "operationId": "get_item_pool_eligibility_evaluation_api_item_pool_eligibility_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Item Pool Eligibility Evaluation",
        "tags": ["item-pool-eligibility"]
      }
    },
    "/api/item-pool-eligibility/evaluations": {
      "post": {
        "description": "Judge a pool on all seven dimensions and select deterministically.",
        "operationId": "create_item_pool_evaluation_api_item_pool_eligibility_evaluations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PoolEligibilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolEligibilityResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such item pool eligibility record."
          },
          "409": {
            "description": "This conflicts with the item pool eligibility record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Item Pool Evaluation",
        "tags": ["item-pool-eligibility"]
      }
    },
    "/api/item-pool-eligibility/evaluations/{evaluation_id}": {
      "get": {
        "description": "Return one tenant-visible immutable pool evaluation record.",
        "operationId": "get_item_pool_evaluation_api_item_pool_eligibility_evaluations__evaluation_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "evaluation_id",
            "required": true,
            "schema": {
              "title": "Evaluation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoolEligibilityProjectionRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such item pool eligibility record."
          },
          "409": {
            "description": "This conflicts with the item pool eligibility record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Item Pool Evaluation",
        "tags": ["item-pool-eligibility"]
      }
    },
    "/api/learner-model-rationale/evaluation": {
      "get": {
        "description": "Return corpus outcomes and the equal-tally separation probe.",
        "operationId": "get_learner_model_rationale_evaluation_api_learner_model_rationale_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RationaleEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learner Model Rationale Evaluation",
        "tags": ["learner-model-rationale"]
      }
    },
    "/api/learner-model-rationale/panels": {
      "post": {
        "description": "Run BKT, FSRS-5, graph tracing and IRT, and keep their rationales apart.",
        "operationId": "create_learner_model_panel_api_learner_model_rationale_panels_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerModelRationaleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerModelRationaleResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such learner model rationale record."
          },
          "409": {
            "description": "This conflicts with the learner model rationale record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Learner Model Panel",
        "tags": ["learner-model-rationale"]
      }
    },
    "/api/learner-model-rationale/panels/{panel_id}": {
      "get": {
        "description": "Return one tenant-visible immutable rationale panel.",
        "operationId": "get_learner_model_panel_api_learner_model_rationale_panels__panel_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "panel_id",
            "required": true,
            "schema": {
              "title": "Panel Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerModelRationaleProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such learner model rationale record."
          },
          "409": {
            "description": "This conflicts with the learner model rationale record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learner Model Panel",
        "tags": ["learner-model-rationale"]
      }
    },
    "/api/learner-simulation/evaluation": {
      "get": {
        "description": "Return corpus outcomes and the import-closure isolation report.",
        "operationId": "get_learner_simulation_evaluation_api_learner_simulation_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulationEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learner Simulation Evaluation",
        "tags": ["learner-simulation"]
      }
    },
    "/api/learner-simulation/simulations": {
      "post": {
        "description": "Generate a synthetic cohort and walk it through the exact eligibility rule.",
        "operationId": "create_learner_simulation_api_learner_simulation_simulations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerSimulationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerSimulationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such learner simulation record."
          },
          "409": {
            "description": "This conflicts with the learner simulation record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Learner Simulation",
        "tags": ["learner-simulation"]
      }
    },
    "/api/learner-simulation/simulations/{simulation_id}": {
      "get": {
        "description": "Return one tenant-visible immutable simulation record.",
        "operationId": "get_learner_simulation_api_learner_simulation_simulations__simulation_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "simulation_id",
            "required": true,
            "schema": {
              "title": "Simulation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerSimulationProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such learner simulation record."
          },
          "409": {
            "description": "This conflicts with the learner simulation record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learner Simulation",
        "tags": ["learner-simulation"]
      }
    },
    "/api/learning-pathways/authorings": {
      "post": {
        "description": "Analyze an authored pathway's graph, schedule, entry, and completion rules.",
        "operationId": "create_learning_pathway_authoring_api_learning_pathways_authorings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PathwayAuthoringRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PathwayAuthoringResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such learning pathway record."
          },
          "409": {
            "description": "This conflicts with the learning pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Learning Pathway Authoring",
        "tags": ["learning-pathways"]
      }
    },
    "/api/learning-pathways/authorings/{authoring_id}": {
      "get": {
        "description": "Return one tenant-visible immutable pathway authoring record.",
        "operationId": "get_learning_pathway_authoring_api_learning_pathways_authorings__authoring_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "authoring_id",
            "required": true,
            "schema": {
              "title": "Authoring Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PathwayProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such learning pathway record."
          },
          "409": {
            "description": "This conflicts with the learning pathway record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learning Pathway Authoring",
        "tags": ["learning-pathways"]
      }
    },
    "/api/learning-pathways/evaluation": {
      "get": {
        "description": "Return executable corpus outcomes for the entry, graph, and schedule rules.",
        "operationId": "get_learning_pathway_evaluation_api_learning_pathways_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PathwayEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Learning Pathway Evaluation",
        "tags": ["learning-pathways"]
      }
    },
    "/api/lesson-dossiers/rubric-quality/lessons/{lesson_id}/rubrics/{rubric_id}/history": {
      "get": {
        "operationId": "get_rubric_quality_history_api_lesson_dossiers_rubric_quality_lessons__lesson_id__rubrics__rubric_id__history_get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "rubric_id",
            "required": true,
            "schema": {
              "title": "Rubric Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RubricQualityHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read immutable rubric-quality scans, reviews, and release gates",
        "tags": ["rubric-quality"]
      }
    },
    "/api/lesson-dossiers/rubric-quality/lessons/{lesson_id}/rubrics/{rubric_id}/prepare": {
      "post": {
        "operationId": "prepare_rubric_quality_api_lesson_dossiers_rubric_quality_lessons__lesson_id__rubrics__rubric_id__prepare_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "rubric_id",
            "required": true,
            "schema": {
              "title": "Rubric Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RubricQualityPreparationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RubricQualityPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare exact rubric arithmetic, coverage, levels, approvals, and freshness",
        "tags": ["rubric-quality"]
      }
    },
    "/api/lesson-dossiers/rubric-quality/lessons/{lesson_id}/rubrics/{rubric_id}/release-gates": {
      "post": {
        "operationId": "append_rubric_quality_gate_api_lesson_dossiers_rubric_quality_lessons__lesson_id__rubrics__rubric_id__release_gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "rubric_id",
            "required": true,
            "schema": {
              "title": "Rubric Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RubricQualityGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RubricQualityGateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append the revision-, review-, and approval-bound rubric release decision",
        "tags": ["rubric-quality"]
      }
    },
    "/api/lesson-dossiers/rubric-quality/lessons/{lesson_id}/rubrics/{rubric_id}/reviews": {
      "post": {
        "operationId": "append_rubric_quality_review_api_lesson_dossiers_rubric_quality_lessons__lesson_id__rubrics__rubric_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "rubric_id",
            "required": true,
            "schema": {
              "title": "Rubric Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RubricQualityReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RubricQualityReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append human dispositions for every semantic descriptor finding",
        "tags": ["rubric-quality"]
      }
    },
    "/api/lesson-dossiers/rubric-quality/lessons/{lesson_id}/rubrics/{rubric_id}/scans": {
      "post": {
        "operationId": "append_rubric_quality_scan_api_lesson_dossiers_rubric_quality_lessons__lesson_id__rubrics__rubric_id__scans_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "rubric_id",
            "required": true,
            "schema": {
              "title": "Rubric Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RubricQualityScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RubricQualityScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append exact arithmetic, coverage, ordering, descriptor, and approval findings",
        "tags": ["rubric-quality"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}": {
      "get": {
        "operationId": "get_lesson_dossier_api_lesson_dossiers__lesson_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDossierProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project one exact, redacted canonical lesson dossier",
        "tags": ["lesson-dossiers"]
      },
      "put": {
        "operationId": "update_lesson_dossier_api_lesson_dossiers__lesson_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDossierUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDossierProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Revise a lesson dossier with exact optimistic witnesses",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/assist-proposals/{proposal_id}": {
      "get": {
        "operationId": "get_lesson_assist_proposal_api_lesson_dossiers__lesson_id__assist_proposals__proposal_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "pattern": "^assist-proposal-[a-f0-9]{40}$",
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAssistProposalResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one exact lesson-assist proposal and current review status",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/assist-proposals/{proposal_id}/decisions": {
      "post": {
        "operationId": "decide_lesson_assist_proposal_api_lesson_dossiers__lesson_id__assist_proposals__proposal_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "pattern": "^assist-proposal-[a-f0-9]{40}$",
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonAssistDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAssistDecisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept, edit, or reject one exact lesson-assist proposal",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/authoring-drafts/{draft_id}": {
      "get": {
        "operationId": "get_lesson_authoring_draft_api_lesson_dossiers__lesson_id__authoring_drafts__draft_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "title": "Draft Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAuthoringDraftResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one private versioned lesson autosave head",
        "tags": ["lesson-dossiers"]
      },
      "put": {
        "operationId": "autosave_lesson_authoring_draft_api_lesson_dossiers__lesson_id__authoring_drafts__draft_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "title": "Draft Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonAuthoringAutosaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAuthoringDraftResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Idempotently autosave one private lesson draft with compare-and-swap",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/authoring-drafts/{draft_id}/checkpoints": {
      "post": {
        "operationId": "checkpoint_lesson_authoring_draft_api_lesson_dossiers__lesson_id__authoring_drafts__draft_id__checkpoints_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "draft_id",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
              "title": "Draft Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonAuthoringCheckpointRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAuthoringCheckpointResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Checkpoint one draft through semantic three-way conflict resolution",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/authoring-revisions/{revision_number}/comparison": {
      "get": {
        "operationId": "compare_lesson_authoring_revision_api_lesson_dossiers__lesson_id__authoring_revisions__revision_number__comparison_get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revision_number",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Revision Number",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "to_revision",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "To Revision"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAuthoringRevisionComparison"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Compare an immutable lesson revision semantically",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/authoring-revisions/{revision_number}/restore": {
      "post": {
        "operationId": "restore_lesson_authoring_revision_api_lesson_dossiers__lesson_id__authoring_revisions__revision_number__restore_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revision_number",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Revision Number",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonAuthoringRestoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAuthoringRestoreResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Restore a historical lesson as a new immutable revision",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/authoring-revisions/{revision_number}/restore-preview": {
      "post": {
        "operationId": "preview_lesson_authoring_restore_api_lesson_dossiers__lesson_id__authoring_revisions__revision_number__restore_preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "revision_number",
            "required": true,
            "schema": {
              "minimum": 1,
              "title": "Revision Number",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonAuthoringRestorePreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAuthoringRestorePreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview semantic and approval impact before restoring a lesson revision",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/block-operations": {
      "post": {
        "operationId": "apply_lesson_block_operation_api_lesson_dossiers__lesson_id__block_operations_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonBlockOperationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonBlockOperationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply one stable-ID lesson block command with exact optimistic witnesses",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/blocks/{block_id}/assist-preparation": {
      "get": {
        "operationId": "prepare_lesson_assist_api_lesson_dossiers__lesson_id__blocks__block_id__assist_preparation_get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "block_id",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
              "title": "Block Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAssistPreparationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Prepare one authorized exact lesson-block assist witness",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/blocks/{block_id}/assist-proposals": {
      "post": {
        "operationId": "create_lesson_assist_proposal_api_lesson_dossiers__lesson_id__blocks__block_id__assist_proposals_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "block_id",
            "required": true,
            "schema": {
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
              "title": "Block Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonAssistProposalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonAssistProposalResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create one bounded, non-canonical AI lesson-block proposal",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/delivery": {
      "post": {
        "operationId": "deliver_lesson_api_lesson_dossiers__lesson_id__delivery_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "default": "",
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDeliveryReadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDeliveryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the same versioned renderer document for a published lesson build",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/delivery-preview-presets": {
      "get": {
        "operationId": "get_lesson_delivery_preview_presets_api_lesson_dossiers__lesson_id__delivery_preview_presets_get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDeliveryPreviewPresetRegistry"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the finite versioned device, access, locale, and network preview matrix",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/delivery-preview-reports": {
      "post": {
        "operationId": "save_lesson_delivery_preview_report_api_lesson_dossiers__lesson_id__delivery_preview_reports_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "default": "",
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDeliveryPreviewReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDeliveryPreviewReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Save one bounded identity-free preview configuration and measured findings",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/delivery-preview-reports/{report_id}": {
      "get": {
        "operationId": "get_lesson_delivery_preview_report_api_lesson_dossiers__lesson_id__delivery_preview_reports__report_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "report_id",
            "required": true,
            "schema": {
              "title": "Report Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDeliveryPreviewReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one unexpired preview report through current course authorization",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/duration-load-estimates": {
      "post": {
        "operationId": "estimate_lesson_duration_load_api_lesson_dossiers__lesson_id__duration_load_estimates_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDurationLoadEstimateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDurationLoadEstimate"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Estimate exact lesson duration and cognitive-load planning ranges",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/duration-load-overrides": {
      "post": {
        "operationId": "override_lesson_duration_load_api_lesson_dossiers__lesson_id__duration_load_overrides_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDurationLoadOverrideRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDurationLoadOverrideResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append an exact author duration/load override without changing calculated values",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/gallery-assets": {
      "get": {
        "operationId": "query_lesson_gallery_assets_api_lesson_dossiers__lesson_id__gallery_assets_get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": ["image", "audio", "video"],
              "title": "Kind",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "default": "en-US",
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "title": "Locale",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "target",
            "required": false,
            "schema": {
              "default": "learner-web",
              "enum": ["learner-web", "learner-mobile", "lms", "print"],
              "title": "Target",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "eligible",
              "enum": ["eligible", "expiring"],
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "capability",
            "required": false,
            "schema": {
              "default": ["online"],
              "items": {
                "enum": ["online", "offline", "low-bandwidth"],
                "type": "string"
              },
              "title": "Capability",
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 15,
                  "pattern": "^\\d+$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 50,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "default": "",
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonGalleryPage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Query current audience-authorized Isis gallery media revisions",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/history-artifacts": {
      "post": {
        "operationId": "record_lesson_dossier_artifact_event_api_lesson_dossiers__lesson_id__history_artifacts_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDossierArtifactEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDossierProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append an exact published-build or bounded use-history event",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/inclusivity-analyses": {
      "post": {
        "operationId": "analyze_lesson_inclusivity_api_lesson_dossiers__lesson_id__inclusivity_analyses_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonInclusivityAnalysisRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonInclusivityAnalysis"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Compute challengeable inclusivity evidence for exact authored-content revisions",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/inclusivity-reviews": {
      "post": {
        "operationId": "review_lesson_inclusivity_api_lesson_dossiers__lesson_id__inclusivity_reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonInclusivityReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonInclusivityReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append one authorized inclusivity finding decision without editing content",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/interaction-previews": {
      "post": {
        "operationId": "preview_lesson_interaction_api_lesson_dossiers__lesson_id__interaction_previews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonActivityPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonActivityPreviewContract"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Issue an exact synthetic-only contract for isolated activity preview",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/learner-previews": {
      "post": {
        "operationId": "preview_lesson_delivery_api_lesson_dossiers__lesson_id__learner_previews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "default": "",
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDeliveryMatrixPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDeliveryMatrixPreviewContract"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Render the exact lesson build with a bounded sample learner context",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/media-attachments": {
      "post": {
        "operationId": "attach_lesson_gallery_media_api_lesson_dossiers__lesson_id__media_attachments_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "default": "",
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonGalleryAttachmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonGalleryAttachmentResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Re-resolve and attach one exact governed Isis media revision",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/preview": {
      "post": {
        "operationId": "preview_lesson_dossier_api_lesson_dossiers__lesson_id__preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "default": "",
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDossierPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDossierPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Render a learner-safe preview without answer keys or protected source text",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/readability-analyses": {
      "post": {
        "operationId": "analyze_lesson_readability_api_lesson_dossiers__lesson_id__readability_analyses_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonReadabilityAnalysisRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonReadabilityAnalysis"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Compute advisory readability evidence for one exact block document",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/readability-reviews": {
      "post": {
        "operationId": "review_lesson_readability_api_lesson_dossiers__lesson_id__readability_reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonReadabilityReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonReadabilityReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append an accept, dismiss, or revise decision without rewriting content",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/reviews": {
      "post": {
        "operationId": "review_lesson_dossier_api_lesson_dossiers__lesson_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonDossierReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonDossierProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record a server-enforced comment, review request, change request, or approval",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/rubric-previews": {
      "post": {
        "operationId": "preview_lesson_rubric_api_lesson_dossiers__lesson_id__rubric_previews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonRubricPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "mapping": {
                      "assessor": "#/components/schemas/LessonRubricAssessorPreview",
                      "learner": "#/components/schemas/LessonRubricLearnerPreview"
                    },
                    "propertyName": "role"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/LessonRubricLearnerPreview"
                    },
                    {
                      "$ref": "#/components/schemas/LessonRubricAssessorPreview"
                    }
                  ],
                  "title": "Response Preview Lesson Rubric Api Lesson Dossiers  Lesson Id  Rubric Previews Post"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview one exact rubric through learner or assessor field separation",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/rubric-revisions": {
      "post": {
        "operationId": "create_lesson_rubric_revision_api_lesson_dossiers__lesson_id__rubric_revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonRubricRevisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonRubricRevisionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append one validated immutable rubric revision with exact witnesses",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/rubric-scores": {
      "post": {
        "operationId": "score_lesson_rubric_api_lesson_dossiers__lesson_id__rubric_scores_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonRubricScoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonRubricScore"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Calculate an exact delivered-item score pinned to one rubric revision",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/technical-exports": {
      "post": {
        "operationId": "export_lesson_technical_block_api_lesson_dossiers__lesson_id__technical_exports_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonTechnicalExportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTechnicalExportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export one exact semantic math, code, or worked-example block safely",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/terminology-analyses": {
      "post": {
        "operationId": "analyze_lesson_terminology_api_lesson_dossiers__lesson_id__terminology_analyses_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonTerminologyAnalysisRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTerminologyAnalysis"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Lint terminology against exact layered glossary and lesson revisions",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-dossiers/{lesson_id}/terminology-reviews": {
      "post": {
        "operationId": "review_lesson_terminology_api_lesson_dossiers__lesson_id__terminology_reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonTerminologyReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTerminologyReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append one finding-scoped terminology proposal without editing content",
        "tags": ["lesson-dossiers"]
      }
    },
    "/api/lesson-templates": {
      "get": {
        "operationId": "list_lesson_templates_api_lesson_templates_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTemplateCatalog"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List readable exact lesson-template versions and the code floor",
        "tags": ["lesson-templates"]
      },
      "post": {
        "operationId": "create_lesson_template_api_lesson_templates_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonTemplateCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTemplateVersion"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create the next immutable draft version of a lesson template",
        "tags": ["lesson-templates"]
      }
    },
    "/api/lesson-templates/consumers/{lesson_id}": {
      "get": {
        "operationId": "get_lesson_template_consumer_history_api_lesson_templates_consumers__lesson_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTemplateConsumerHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read append-only exact lesson-template consumer pins",
        "tags": ["lesson-templates"]
      }
    },
    "/api/lesson-templates/consumers/{lesson_id}/pins": {
      "post": {
        "operationId": "pin_lesson_template_consumer_api_lesson_templates_consumers__lesson_id__pins_post",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonTemplateConsumerPinRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTemplateConsumerHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Explicitly instantiate or migrate one exact lesson-template consumer pin",
        "tags": ["lesson-templates"]
      }
    },
    "/api/lesson-templates/previews": {
      "post": {
        "operationId": "preview_lesson_template_api_lesson_templates_previews_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonTemplatePreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTemplatePreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview one exact effective template before pinning or migration",
        "tags": ["lesson-templates"]
      }
    },
    "/api/lesson-templates/{template_key}/versions/{version}": {
      "get": {
        "operationId": "get_lesson_template_api_lesson_templates__template_key__versions__version__get",
        "parameters": [
          {
            "in": "path",
            "name": "template_key",
            "required": true,
            "schema": {
              "pattern": "^[a-z][a-z0-9-]{2,119}$",
              "title": "Template Key",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "maximum": 1000000,
              "minimum": 1,
              "title": "Version",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTemplateVersion"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one exact immutable lesson-template version",
        "tags": ["lesson-templates"]
      }
    },
    "/api/lesson-templates/{template_key}/versions/{version}/lifecycle-events": {
      "post": {
        "operationId": "transition_lesson_template_api_lesson_templates__template_key__versions__version__lifecycle_events_post",
        "parameters": [
          {
            "in": "path",
            "name": "template_key",
            "required": true,
            "schema": {
              "pattern": "^[a-z][a-z0-9-]{2,119}$",
              "title": "Template Key",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "maximum": 1000000,
              "minimum": 1,
              "title": "Version",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LessonTemplateLifecycleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LessonTemplateVersion"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Publish or deprecate one exact lesson-template version",
        "tags": ["lesson-templates"]
      }
    },
    "/api/lti/assignments/line-items": {
      "post": {
        "description": "Create a line item authorized by the AGS lineitem scope.",
        "operationId": "create_lti_line_item_api_lti_assignments_line_items_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LtiLineItemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiLineItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create an LTI Assignment and Grade Services line item",
        "tags": ["lti"]
      }
    },
    "/api/lti/assignments/line-items/{line_item_id}/results": {
      "get": {
        "description": "Return what a line item holds, authorized by the AGS result scope alone.",
        "operationId": "read_lti_results_api_lti_assignments_line_items__line_item_id__results_get",
        "parameters": [
          {
            "in": "path",
            "name": "line_item_id",
            "required": true,
            "schema": {
              "title": "Line Item Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "platform_id",
            "required": true,
            "schema": {
              "minLength": 1,
              "title": "Platform Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "user_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 100,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Page"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiResultsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read LTI Assignment and Grade Services results for a line item",
        "tags": ["lti"]
      }
    },
    "/api/lti/assignments/scores": {
      "post": {
        "description": "Persist a score sync authorized by the AGS score scope.\n\nM10.7.e: the protocol step and the durable step are both here, and the\nsecond one is why. Before it, an accepted score lived only in\n`LtiService`'s class-level dictionaries \u2014 cleared by `reset()`, gone on a\nrestart \u2014 so the grade ledger M8.11 built for exactly this had no writer.\n\nA score that cannot reach the ledger does NOT fail the post: AGS is the\nplatform's protocol and its rules are met, and refusing a well-formed post\nbecause nobody on this side has said what the line item scores would make\na Metis omission look like a platform error. What it does instead is tell\nthe platform, in the receipt, precisely what became of the number.",
        "operationId": "sync_lti_score_api_lti_assignments_scores_post",
        "parameters": [
          {
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LtiScoreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiScoreResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Post an LTI Assignment and Grade Services score",
        "tags": ["lti"]
      }
    },
    "/api/lti/deep-linking/response": {
      "post": {
        "description": "Build a signed Deep Linking response containing selected Metis resources.",
        "operationId": "create_lti_deep_linking_response_api_lti_deep_linking_response_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LtiDeepLinkingResponseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiDeepLinkingResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "This request carries no usable credential."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create an LTI Deep Linking response",
        "tags": ["lti"]
      }
    },
    "/api/lti/jwks": {
      "get": {
        "description": "Publish the public half of this deployment's LTI key.\n\nA deployment with no key configured publishes none and says so with a 503,\nrather than an empty key set that reads like \"this tool signs nothing\".",
        "operationId": "lti_tool_jwks_api_lti_jwks_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Lti Tool Jwks Api Lti Jwks Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "503": {
            "description": "A dependency this lti operation needs is not configured."
          }
        },
        "summary": "The tool's public LTI signing keys",
        "tags": ["lti"]
      }
    },
    "/api/lti/launch": {
      "post": {
        "description": "Validate a platform id_token and mint a short-lived Metis launch token.",
        "operationId": "launch_lti_tool_api_lti_launch_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LtiLaunchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiLaunchResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "This request carries no usable credential."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Validate an LTI tool launch",
        "tags": ["lti"]
      }
    },
    "/api/lti/launch/callback": {
      "post": {
        "description": "Where the platform posts the signed launch, as a form.\n\nThis completes the handshake and returns what the launch entitles the\ncaller to. Where the browser goes next is the web app's decision, not this\nservice's, so nothing is invented here.",
        "operationId": "receive_lti_launch_api_lti_launch_callback_post",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiLaunchResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "This request carries no usable credential."
          }
        },
        "summary": "Receive an LTI 1.3 launch posted by a platform",
        "tags": ["lti"]
      }
    },
    "/api/lti/login": {
      "post": {
        "description": "Mint the state and nonce this tool will require the launch to carry back.",
        "operationId": "begin_lti_login_api_lti_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LtiLoginInitiationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiLoginInitiationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this lti operation cannot act on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Begin an LTI 1.3 launch (OIDC third-party login)",
        "tags": ["lti"]
      }
    },
    "/api/lti/login/initiate": {
      "get": {
        "description": "A platform that initiates a login by redirect.",
        "operationId": "initiate_lti_login_api_lti_login_initiate_get",
        "responses": {
          "307": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this lti operation cannot act on."
          }
        },
        "summary": "Begin an LTI 1.3 launch from a platform (OIDC third-party login, GET)",
        "tags": ["lti"]
      },
      "post": {
        "description": "A platform that initiates a login by posting a form, as Moodle does.",
        "operationId": "initiate_lti_login_form_api_lti_login_initiate_post",
        "responses": {
          "307": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this lti operation cannot act on."
          }
        },
        "summary": "Begin an LTI 1.3 launch from a platform (OIDC third-party login, form POST)",
        "tags": ["lti"]
      }
    },
    "/api/lti/names-and-roles/{context_id}": {
      "get": {
        "description": "Return one page of context memberships, authorized by the NRPS scope.",
        "operationId": "get_lti_names_and_roles_api_lti_names_and_roles__context_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "context_id",
            "required": true,
            "schema": {
              "title": "Context Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 100,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Page"
            }
          },
          {
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiNamesRolesResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Read LTI Names and Roles memberships for a context",
        "tags": ["lti"]
      }
    },
    "/api/lti/platforms": {
      "post": {
        "description": "Register issuer, deployment, token, and key material for an LMS platform.",
        "operationId": "register_lti_platform_api_lti_platforms_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LtiPlatformRegistrationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiPlatformRegistrationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this lti operation cannot act on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Register an LTI 1.3 platform",
        "tags": ["lti"]
      }
    },
    "/api/lti/token": {
      "post": {
        "description": "Issue a scoped bearer token for LTI Advantage service calls.",
        "operationId": "exchange_lti_token_api_lti_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LtiTokenExchangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LtiTokenExchangeResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "This request carries no usable credential."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Exchange an LTI client assertion for a scoped access token",
        "tags": ["lti"]
      }
    },
    "/api/mathematics-verifications/evaluation": {
      "get": {
        "description": "Return executable fixture conformance and Wilson uncertainty intervals.",
        "operationId": "get_mathematics_evaluation_api_mathematics_verifications_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Mathematics Evaluation",
        "tags": ["mathematics-verifications"]
      }
    },
    "/api/mathematics-verifications/runs": {
      "post": {
        "description": "Execute exact symbolic, numeric, unit, and proof checks in isolation.",
        "operationId": "create_mathematics_verification_run_api_mathematics_verifications_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MathVerificationRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathVerificationRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such mathematics verification record."
          },
          "409": {
            "description": "This conflicts with the mathematics verification record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Mathematics Verification Run",
        "tags": ["mathematics-verifications"]
      }
    },
    "/api/mathematics-verifications/runs/{run_id}": {
      "get": {
        "description": "Return one tenant-visible immutable run and its current-revision state.",
        "operationId": "get_mathematics_verification_run_api_mathematics_verifications_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MathVerificationProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such mathematics verification record."
          },
          "409": {
            "description": "This conflicts with the mathematics verification record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Mathematics Verification Run",
        "tags": ["mathematics-verifications"]
      }
    },
    "/api/measurement-ledger": {
      "get": {
        "operationId": "list_measurement_ledger_api_measurement_ledger_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeasurementLedgerCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List immutable raw measurements and independent policy verdict projections",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/measurements": {
      "post": {
        "operationId": "append_raw_measurement_api_measurement_ledger_measurements_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RawMeasurementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RawMeasurementRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append an immutable, content-addressed raw measurement record",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/outcome-states": {
      "get": {
        "operationId": "get_outcome_state_vocabulary_api_measurement_ledger_outcome_states_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutcomeStateVocabulary"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the complete fail-closed outcome-state and transition vocabulary",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/provenance": {
      "get": {
        "operationId": "get_provenance_registry_api_measurement_ledger_provenance_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 200,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProvenanceRegistryCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read exact evaluator, corpus, policy, threshold, and environment versions",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/provenance/corpora": {
      "post": {
        "operationId": "register_corpus_version_api_measurement_ledger_provenance_corpora_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CorpusVersionRegistration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CorpusVersionRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Register one immutable corpus manifest, rights, coverage, privacy, and calibration",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/provenance/environments": {
      "post": {
        "operationId": "register_environment_version_api_measurement_ledger_provenance_environments_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnvironmentVersionRegistration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnvironmentVersionRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Register one immutable execution environment and dependency-lock snapshot",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/provenance/evaluators": {
      "post": {
        "operationId": "register_evaluator_version_api_measurement_ledger_provenance_evaluators_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluatorVersionRegistration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvaluatorVersionRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Register one immutable evaluator version and supported-input contract",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/provenance/policies": {
      "post": {
        "operationId": "register_policy_bundle_version_api_measurement_ledger_provenance_policies_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyBundleRegistration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyBundleRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Register one approved policy, rubric, threshold, band, aggregation, and profile bundle",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/verdicts": {
      "post": {
        "operationId": "create_policy_verdict_api_measurement_ledger_verdicts_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyVerdictRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyVerdictRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project a versioned gate, policy, profile, and threshold snapshot over raw facts",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/verdicts/recompute": {
      "post": {
        "operationId": "recompute_policy_verdict_api_measurement_ledger_verdicts_recompute_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyRecomputeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyVerdictRecord"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a changed policy projection while reusing the exact immutable raw facts",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/workspace": {
      "get": {
        "operationId": "get_measurement_ledger_workspace_api_measurement_ledger_workspace_get",
        "parameters": [
          {
            "in": "query",
            "name": "subject_id",
            "required": true,
            "schema": {
              "maxLength": 240,
              "minLength": 1,
              "title": "Subject Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "subject_revision_sha256",
            "required": true,
            "schema": {
              "pattern": "^[a-f0-9]{64}$",
              "title": "Subject Revision Sha256",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeasurementLedgerWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one exact subject's raw facts and complete policy-verdict history",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/measurement-ledger/workspace/export": {
      "get": {
        "operationId": "export_measurement_ledger_workspace_api_measurement_ledger_workspace_export_get",
        "parameters": [
          {
            "in": "query",
            "name": "subject_id",
            "required": true,
            "schema": {
              "maxLength": 240,
              "minLength": 1,
              "title": "Subject Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "subject_revision_sha256",
            "required": true,
            "schema": {
              "pattern": "^[a-f0-9]{64}$",
              "title": "Subject Revision Sha256",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeasurementLedgerStateExport"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export exact measurements, every state semantic, and verdict history",
        "tags": ["measurement-ledger"]
      }
    },
    "/api/media-readiness/evaluations": {
      "post": {
        "operationId": "evaluate_media_readiness_api_media_readiness_evaluations_post",
        "parameters": [
          {
            "in": "header",
            "name": "Authorization",
            "required": false,
            "schema": {
              "default": "",
              "title": "Authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaReadinessEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaReadinessEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Evaluate exact live Isis media gates for a Metis publication subject",
        "tags": ["media-readiness"]
      }
    },
    "/api/objective-alignment-gates/policy": {
      "get": {
        "operationId": "get_objective_alignment_policy_api_objective_alignment_gates_policy_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectiveAlignmentPolicyRegistry"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read versioned course and assessment construct-alignment gate profiles",
        "tags": ["objective-alignment-gate"]
      }
    },
    "/api/objective-alignment-gates/runs": {
      "get": {
        "operationId": "list_objective_alignment_runs_api_objective_alignment_gates_runs_get",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 1000,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectiveAlignmentCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List immutable objective-alignment gate runs for one authorized tenant",
        "tags": ["objective-alignment-gate"]
      },
      "post": {
        "operationId": "run_objective_alignment_gate_api_objective_alignment_gates_runs_post",
        "parameters": [
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObjectiveAlignmentRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectiveAlignmentWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Persist raw exact-revision coverage separately and apply one alignment gate profile",
        "tags": ["objective-alignment-gate"]
      }
    },
    "/api/objective-alignment-gates/runs/{gate_run_id}": {
      "get": {
        "operationId": "get_objective_alignment_run_api_objective_alignment_gates_runs__gate_run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "gate_run_id",
            "required": true,
            "schema": {
              "title": "Gate Run Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "tenant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Tenant Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectiveAlignmentWorkspace"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one exact raw measurement and immutable alignment-gate verdict",
        "tags": ["objective-alignment-gate"]
      }
    },
    "/api/oneroster/gradebook": {
      "get": {
        "description": "Publish the line items this tenant has bound and the results on them.\n\nM10.7.b. Naming a learner means reading `roster_grade_identity`, which\nexists under a scope: this route is its only reader, and the read writes\nits own audit row. A grade whose learner the roster has never named is\nreported in `unpublishable_line_items` rather than left out, so a SIS can\nsee that the gradebook is short.\n\nThe tenant is DERIVED from the caller (M8.14): there is no parameter that\nchooses whose gradebook this is.",
        "operationId": "read_oneroster_gradebook_api_oneroster_gradebook_get",
        "parameters": [
          {
            "in": "query",
            "name": "connector",
            "required": false,
            "schema": {
              "default": "oneroster",
              "title": "Connector",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OneRosterGradebookResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read this tenant's OneRoster line items and results",
        "tags": ["oneroster"]
      }
    },
    "/api/oneroster/sync": {
      "post": {
        "description": "Dry-run or apply a OneRoster payload with conflict reporting.",
        "operationId": "sync_oneroster_roster_api_oneroster_sync_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OneRosterSyncRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OneRosterSyncResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The calling admin's id is not a UUID, so a sync cannot be attributed."
          },
          "403": {
            "description": "The sync named a tenant other than the caller's own."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview or apply a OneRoster rostering sync",
        "tags": ["oneroster"]
      }
    },
    "/api/operational-projection/evaluation": {
      "get": {
        "description": "Every field of every ratified aggregate, classified, with the columns and indexes.",
        "operationId": "get_field_map_api_operational_projection_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldMapReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Field Map",
        "tags": ["operational-projection"]
      }
    },
    "/api/operational-projection/reconciliations": {
      "post": {
        "description": "Where the stored columns and the payload disagree. It reports; it repairs nothing.",
        "operationId": "reconcile_row_api_operational_projection_reconciliations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReconcileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReconciliationResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Reconcile Row",
        "tags": ["operational-projection"]
      }
    },
    "/api/persistence-design/aggregates": {
      "get": {
        "description": "The proposed tables, optionally narrowed to a cell or to what still needs a decision.",
        "operationId": "get_aggregate_designs_api_persistence_design_aggregates_get",
        "parameters": [
          {
            "in": "query",
            "name": "cell",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cell"
            }
          },
          {
            "in": "query",
            "name": "needs_ratification",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Needs Ratification"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AggregateDesign"
                  },
                  "title": "Response Get Aggregate Designs Api Persistence Design Aggregates Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Aggregate Designs",
        "tags": ["persistence-design"]
      }
    },
    "/api/persistence-design/evaluation": {
      "get": {
        "description": "A proposed schema for every aggregate with no table, and what it will not decide.",
        "operationId": "get_persistence_design_api_persistence_design_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersistenceDesignReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Persistence Design",
        "tags": ["persistence-design"]
      }
    },
    "/api/persistence-design/migrations": {
      "get": {
        "description": "The five-phase plan for every designed aggregate, and what is frozen.",
        "operationId": "get_migration_plans_api_persistence_design_migrations_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrationPlanReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Migration Plans",
        "tags": ["persistence-design"]
      }
    },
    "/api/persistence-design/migrations/{table_name}": {
      "get": {
        "description": "One aggregate's plan, so a reviewer can read the phases before any run.",
        "operationId": "get_migration_plan_api_persistence_design_migrations__table_name__get",
        "parameters": [
          {
            "in": "path",
            "name": "table_name",
            "required": true,
            "schema": {
              "title": "Table Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrationPlan"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such persistence design record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Migration Plan",
        "tags": ["persistence-design"]
      }
    },
    "/api/persistence-gap-map/contracts": {
      "get": {
        "description": "The rows alone, optionally narrowed to one verdict or one owning cell.",
        "operationId": "get_contract_rows_api_persistence_gap_map_contracts_get",
        "parameters": [
          {
            "in": "query",
            "name": "verdict",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Verdict"
            }
          },
          {
            "in": "query",
            "name": "cell",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cell"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ContractRow"
                  },
                  "title": "Response Get Contract Rows Api Persistence Gap Map Contracts Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Contract Rows",
        "tags": ["persistence-gap-map"]
      }
    },
    "/api/persistence-gap-map/evaluation": {
      "get": {
        "description": "Ratified contracts against the ratified database, computed from both.",
        "operationId": "get_persistence_gap_map_api_persistence_gap_map_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GapMapReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Persistence Gap Map",
        "tags": ["persistence-gap-map"]
      }
    },
    "/api/provider-model-admissions/blast-radius": {
      "post": {
        "description": "What a kill at this scope would stop, counted from what is admitted and running.",
        "operationId": "compute_blast_radius_api_provider_model_admissions_blast_radius_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlastRadiusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlastRadius"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Compute Blast Radius",
        "tags": ["provider-model-admissions"]
      }
    },
    "/api/provider-model-admissions/evaluation": {
      "get": {
        "description": "The secret scan, the suite, the approvals, the kill, triage and the nine-leg journey.",
        "operationId": "get_provider_model_admission_evaluation_api_provider_model_admissions_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderModelAdmissionReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Provider Model Admission Evaluation",
        "tags": ["provider-model-admissions"]
      }
    },
    "/api/provider-model-admissions/quarantine-checks": {
      "post": {
        "description": "Whether a quarantined candidate may go for approval, or what still holds it.",
        "operationId": "check_quarantine_api_provider_model_admissions_quarantine_checks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuarantineCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuarantineCheckResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Quarantine",
        "tags": ["provider-model-admissions"]
      }
    },
    "/api/provider-model-admissions/restore-checks": {
      "post": {
        "description": "Which gates a restore must pass for this basis, and whether they are met.",
        "operationId": "check_restore_api_provider_model_admissions_restore_checks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestoreCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestoreCheck"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Restore",
        "tags": ["provider-model-admissions"]
      }
    },
    "/api/provider-model-admissions/serve-checks": {
      "post": {
        "description": "May this model serve this request? Every reason not to comes back at once.",
        "operationId": "check_may_serve_api_provider_model_admissions_serve_checks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServeCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServeCheckResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check May Serve",
        "tags": ["provider-model-admissions"]
      }
    },
    "/api/provider-model-admissions/signals": {
      "post": {
        "description": "Take abuse signals. The ones that warrant it suspend the model before a person looks.",
        "operationId": "take_signals_api_provider_model_admissions_signals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignalIntakeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignalIntakeResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the provider model admission record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Take Signals",
        "tags": ["provider-model-admissions"]
      }
    },
    "/api/qti/item-bank/export": {
      "post": {
        "description": "Render normalized Metis item-bank records as QTI 3 XML and manifest.",
        "operationId": "export_qti_item_bank_api_qti_item_bank_export_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QtiExportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QtiExportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such qti record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export QTI 3 assessment items from an item bank",
        "tags": ["qti"]
      }
    },
    "/api/qti/item-bank/import": {
      "post": {
        "description": "Parse QTI 3 item XML into normalized Metis item-bank records.",
        "operationId": "import_qti_item_bank_api_qti_item_bank_import_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QtiImportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QtiImportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Import QTI 3 assessment items into an item bank",
        "tags": ["qti"]
      }
    },
    "/api/review-evidence-exports/authorisations": {
      "post": {
        "description": "What would stop this export, without building it or touching any record.",
        "operationId": "check_export_authorisation_api_review_evidence_exports_authorisations_post",
        "parameters": [
          {
            "in": "header",
            "name": "x-metis-tenant-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Tenant-Id"
            }
          },
          {
            "in": "header",
            "name": "x-metis-export-role",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Export-Role"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthoriseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExportRefusal"
                  },
                  "title": "Response Check Export Authorisation Api Review Evidence Exports Authorisations Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Export Authorisation",
        "tags": ["review-evidence-exports"]
      }
    },
    "/api/review-evidence-exports/evaluation": {
      "get": {
        "description": "Minimisation read from the bytes, injection neutralised, every tamper caught.",
        "operationId": "get_review_evidence_export_evaluation_api_review_evidence_exports_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewEvidenceExportReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Review Evidence Export Evaluation",
        "tags": ["review-evidence-exports"]
      }
    },
    "/api/review-evidence-exports/exports": {
      "post": {
        "description": "Build a signed, minimised export, or say why there is none to build.",
        "operationId": "build_review_evidence_export_api_review_evidence_exports_exports_post",
        "parameters": [
          {
            "in": "header",
            "name": "x-metis-tenant-id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Tenant-Id"
            }
          },
          {
            "in": "header",
            "name": "x-metis-export-role",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Export-Role"
            }
          },
          {
            "in": "header",
            "name": "x-metis-build-commit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Metis-Build-Commit"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BuildExportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuildExportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Build Review Evidence Export",
        "tags": ["review-evidence-exports"]
      }
    },
    "/api/review-evidence-exports/retention-checks": {
      "post": {
        "description": "Whether an export is still inside the retention its purpose allows.",
        "operationId": "check_export_retention_api_review_evidence_exports_retention_checks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportManifest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExportRefusal"
                  },
                  "title": "Response Check Export Retention Api Review Evidence Exports Retention Checks Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Export Retention",
        "tags": ["review-evidence-exports"]
      }
    },
    "/api/review-evidence-exports/validations": {
      "post": {
        "description": "Recompute every digest and signature in a bundle and report what fails.",
        "operationId": "validate_review_evidence_export_api_review_evidence_exports_validations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResult"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Validate Review Evidence Export",
        "tags": ["review-evidence-exports"]
      }
    },
    "/api/review-sla/assignments": {
      "post": {
        "description": "Give a task to the least-loaded qualified reviewer, or say why nobody can take it.",
        "operationId": "assign_task_api_review_sla_assignments_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Assign Task",
        "tags": ["review-sla"]
      }
    },
    "/api/review-sla/evaluation": {
      "get": {
        "description": "Deadlines over a real calendar, workload, views, and the quiet-hours walk.",
        "operationId": "get_review_sla_evaluation_api_review_sla_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewSlaReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Review Sla Evaluation",
        "tags": ["review-sla"]
      }
    },
    "/api/review-sla/notifications": {
      "post": {
        "description": "Send, defer or override. A ratified urgent event goes through quiet hours.",
        "operationId": "deliver_notification_api_review_sla_notifications_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliverRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliverResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Deliver Notification",
        "tags": ["review-sla"]
      }
    },
    "/api/review-sla/queues": {
      "post": {
        "description": "The queue as this caller's audience may read it. A summary reader sees no titles.",
        "operationId": "get_queue_view_api_review_sla_queues_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueueViewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueueView"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Queue View",
        "tags": ["review-sla"]
      }
    },
    "/api/review-sla/statuses": {
      "post": {
        "description": "Where each task stands against its clock, in business time.",
        "operationId": "get_statuses_api_review_sla_statuses_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SlaStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SlaStatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Statuses",
        "tags": ["review-sla"]
      }
    },
    "/api/review-sla/workloads": {
      "post": {
        "description": "What each reviewer carries, plus counts by role with small cells suppressed.",
        "operationId": "get_workload_api_review_sla_workloads_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkloadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkloadResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Workload",
        "tags": ["review-sla"]
      }
    },
    "/api/reviewer-conflicts/dispositions": {
      "post": {
        "description": "The whole policy matrix at one risk, with an institution's overlay applied.",
        "operationId": "get_dispositions_api_reviewer_conflicts_dispositions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DispositionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DispositionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Dispositions",
        "tags": ["reviewer-conflicts"]
      }
    },
    "/api/reviewer-conflicts/evaluation": {
      "get": {
        "description": "The 48-cell policy matrix, the enforcement walk, the visibility walk and retention.",
        "operationId": "get_reviewer_conflict_evaluation_api_reviewer_conflicts_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReviewerConflictReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Reviewer Conflict Evaluation",
        "tags": ["reviewer-conflicts"]
      }
    },
    "/api/reviewer-conflicts/evaluations": {
      "post": {
        "description": "What this reviewer may do on this dimension of this subject, and every reason not.",
        "operationId": "evaluate_reviewer_api_reviewer_conflicts_evaluations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EvaluateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConflictEvaluation"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Evaluate Reviewer",
        "tags": ["reviewer-conflicts"]
      }
    },
    "/api/reviewer-conflicts/quorums": {
      "post": {
        "description": "A quorum counts distinct reviewers none of whom a conflict blocks.",
        "operationId": "check_quorum_api_reviewer_conflicts_quorums_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuorumRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuorumResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Quorum",
        "tags": ["reviewer-conflicts"]
      }
    },
    "/api/reviewer-conflicts/retentions": {
      "post": {
        "description": "Whether a declaration may be disposed of yet, and what is holding it.",
        "operationId": "get_retention_api_reviewer_conflicts_retentions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetentionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetentionVerdict"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Retention",
        "tags": ["reviewer-conflicts"]
      }
    },
    "/api/reviewer-conflicts/views": {
      "post": {
        "description": "One declaration as one audience sees it, with the entry the look leaves behind.",
        "operationId": "view_declaration_api_reviewer_conflicts_views_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConflictViewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ViewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "View Declaration",
        "tags": ["reviewer-conflicts"]
      }
    },
    "/api/scorm/packages": {
      "post": {
        "description": "Create a SCORM 1.2/2004 manifest and runtime adapter for legacy LMS delivery.",
        "operationId": "create_scorm_package_api_scorm_packages_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScormPackageCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormPackageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a SCORM legacy fallback package",
        "tags": ["scorm"]
      }
    },
    "/api/scorm/packages/{package_id}/activity-tree": {
      "get": {
        "description": "Return the activity tree, parsed back out of the package's own manifest.",
        "operationId": "get_scorm_activity_tree_api_scorm_packages__package_id__activity_tree_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormActivityTreeResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such scorm record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read a SCORM package's activity tree",
        "tags": ["scorm"]
      }
    },
    "/api/scorm/packages/{package_id}/manifest": {
      "get": {
        "description": "Return the generated manifest and integrity metadata for a SCORM package.",
        "operationId": "get_scorm_manifest_api_scorm_packages__package_id__manifest_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormPackageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such scorm record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a SCORM package manifest",
        "tags": ["scorm"]
      }
    },
    "/api/scorm/runtime/commit": {
      "post": {
        "description": "Record a token-protected SCORM CMI commit from a legacy LMS launch.",
        "operationId": "commit_scorm_runtime_api_scorm_runtime_commit_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScormRuntimeCommitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormRuntimeCommitResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this scorm operation cannot act on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Commit SCORM CMI runtime state",
        "tags": ["scorm"]
      }
    },
    "/api/scorm/runtime/{package_id}/attempts/{learner_id}": {
      "get": {
        "description": "Return committed SCORM CMI state for a package and learner.",
        "operationId": "list_scorm_attempts_api_scorm_runtime__package_id__attempts__learner_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "learner_id",
            "required": true,
            "schema": {
              "title": "Learner Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormAttemptListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List SCORM runtime commits for a learner",
        "tags": ["scorm"]
      }
    },
    "/api/scorm/sequencing/launch": {
      "post": {
        "description": "Start the learner's session, or resume the one they suspended.",
        "operationId": "launch_scorm_sequencing_api_scorm_sequencing_launch_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScormSequencingLaunchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormNavigationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this scorm operation cannot act on."
          },
          "409": {
            "description": "The sequencing session moved between the read and the write; read it again."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Begin or resume a SCORM sequencing session",
        "tags": ["scorm"]
      }
    },
    "/api/scorm/sequencing/navigate": {
      "post": {
        "description": "Ask the sequencer what this learner may do next, and do it.\n\nA request the rulebook refuses comes back 200 carrying the book's own\nexception code: the request was understood and answered, and the answer is\nthat the rules do not allow it. A 4xx would say the player malformed it.",
        "operationId": "navigate_scorm_sequencing_api_scorm_sequencing_navigate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScormNavigationRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormNavigationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this scorm operation cannot act on."
          },
          "409": {
            "description": "The sequencing session moved between the read and the write; read it again."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Make a SCORM navigation request",
        "tags": ["scorm"]
      }
    },
    "/api/scorm/sequencing/tracking": {
      "post": {
        "description": "Record completion, satisfaction or a measure, and roll it up the tree.",
        "operationId": "report_scorm_tracking_api_scorm_sequencing_tracking_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScormTrackingReportBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScormNavigationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this scorm operation cannot act on."
          },
          "409": {
            "description": "The sequencing session moved between the read and the write; read it again."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Report tracking for the activity a player is running",
        "tags": ["scorm"]
      }
    },
    "/api/sequencing-overlays/analyses": {
      "post": {
        "description": "Merge an overlay set, gate its activation, and decide one sequencing step.",
        "operationId": "create_sequencing_overlay_analysis_api_sequencing_overlays_analyses_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SequencingOverlayRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SequencingOverlayResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such sequencing overlay record."
          },
          "409": {
            "description": "This conflicts with the sequencing overlay record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Sequencing Overlay Analysis",
        "tags": ["sequencing-overlays"]
      }
    },
    "/api/sequencing-overlays/analyses/{analysis_id}": {
      "get": {
        "description": "Return one tenant-visible immutable overlay analysis record.",
        "operationId": "get_sequencing_overlay_analysis_api_sequencing_overlays_analyses__analysis_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "analysis_id",
            "required": true,
            "schema": {
              "title": "Analysis Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SequencingOverlayProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such sequencing overlay record."
          },
          "409": {
            "description": "This conflicts with the sequencing overlay record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Sequencing Overlay Analysis",
        "tags": ["sequencing-overlays"]
      }
    },
    "/api/sequencing-overlays/evaluation": {
      "get": {
        "description": "Return corpus outcomes and the executed merge, floor, and decision property laws.",
        "operationId": "get_sequencing_overlay_evaluation_api_sequencing_overlays_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OverlayEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Sequencing Overlay Evaluation",
        "tags": ["sequencing-overlays"]
      }
    },
    "/api/solution-process-verifications/evaluation": {
      "get": {
        "description": "Return executable adversarial-corpus outcomes and uncertainty intervals.",
        "operationId": "get_solution_process_evaluation_api_solution_process_verifications_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolutionProcessEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Solution Process Evaluation",
        "tags": ["solution-process-verifications"]
      }
    },
    "/api/solution-process-verifications/runs": {
      "post": {
        "description": "Verify every exact worked-solution step inside the pinned sandbox.",
        "operationId": "create_solution_process_run_api_solution_process_verifications_runs_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolutionProcessVerificationRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolutionProcessVerificationRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such solution process verification record."
          },
          "409": {
            "description": "This conflicts with the solution process verification record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Solution Process Run",
        "tags": ["solution-process-verifications"]
      }
    },
    "/api/solution-process-verifications/runs/{run_id}": {
      "get": {
        "description": "Return one tenant-visible immutable process run and its review history.",
        "operationId": "get_solution_process_run_api_solution_process_verifications_runs__run_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "run_id",
            "required": true,
            "schema": {
              "title": "Run Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolutionProcessProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such solution process verification record."
          },
          "409": {
            "description": "This conflicts with the solution process verification record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Solution Process Run",
        "tags": ["solution-process-verifications"]
      }
    },
    "/api/source-graph/citability": {
      "post": {
        "description": "Whether each source may be cited now, and why not when it may not.",
        "operationId": "check_citability_api_source_graph_citability_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CitabilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "items": {},
                    "type": "array"
                  },
                  "title": "Response Check Citability Api Source Graph Citability Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Check Citability",
        "tags": ["source-graph"]
      }
    },
    "/api/source-graph/claims/advance": {
      "post": {
        "description": "Move a claim along. This route cannot reach canonical, by construction.",
        "operationId": "advance_api_source_graph_claims_advance_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvanceClaimRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Claim"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the source graph record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Advance",
        "tags": ["source-graph"]
      }
    },
    "/api/source-graph/claims/canonicalise": {
      "post": {
        "description": "Record the human decision that makes a claim canonical.",
        "operationId": "canonicalise_api_source_graph_claims_canonicalise_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CanonicaliseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Claim"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the source graph record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Canonicalise",
        "tags": ["source-graph"]
      }
    },
    "/api/source-graph/projections": {
      "post": {
        "description": "A source as this caller may read it, with the rest named.",
        "operationId": "project_api_source_graph_projections_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Project Api Source Graph Projections Post",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Project",
        "tags": ["source-graph"]
      }
    },
    "/api/source-ingestion": {
      "get": {
        "description": "Return all currently persisted source-ingestion packages.",
        "operationId": "list_source_ingestion_packages_api_source_ingestion_get",
        "parameters": [
          {
            "description": "Filter by scope level",
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by scope level",
              "title": "Level"
            }
          },
          {
            "description": "Filter by primary scope id",
            "in": "query",
            "name": "scopeId",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by primary scope id",
              "title": "Scopeid"
            }
          },
          {
            "description": "Filter by owner id",
            "in": "query",
            "name": "ownerId",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by owner id",
              "title": "Ownerid"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SourceIngestionResponse"
                  },
                  "title": "Response List Source Ingestion Packages Api Source Ingestion Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List source-ingestion packages",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Register files, URLs, feeds, and LMS or institutional packages for ingestion.\n\nM10.4: every item whose admitted bytes this service holds is written to the\ndurable stores before the package is recorded, so a 201 here means the\nsource is in object storage under its own digest and its record is an\naggregate revision \u2014 the path M10.4.b proved. If those stores cannot be\nreached this answers 503 and registers nothing, rather than recording an\ningestion whose source went only to a local directory.",
        "operationId": "create_source_ingestion_package_api_source_ingestion_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceIngestionCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceIngestionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "The durable stores this ingestion writes to are not configured or not reachable, so nothing was registered."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create a source-ingestion package",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/multipart": {
      "post": {
        "description": "Sniff and hash one multipart upload while streaming it to private quarantine.",
        "operationId": "quarantine_multipart_source_upload_api_source_ingestion_multipart_post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/Body_quarantine_multipart_source_upload_api_source_ingestion_multipart_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceMultipartUploadResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Stream a bounded source upload into tenant-scoped quarantine",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/quarantine/{quarantine_id}/scan": {
      "post": {
        "description": "Persist versioned scanner evidence without converting failures into clean results.",
        "operationId": "scan_source_quarantine_api_source_ingestion_quarantine__quarantine_id__scan_post",
        "parameters": [
          {
            "in": "path",
            "name": "quarantine_id",
            "required": true,
            "schema": {
              "title": "Quarantine Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceQuarantineScanResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Scan encrypted source quarantine and admit only the exact clean hash",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/quarantine/{quarantine_id}/scan-results": {
      "get": {
        "description": "Return retained scan history without crossing the current tenant boundary.",
        "operationId": "list_source_quarantine_scan_results_api_source_ingestion_quarantine__quarantine_id__scan_results_get",
        "parameters": [
          {
            "in": "path",
            "name": "quarantine_id",
            "required": true,
            "schema": {
              "title": "Quarantine Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceQuarantineScanHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List immutable scan and admission evidence for a tenant quarantine artifact",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/retrieval/algorithm-docs": {
      "get": {
        "description": "Return stable documentation for the source retrieval algorithm.",
        "operationId": "get_source_retrieval_algorithm_docs_api_source_ingestion_retrieval_algorithm_docs_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRetrievalAlgorithmDocsResponse"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect Metis source retrieval ranking, rights filters, and benchmark policy",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/study-workspace": {
      "post": {
        "description": "Build study guides, flashcards, quizzes, and tutor launches for a notebook or workspace.",
        "operationId": "build_source_study_workspace_api_source_ingestion_study_workspace_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceStudyWorkspaceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceStudyWorkspaceResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resolve notebook and workspace study flows from scoped source bundles",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/uploads": {
      "post": {
        "description": "Return upload targets for staged source-ingestion files.",
        "operationId": "create_upload_targets_api_source_ingestion_uploads_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/SourceUploadRequest"
                },
                "title": "Body",
                "type": "array"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceUploadBatchResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "413": {
            "description": "The payload is larger than this operation accepts."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create presigned upload targets for source-ingestion files",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}": {
      "get": {
        "description": "Return a single source-ingestion package.",
        "operationId": "get_source_ingestion_package_api_source_ingestion__package_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceIngestionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a source-ingestion package",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/canonical-claims": {
      "get": {
        "description": "Return claim revisions rooted only in explicit authorized human decisions.",
        "operationId": "get_source_canonical_claims_api_source_ingestion__package_id__canonical_claims_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCanonicalClaimCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List human-authorized canonical claim revision histories",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/citations": {
      "get": {
        "description": "Re-evaluate citation survival and rights within the caller's package scope.",
        "operationId": "get_source_citations_api_source_ingestion__package_id__citations_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCitationSafeCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List immutable citation histories with current locator assessments",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Persist exact locator, source-version, extraction, authorship, and rights evidence.",
        "operationId": "attach_source_citation_api_source_ingestion__package_id__citations_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCitationAttachmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCitationSafeHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Attach a typed citation to an exact claim or extracted-content revision",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/citations/{citation_id}/export": {
      "get": {
        "description": "Fail closed on protected source text while retaining locator and attribution context.",
        "operationId": "export_source_citation_api_source_ingestion__package_id__citations__citation_id__export_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "citation_id",
            "required": true,
            "schema": {
              "title": "Citation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCitationExportResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Export accessible rights-bounded citation context",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/citations/{citation_id}/reattach": {
      "post": {
        "description": "Bind a reviewed replacement locator without rewriting citation history.",
        "operationId": "reattach_source_citation_api_source_ingestion__package_id__citations__citation_id__reattach_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "citation_id",
            "required": true,
            "schema": {
              "title": "Citation Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceCitationReattachmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceCitationSafeHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append a reviewed locator version after source or extraction change",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/claim-extractions": {
      "get": {
        "description": "Return exact-extraction proposal runs within the caller's package scope.",
        "operationId": "get_source_claim_extraction_history_api_source_ingestion__package_id__claim_extractions_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceClaimRunHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect immutable claim extraction runs and honest provider outcomes",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Invoke the fenced zero-tool provider seam without granting source text authority.",
        "operationId": "extract_source_claim_proposals_api_source_ingestion__package_id__claim_extractions_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceClaimExtractionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceClaimExtractionRunResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Extract unverified claim proposals from exact bounded source passages",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/concepts/explore": {
      "post": {
        "description": "Explore concept links, prerequisite chains, and graph-aware evidence retrieval.",
        "operationId": "explore_source_concepts_api_source_ingestion__package_id__concepts_explore_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceConceptExplorationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceConceptExplorationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Run graph-aware concept exploration over a source package",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/concepts/graph": {
      "get": {
        "description": "Return the latest concept graph for a source package.",
        "operationId": "get_source_concept_graph_api_source_ingestion__package_id__concepts_graph_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceConceptGraphResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the persisted concept graph for a source package",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Build or refresh the persisted concept graph for a source package.",
        "operationId": "build_source_concept_graph_api_source_ingestion__package_id__concepts_graph_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceConceptGraphRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceConceptGraphResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Build a concept graph for prerequisite and concept exploration",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/concepts/graph/repair": {
      "post": {
        "description": "Apply operator-approved graph repairs and return the updated validation state.",
        "operationId": "repair_source_concept_graph_api_source_ingestion__package_id__concepts_graph_repair_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceConceptGraphRepairRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceConceptGraphRepairResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Apply bounded operator repairs to a persisted concept graph and revalidate it",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/concepts/graph/validate": {
      "post": {
        "description": "Validate concept graph integrity for release-critical curriculum use.",
        "operationId": "validate_source_concept_graph_api_source_ingestion__package_id__concepts_graph_validate_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceConceptGraphValidationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceConceptGraphValidationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Validate a persisted concept graph for cycles, orphans, and repair blockers",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/connectors/preview": {
      "get": {
        "description": "Return the latest persisted connector preview for a source package.",
        "operationId": "get_source_connector_preview_api_source_ingestion__package_id__connectors_preview_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceConnectorPreviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the latest LMS and institutional connector preview",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Inspect staged LMS and institutional packages and surface importer previews.",
        "operationId": "preview_source_connectors_api_source_ingestion__package_id__connectors_preview_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceConnectorPreviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview LMS and institutional import connectors for a source package",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/dependency-graph": {
      "get": {
        "operationId": "get_source_dependency_graph_api_source_ingestion__package_id__dependency_graph_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceDependencyGraphResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Materialize exact forward and reverse source dependency edges",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/evaluate": {
      "post": {
        "description": "Evaluate a grounded build using the persisted extraction and generation artifacts.",
        "operationId": "evaluate_source_ingestion_package_api_source_ingestion__package_id__evaluate_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Run grounded build evaluation for correctness, citation integrity, and unsupported claims",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/extract": {
      "get": {
        "description": "Return the latest persisted extraction results.",
        "operationId": "get_source_ingestion_extraction_api_source_ingestion__package_id__extract_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceExtractionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get persisted extraction results for a source package",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Run extraction over an ingestion package.",
        "operationId": "extract_source_ingestion_package_api_source_ingestion__package_id__extract_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceExtractionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceExtractionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Extract source-bound document nodes, anchors, tables, equations, media, metadata, and rights",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/extraction-corruption-receipts": {
      "get": {
        "description": "Return tenant-scoped corruption receipts without reading quarantined run outputs.",
        "operationId": "list_source_extraction_corruption_receipts_api_source_ingestion__package_id__extraction_corruption_receipts_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceExtractionCorruptionHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List source extraction evidence quarantined from reuse",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/extractions": {
      "get": {
        "description": "Return access-controlled, hash-verified extraction history.",
        "operationId": "list_source_extraction_history_api_source_ingestion__package_id__extractions_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceExtractionHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List immutable source extraction runs and selection history",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/extractions/{extraction_id}": {
      "get": {
        "description": "Return a historical run only within the caller's visible package scope.",
        "operationId": "get_source_extraction_run_api_source_ingestion__package_id__extractions__extraction_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "extraction_id",
            "required": true,
            "schema": {
              "title": "Extraction Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceExtractionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get one exact immutable source extraction run",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/extractions/{extraction_id}/anchor-migrations": {
      "post": {
        "description": "Append reviewed anchor mappings without modifying either extraction run.",
        "operationId": "accept_source_anchor_migrations_api_source_ingestion__package_id__extractions__extraction_id__anchor_migrations_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "extraction_id",
            "required": true,
            "schema": {
              "title": "Extraction Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceAnchorMigrationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SourceAcceptedAnchorMigrationResponse"
                  },
                  "title": "Response Accept Source Anchor Migrations Api Source Ingestion  Package Id  Extractions  Extraction Id  Anchor Migrations Post",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept explicit old-to-new source anchor migrations",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/generate": {
      "get": {
        "description": "Return the latest grounded generation draft.",
        "operationId": "get_grounded_generation_api_source_ingestion__package_id__generate_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundedGenerationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get persisted grounded generation drafts",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Build non-release model lessons or an explicitly labeled availability fallback.",
        "operationId": "generate_grounded_content_api_source_ingestion__package_id__generate_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroundedGenerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundedGenerationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "A dependency this source ingestion operation needs is not configured."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Build source-grounded model lessons with labeled template fallback",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/governance": {
      "get": {
        "description": "Return validation, raw declarations, evidence, conflicts, and decisions separately.",
        "operationId": "get_source_governance_package_api_source_ingestion__package_id__governance_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceGovernancePackageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect source-version authority, rights, currency, jurisdiction, and audience",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/items/{item_id}/governance": {
      "post": {
        "description": "Append normalized metadata without discarding raw declarations or prior revisions.",
        "operationId": "submit_source_governance_metadata_api_source_ingestion__package_id__items__item_id__governance_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceGovernanceSubmissionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceGovernanceItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Submit a source-version-bound governance metadata revision",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/items/{item_id}/governance/review": {
      "post": {
        "description": "Append a decision bound to the exact metadata revision and validation result.",
        "operationId": "review_source_governance_metadata_api_source_ingestion__package_id__items__item_id__governance_review_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "item_id",
            "required": true,
            "schema": {
              "title": "Item Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceGovernanceReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceGovernanceItemResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record an authenticated source-governance reviewer decision",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/learner-delivery": {
      "get": {
        "description": "Reverify the complete source-to-release chain before every learner delivery.",
        "operationId": "get_source_learner_delivery_api_source_ingestion__package_id__learner_delivery_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceLearnerDeliveryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Deliver the current signed adaptive experience to an authorized learner",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/outline": {
      "get": {
        "description": "Return the latest grounded outline for an approved source package.",
        "operationId": "get_grounded_outline_api_source_ingestion__package_id__outline_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundedOutlineResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the persisted grounded outline for a source package",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Build a labeled, non-release outline template from approved extracted sources.",
        "operationId": "generate_grounded_outline_api_source_ingestion__package_id__outline_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroundedOutlineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroundedOutlineResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Build a non-release deterministic outline template from approved sources",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/promote": {
      "post": {
        "description": "Atomically promote only a fully evaluated generation with authentic P0 receipts.",
        "operationId": "promote_source_generation_api_source_ingestion__package_id__promote_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcePromotionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePromotionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Promote an exact model generation using signed TypeScript P0 evidence",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/publication-candidates": {
      "post": {
        "description": "Materialize one content-addressed release candidate for an explicit audience.",
        "operationId": "create_source_publication_candidate_api_source_ingestion__package_id__publication_candidates_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcePublicationCandidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePublicationCandidateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Build an adaptive learner experience from an authenticated promotion",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/publication-candidates/{candidate_id}": {
      "get": {
        "description": "Reverify and return the adaptive experience bound to a candidate digest.",
        "operationId": "get_source_publication_candidate_api_source_ingestion__package_id__publication_candidates__candidate_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePublicationCandidateResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect an exact publication candidate before administrator review",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/publication-releases": {
      "post": {
        "description": "Publish only an authenticated candidate with an exact signed approval.",
        "operationId": "publish_source_publication_candidate_api_source_ingestion__package_id__publication_releases_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcePublicationReleaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePublicationReleaseResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Sign and atomically publish an approved learner release",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/publication-reviews": {
      "post": {
        "description": "Bind a signed administrator decision to one exact publication candidate.",
        "operationId": "review_source_publication_candidate_api_source_ingestion__package_id__publication_reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcePublicationReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourcePublicationReviewResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record an authenticated administrator publication decision",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/refresh": {
      "get": {
        "description": "Return the latest persisted refresh result for a source package.",
        "operationId": "get_source_ingestion_refresh_api_source_ingestion__package_id__refresh_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRefreshResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the latest source refresh and invalidation result",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Refresh remote-backed sources and invalidate downstream derived assets if needed.",
        "operationId": "refresh_source_ingestion_package_api_source_ingestion__package_id__refresh_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceRefreshRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRefreshResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Refresh a source package, diff versions, and invalidate stale derived assets",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/retrieval-benchmark": {
      "get": {
        "description": "Return the latest persisted retrieval benchmark for one source package.",
        "operationId": "get_source_retrieval_benchmark_api_source_ingestion__package_id__retrieval_benchmark_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRetrievalBenchmarkResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the latest retrieval benchmark comparison for a source package",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Persist a deterministic retrieval benchmark run for one source package.",
        "operationId": "run_source_retrieval_benchmark_api_source_ingestion__package_id__retrieval_benchmark_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceRetrievalBenchmarkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRetrievalBenchmarkResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Run retrieval benchmark comparisons against GraphRAG-style and hybrid baselines",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/review": {
      "post": {
        "description": "Approve, reject, or request changes for a scoped source package.",
        "operationId": "review_source_ingestion_package_api_source_ingestion__package_id__review_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourcePackageReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceIngestionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record source quality review and high-stakes approval state",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/risk-assessments": {
      "get": {
        "description": "Re-evaluate targets, source governance, citations, overlays, and reviews on read.",
        "operationId": "get_source_curriculum_risk_assessments_api_source_ingestion__package_id__risk_assessments_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRiskCollectionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get current lifecycle evaluations for immutable curriculum risk assessments",
        "tags": ["source-ingestion"]
      },
      "post": {
        "description": "Persist immutable typed classification and server-derived source evidence.",
        "operationId": "classify_source_curriculum_risk_api_source_ingestion__package_id__risk_assessments_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SourceRiskClassificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceRiskAssessmentHistoryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Classify exact curriculum targets against versioned high-risk floors",
        "tags": ["source-ingestion"]
      }
    },
    "/api/source-ingestion/{package_id}/source-changes/{change_event_id}/blast-radius": {
      "get": {
        "operationId": "get_source_change_blast_radius_api_source_ingestion__package_id__source_changes__change_event_id__blast_radius_get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "title": "Package Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "change_event_id",
            "required": true,
            "schema": {
              "title": "Change Event Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "in": "query",
            "name": "page_size",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Page Size",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SourceBlastRadiusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such source ingestion record."
          },
          "409": {
            "description": "This conflicts with the source ingestion record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Traverse a stable page of direct and transitive source impacts",
        "tags": ["source-ingestion"]
      }
    },
    "/api/teaching-media/lecture-packages": {
      "get": {
        "operationId": "list_lecture_packages_api_teaching_media_lecture_packages_get",
        "parameters": [
          {
            "in": "query",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$",
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List current governed lecture authoring packages for one lesson",
        "tags": ["teaching-media"]
      },
      "post": {
        "operationId": "create_lecture_package_api_teaching_media_lecture_packages_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LecturePackageCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create one immutable structured prerecorded lecture authoring package",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/by-lesson/{lesson_id}/playback": {
      "get": {
        "operationId": "get_lecture_playback_for_lesson_api_teaching_media_lecture_packages_by_lesson__lesson_id__playback_get",
        "parameters": [
          {
            "in": "path",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$",
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePlaybackPackage"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the accepted deterministic lecture package through the learner renderer",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/{package_id}": {
      "get": {
        "operationId": "get_lecture_package_api_teaching_media_lecture_packages__package_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "pattern": "^lecture-authoring-[a-f0-9]{40}$",
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect every immutable lecture authoring, gate, and assembly revision",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/{package_id}/assemble": {
      "post": {
        "operationId": "assemble_lecture_package_api_teaching_media_lecture_packages__package_id__assemble_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "pattern": "^lecture-authoring-[a-f0-9]{40}$",
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LecturePackageAssembleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Assemble a deterministic playback package only after every exact gate passes",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/{package_id}/gates": {
      "post": {
        "operationId": "record_lecture_package_gates_api_teaching_media_lecture_packages__package_id__gates_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "pattern": "^lecture-authoring-[a-f0-9]{40}$",
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LecturePackageGateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record exact media, consent, correctness, accessibility, and playback gates",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/{package_id}/replacement-decisions": {
      "post": {
        "operationId": "decide_lecture_package_replacement_api_teaching_media_lecture_packages__package_id__replacement_decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "pattern": "^lecture-authoring-[a-f0-9]{40}$",
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LectureReplacementDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept one exact replacement before re-running dependent gates",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/{package_id}/replacement-previews": {
      "post": {
        "operationId": "preview_lecture_package_replacement_api_teaching_media_lecture_packages__package_id__replacement_previews_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "pattern": "^lecture-authoring-[a-f0-9]{40}$",
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LectureReplacementImpactRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LectureReplacementImpactPreview"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Preview exact component and gate impact before surgical replacement",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/{package_id}/replacements": {
      "post": {
        "operationId": "replace_lecture_package_component_api_teaching_media_lecture_packages__package_id__replacements_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "pattern": "^lecture-authoring-[a-f0-9]{40}$",
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LectureReplacementExecuteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create one immutable surgically replaced component revision",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/lecture-packages/{package_id}/revisions": {
      "post": {
        "operationId": "revise_lecture_package_api_teaching_media_lecture_packages__package_id__revisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "package_id",
            "required": true,
            "schema": {
              "pattern": "^lecture-authoring-[a-f0-9]{40}$",
              "title": "Package Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LecturePackageReviseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LecturePackageHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Revise structured lecture content without rewriting earlier snapshots",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/loops": {
      "get": {
        "operationId": "list_teaching_media_loops_api_teaching_media_loops_get",
        "parameters": [
          {
            "in": "query",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$",
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaLoopCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List current inspectable proposal loops for one lesson",
        "tags": ["teaching-media"]
      },
      "post": {
        "operationId": "create_teaching_media_loop_api_teaching_media_loops_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaLoopCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaLoopHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create an exact budgeted author-critic-media proposal loop",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/loops/{loop_id}": {
      "get": {
        "operationId": "get_teaching_media_loop_api_teaching_media_loops__loop_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "loop_id",
            "required": true,
            "schema": {
              "pattern": "^media-loop-[a-f0-9]{40}$",
              "title": "Loop Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaLoopHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Inspect every immutable plan, iteration, critic, stop, and decision revision",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/loops/{loop_id}/iterations": {
      "post": {
        "operationId": "record_teaching_media_loop_iteration_api_teaching_media_loops__loop_id__iterations_post",
        "parameters": [
          {
            "in": "path",
            "name": "loop_id",
            "required": true,
            "schema": {
              "pattern": "^media-loop-[a-f0-9]{40}$",
              "title": "Loop Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaLoopIterationEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaLoopHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record one bounded generation, sandbox render, critique, and revision iteration",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/loops/{loop_id}/plan-decisions": {
      "post": {
        "operationId": "decide_teaching_media_loop_plan_api_teaching_media_loops__loop_id__plan_decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "loop_id",
            "required": true,
            "schema": {
              "pattern": "^media-loop-[a-f0-9]{40}$",
              "title": "Loop Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaLoopPlanDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaLoopHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Approve, edit, or reject the exact plan before any generation",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/loops/{loop_id}/plan-events": {
      "post": {
        "operationId": "record_teaching_media_loop_plan_api_teaching_media_loops__loop_id__plan_events_post",
        "parameters": [
          {
            "in": "path",
            "name": "loop_id",
            "required": true,
            "schema": {
              "pattern": "^media-loop-[a-f0-9]{40}$",
              "title": "Loop Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaLoopPlanEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaLoopHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record one allowlisted worker's exact educator-reviewable scene plan",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/loops/{loop_id}/proposal-decisions": {
      "post": {
        "operationId": "decide_teaching_media_loop_proposal_api_teaching_media_loops__loop_id__proposal_decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "loop_id",
            "required": true,
            "schema": {
              "pattern": "^media-loop-[a-f0-9]{40}$",
              "title": "Loop Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaLoopProposalDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaLoopHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept for normal media review, edit, or reject the exact unpublished proposal",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/projects": {
      "get": {
        "operationId": "list_teaching_media_projects_api_teaching_media_projects_get",
        "parameters": [
          {
            "in": "query",
            "name": "lesson_id",
            "required": true,
            "schema": {
              "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$",
              "title": "Lesson Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeachingMediaProjectCatalog"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List current governed teaching-media projects for one lesson",
        "tags": ["teaching-media"]
      },
      "post": {
        "operationId": "create_teaching_media_project_api_teaching_media_projects_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeachingMediaCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeachingMediaProjectHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create an immutable lesson-bound teaching-media project",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/projects/{project_id}": {
      "get": {
        "operationId": "get_teaching_media_project_api_teaching_media_projects__project_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "^media-project-[a-f0-9]{40}$",
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeachingMediaProjectHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read every immutable revision and educator decision for one media project",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/projects/{project_id}/decisions": {
      "post": {
        "operationId": "decide_teaching_media_project_api_teaching_media_projects__project_id__decisions_post",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "^media-project-[a-f0-9]{40}$",
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeachingMediaDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeachingMediaProjectHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Accept or reject one exact gated teaching-media revision",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/projects/{project_id}/stage-events": {
      "post": {
        "operationId": "record_teaching_media_stage_event_api_teaching_media_projects__project_id__stage_events_post",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "^media-project-[a-f0-9]{40}$",
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeachingMediaStageEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeachingMediaProjectHistory"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "This conflicts with what is already recorded: an idempotency key reused for a different intent, or a state this request cannot be applied to."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Start, report, cancel, retry, or regenerate an exact media stage",
        "tags": ["teaching-media"]
      }
    },
    "/api/teaching-media/registry": {
      "get": {
        "operationId": "get_teaching_media_registry_api_teaching_media_registry_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeachingMediaRendererRegistry"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read the exact admitted teaching-media render environments",
        "tags": ["teaching-media"]
      }
    },
    "/api/training-intake/admissions": {
      "post": {
        "description": "Record one piece of feedback and the admission decision taken about it.",
        "operationId": "submit_for_admission_api_training_intake_admissions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdmissionSubmission"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdmissionDecision"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such training intake record."
          },
          "409": {
            "description": "This conflicts with the training intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Submit For Admission",
        "tags": ["training-intake"]
      }
    },
    "/api/training-intake/candidates": {
      "post": {
        "description": "Assemble a candidate. It states that it is not trainable, and it is not.",
        "operationId": "assemble_dataset_candidate_api_training_intake_candidates_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssemblyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetCandidate"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such training intake record."
          },
          "409": {
            "description": "This conflicts with the training intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Assemble Dataset Candidate",
        "tags": ["training-intake"]
      }
    },
    "/api/training-intake/candidates/{candidate_id}": {
      "get": {
        "description": "Return one tenant-visible candidate.",
        "operationId": "get_dataset_candidate_api_training_intake_candidates__candidate_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetCandidate"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such training intake record."
          },
          "409": {
            "description": "This conflicts with the training intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Dataset Candidate",
        "tags": ["training-intake"]
      }
    },
    "/api/training-intake/candidates/{candidate_id}/release": {
      "post": {
        "description": "Promote a candidate into the only artefact anything may train on.",
        "operationId": "promote_dataset_candidate_api_training_intake_candidates__candidate_id__release_post",
        "parameters": [
          {
            "in": "path",
            "name": "candidate_id",
            "required": true,
            "schema": {
              "title": "Candidate Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromotionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatasetRelease"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such training intake record."
          },
          "409": {
            "description": "This conflicts with the training intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Promote Dataset Candidate",
        "tags": ["training-intake"]
      }
    },
    "/api/training-intake/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the minimisation matrix, and every bypass probe.",
        "operationId": "get_training_intake_evaluation_api_training_intake_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Training Intake Evaluation",
        "tags": ["training-intake"]
      }
    },
    "/api/training-intake/releases": {
      "get": {
        "description": "List this tenant's trainable releases.",
        "operationId": "list_dataset_releases_api_training_intake_releases_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DatasetRelease"
                  },
                  "title": "Response List Dataset Releases Api Training Intake Releases Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such training intake record."
          },
          "409": {
            "description": "This conflicts with the training intake record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Dataset Releases",
        "tags": ["training-intake"]
      }
    },
    "/api/training-intake/withdrawals": {
      "get": {
        "description": "List this tenant's recorded withdrawals, oldest first.",
        "operationId": "list_withdrawals_api_training_intake_withdrawals_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/WithdrawalReport"
                  },
                  "title": "Response List Withdrawals Api Training Intake Withdrawals Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such training intake record."
          },
          "409": {
            "description": "This conflicts with the training intake record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Withdrawals",
        "tags": ["training-intake"]
      },
      "post": {
        "description": "Walk every derived artefact kind and record what happened to each.",
        "operationId": "record_withdrawal_api_training_intake_withdrawals_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawalSubmission"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawalReport"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such training intake record."
          },
          "409": {
            "description": "This conflicts with the training intake record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "503": {
            "description": "A dependency this training intake operation needs is not configured."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record Withdrawal",
        "tags": ["training-intake"]
      }
    },
    "/api/tutor-bindings/bindings": {
      "post": {
        "description": "Resolve every bound material, then decide activation and the session it permits.",
        "operationId": "create_tutor_binding_api_tutor_bindings_bindings_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutorBindingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorBindingResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor configuration binding record."
          },
          "409": {
            "description": "This conflicts with the tutor configuration binding record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Tutor Binding",
        "tags": ["tutor-bindings"]
      }
    },
    "/api/tutor-bindings/bindings/{binding_id}": {
      "get": {
        "description": "Return one tenant-visible immutable tutor binding.",
        "operationId": "get_tutor_binding_api_tutor_bindings_bindings__binding_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "binding_id",
            "required": true,
            "schema": {
              "title": "Binding Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorBindingProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor configuration binding record."
          },
          "409": {
            "description": "This conflicts with the tutor configuration binding record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Binding",
        "tags": ["tutor-bindings"]
      }
    },
    "/api/tutor-bindings/evaluation": {
      "get": {
        "description": "Return corpus outcomes and the stale-material sweep over every blocking outcome.",
        "operationId": "get_tutor_binding_evaluation_api_tutor_bindings_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BindingEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Binding Evaluation",
        "tags": ["tutor-bindings"]
      }
    },
    "/api/tutor-previews/evaluation": {
      "get": {
        "description": "Return corpus outcomes, the pedagogy matrix, and every boundary probe.",
        "operationId": "get_tutor_preview_evaluation_api_tutor_previews_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreviewEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Preview Evaluation",
        "tags": ["tutor-previews"]
      }
    },
    "/api/tutor-previews/previews": {
      "get": {
        "description": "List this tenant's immutable previews, oldest first.",
        "operationId": "list_tutor_previews_api_tutor_previews_previews_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TutorPreviewProjection"
                  },
                  "title": "Response List Tutor Previews Api Tutor Previews Previews Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor preview record."
          },
          "409": {
            "description": "This conflicts with the tutor preview record already held."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List Tutor Previews",
        "tags": ["tutor-previews"]
      },
      "post": {
        "description": "Preview a tutor configuration against a synthetic learner.",
        "operationId": "create_tutor_preview_api_tutor_previews_previews_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutorPreviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorPreviewProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor preview record."
          },
          "409": {
            "description": "This conflicts with the tutor preview record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Tutor Preview",
        "tags": ["tutor-previews"]
      }
    },
    "/api/tutor-previews/previews/{preview_id}": {
      "get": {
        "description": "Return one tenant-visible immutable preview.",
        "operationId": "get_tutor_preview_api_tutor_previews_previews__preview_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "preview_id",
            "required": true,
            "schema": {
              "title": "Preview Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorPreviewProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor preview record."
          },
          "409": {
            "description": "This conflicts with the tutor preview record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Preview",
        "tags": ["tutor-previews"]
      }
    },
    "/api/tutor-responses/evaluation": {
      "get": {
        "description": "Return corpus outcomes and every ungrounded-presentation probe.",
        "operationId": "get_tutor_response_evaluation_api_tutor_responses_evaluation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorResponseEvaluationReport"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Response Evaluation",
        "tags": ["tutor-responses"]
      }
    },
    "/api/tutor-responses/evaluations": {
      "post": {
        "description": "Decompose, ground and judge one tutor turn, then decide what may be shown.",
        "operationId": "create_tutor_response_evaluation_api_tutor_responses_evaluations_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutorResponseEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorResponseProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor response grounding record."
          },
          "409": {
            "description": "This conflicts with the tutor response grounding record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Create Tutor Response Evaluation",
        "tags": ["tutor-responses"]
      }
    },
    "/api/tutor-responses/evaluations/{evaluation_id}": {
      "get": {
        "description": "Return one tenant-visible immutable verdict and the reviews beside it.",
        "operationId": "get_tutor_response_projection_api_tutor_responses_evaluations__evaluation_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "evaluation_id",
            "required": true,
            "schema": {
              "title": "Evaluation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorResponseProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor response grounding record."
          },
          "409": {
            "description": "This conflicts with the tutor response grounding record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get Tutor Response Projection",
        "tags": ["tutor-responses"]
      }
    },
    "/api/tutor-responses/evaluations/{evaluation_id}/reviews": {
      "post": {
        "description": "Append a review beside the verdict. It cannot move the verdict.",
        "operationId": "append_tutor_response_review_api_tutor_responses_evaluations__evaluation_id__reviews_post",
        "parameters": [
          {
            "in": "path",
            "name": "evaluation_id",
            "required": true,
            "schema": {
              "title": "Evaluation Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutorResponseReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorResponseProjection"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "No such tutor response grounding record."
          },
          "409": {
            "description": "This conflicts with the tutor response grounding record already held."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Append Tutor Response Review",
        "tags": ["tutor-responses"]
      }
    },
    "/api/tutoring/sessions": {
      "get": {
        "description": "List the current user's tutoring sessions with optional status filter.",
        "operationId": "list_sessions_api_tutoring_sessions_get",
        "parameters": [
          {
            "description": "Filter by status",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by status",
              "title": "Status"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TutoringSessionResponse"
                  },
                  "title": "Response List Sessions Api Tutoring Sessions Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List tutoring sessions for the current user",
        "tags": ["tutoring"]
      },
      "post": {
        "description": "Start a new AI-powered or human tutoring session.\n\nCreates the session, adds a system greeting message, and\nconfigures the AI model if applicable.",
        "operationId": "create_session_api_tutoring_sessions_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutoringSessionCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this tutoring operation cannot act on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          },
          "500": {
            "description": "A tutoring result could not be produced and nothing was returned."
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Start a new tutoring session",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}": {
      "get": {
        "description": "Get full session details including all messages.",
        "operationId": "get_session_api_tutoring_sessions__session_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get a tutoring session by ID",
        "tags": ["tutoring"]
      },
      "patch": {
        "description": "Update session status, rating, or summary.\n\nUsed for ending sessions, rating satisfaction, or adding summaries.",
        "operationId": "update_session_api_tutoring_sessions__session_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutoringSessionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Update a tutoring session",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}/delivery-health": {
      "post": {
        "description": "Refresh avatar-to-voice-to-text fallback state from runtime health signals.",
        "operationId": "refresh_delivery_health_api_tutoring_sessions__session_id__delivery_health_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutoringDeliveryHealthUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this tutoring operation cannot act on."
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Refresh tutoring delivery fallback from runtime health signals",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}/generate-response": {
      "post": {
        "description": "Generate an AI tutor response for the current conversation.\n\nBuilds context from the full message history and calls the\nconfigured AI provider. Falls back to a structured pedagogical\nresponse if no AI provider is available.",
        "operationId": "generate_ai_response_api_tutoring_sessions__session_id__generate_response_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringMessageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this tutoring operation cannot act on."
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Generate an AI tutor response",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}/messages": {
      "post": {
        "description": "Send a student message to the tutoring session.\n\nRecords the message. For AI-powered sessions, use the separate\n/generate-response endpoint to get the AI reply.",
        "operationId": "send_message_api_tutoring_sessions__session_id__messages_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutoringMessageCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringMessageResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this tutoring operation cannot act on."
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Send a message in a tutoring session",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}/quality-evaluation": {
      "get": {
        "description": "Return the persisted tutoring-quality evaluation for one learner session.",
        "operationId": "get_tutoring_quality_evaluation_api_tutoring_sessions__session_id__quality_evaluation_get",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorEmbodimentEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Get the latest tutoring embodiment-quality evaluation",
        "tags": ["tutoring"]
      },
      "post": {
        "description": "Run the canonical tutoring embodiment-quality suite for one learner session.",
        "operationId": "evaluate_tutoring_quality_api_tutoring_sessions__session_id__quality_evaluation_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaEvaluationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutorEmbodimentEvaluationResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Evaluate live tutoring speech, sync, and embodiment quality",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}/voice-runtime": {
      "post": {
        "description": "Provision a short-lived Psyche live voice bridge for a tutoring session.",
        "operationId": "provision_live_voice_runtime_api_tutoring_sessions__session_id__voice_runtime_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this tutoring operation cannot act on."
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Provision or refresh a live voice runtime bridge",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}/voice-runtime/events": {
      "post": {
        "description": "Record a live voice runtime event for turn-taking, interruption, or transcript continuity.",
        "operationId": "record_live_voice_runtime_event_api_tutoring_sessions__session_id__voice_runtime_events_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutoringLiveVoiceRuntimeEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this tutoring operation cannot act on."
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record live voice turn-taking or interruption events",
        "tags": ["tutoring"]
      }
    },
    "/api/tutoring/sessions/{session_id}/voice-runtime/resume": {
      "post": {
        "description": "Resume a live voice runtime after interruption, pause, or reconnect.",
        "operationId": "resume_live_voice_runtime_api_tutoring_sessions__session_id__voice_runtime_resume_post",
        "parameters": [
          {
            "in": "path",
            "name": "session_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Session Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TutoringLiveVoiceResumeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TutoringSessionResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The request names something this tutoring operation cannot act on."
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "404": {
            "description": "No such tutoring record."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Resume a paused or interrupted live voice runtime bridge",
        "tags": ["tutoring"]
      }
    },
    "/api/xapi/activities/profile": {
      "delete": {
        "operationId": "delete_activity_profile_api_xapi_activities_profile_delete",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete one xAPI activity profile document",
        "tags": ["xapi-documents"]
      },
      "get": {
        "operationId": "get_activity_profile_api_xapi_activities_profile_get",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one xAPI activity profile document",
        "tags": ["xapi-documents"]
      },
      "post": {
        "operationId": "post_activity_profile_api_xapi_activities_profile_post",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Content-Type",
            "required": false,
            "schema": {
              "default": "application/json",
              "title": "Content-Type",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": "",
                "title": "Content",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Merge into one xAPI activity profile document",
        "tags": ["xapi-documents"]
      },
      "put": {
        "operationId": "put_activity_profile_api_xapi_activities_profile_put",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Content-Type",
            "required": false,
            "schema": {
              "default": "application/json",
              "title": "Content-Type",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": "",
                "title": "Content",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Replace one xAPI activity profile document",
        "tags": ["xapi-documents"]
      }
    },
    "/api/xapi/activities/state": {
      "delete": {
        "description": "A delete is a write: deleting what somebody just replaced loses their\nwork exactly as overwriting it would, so it obeys the same preconditions.",
        "operationId": "delete_state_document_api_xapi_activities_state_delete",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "stateId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Stateid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "registration",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Registration"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete one xAPI state document",
        "tags": ["xapi-documents"]
      },
      "get": {
        "operationId": "get_state_document_api_xapi_activities_state_get",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "stateId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Stateid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "registration",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Registration"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one xAPI state document",
        "tags": ["xapi-documents"]
      },
      "post": {
        "description": "Merge top-level keys into what is held. Defined over JSON objects only.",
        "operationId": "post_state_document_api_xapi_activities_state_post",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "stateId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Stateid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "registration",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Registration"
            }
          },
          {
            "in": "header",
            "name": "Content-Type",
            "required": false,
            "schema": {
              "default": "application/json",
              "title": "Content-Type",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": "",
                "title": "Content",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Merge into one xAPI state document",
        "tags": ["xapi-documents"]
      },
      "put": {
        "description": "Replace the whole document. A partial update is a POST, not a PUT.",
        "operationId": "put_state_document_api_xapi_activities_state_put",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "stateId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Stateid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "registration",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Registration"
            }
          },
          {
            "in": "header",
            "name": "Content-Type",
            "required": false,
            "schema": {
              "default": "application/json",
              "title": "Content-Type",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": "",
                "title": "Content",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Replace one xAPI state document",
        "tags": ["xapi-documents"]
      }
    },
    "/api/xapi/activities/state/ids": {
      "get": {
        "description": "What a player asks for before it asks for any document.",
        "operationId": "list_state_document_ids_api_xapi_activities_state_ids_get",
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "required": true,
            "schema": {
              "maxLength": 2048,
              "minLength": 1,
              "title": "Activityid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XapiDocumentIdsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "List the state document ids held for one activity and agent",
        "tags": ["xapi-documents"]
      }
    },
    "/api/xapi/agents/profile": {
      "delete": {
        "operationId": "delete_agent_profile_api_xapi_agents_profile_delete",
        "parameters": [
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Delete one xAPI agent profile document",
        "tags": ["xapi-documents"]
      },
      "get": {
        "operationId": "get_agent_profile_api_xapi_agents_profile_get",
        "parameters": [
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Read one xAPI agent profile document",
        "tags": ["xapi-documents"]
      },
      "post": {
        "operationId": "post_agent_profile_api_xapi_agents_profile_post",
        "parameters": [
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Content-Type",
            "required": false,
            "schema": {
              "default": "application/json",
              "title": "Content-Type",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": "",
                "title": "Content",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Merge into one xAPI agent profile document",
        "tags": ["xapi-documents"]
      },
      "put": {
        "operationId": "put_agent_profile_api_xapi_agents_profile_put",
        "parameters": [
          {
            "in": "query",
            "name": "agent",
            "required": true,
            "schema": {
              "maxLength": 4096,
              "minLength": 2,
              "title": "Agent",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "profileId",
            "required": true,
            "schema": {
              "maxLength": 512,
              "minLength": 1,
              "title": "Profileid",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Content-Type",
            "required": false,
            "schema": {
              "default": "application/json",
              "title": "Content-Type",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "If-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-Match"
            }
          },
          {
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "If-None-Match"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "default": "",
                "title": "Content",
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "400": {
            "description": "The agent or identity is not well formed."
          },
          "404": {
            "description": "No such document."
          },
          "409": {
            "description": "A document is already held and this write named no expected version. Send If-Match with the ETag you read, or If-None-Match: * to create only."
          },
          "412": {
            "description": "The document has changed since the version this write was based on."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Replace one xAPI agent profile document",
        "tags": ["xapi-documents"]
      }
    },
    "/api/xapi/replay": {
      "get": {
        "description": "Replay statements after a sequence cursor for downstream consumers.",
        "operationId": "replay_xapi_statements_api_xapi_replay_get",
        "parameters": [
          {
            "in": "query",
            "name": "after_sequence",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "After Sequence",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "learner_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Learner Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XapiReplayResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Replay xAPI and cmi5 learner activity statements",
        "tags": ["xapi"]
      }
    },
    "/api/xapi/statements": {
      "get": {
        "description": "Query statements by learner, verb, stable object id, registration, time, or cursor.",
        "operationId": "query_xapi_statements_api_xapi_statements_get",
        "parameters": [
          {
            "in": "query",
            "name": "learner_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Learner Id"
            }
          },
          {
            "in": "query",
            "name": "verb_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Verb Id"
            }
          },
          {
            "in": "query",
            "name": "object_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Object Id"
            }
          },
          {
            "in": "query",
            "name": "registration",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Registration"
            }
          },
          {
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since"
            }
          },
          {
            "in": "query",
            "name": "until",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Until"
            }
          },
          {
            "in": "query",
            "name": "after_sequence",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "minimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "After Sequence"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 100,
              "maximum": 500,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XapiStatementListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "403": {
            "description": "This caller's role may not do this."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Query xAPI and cmi5 learner activity statements",
        "tags": ["xapi"]
      },
      "post": {
        "description": "Persist one idempotent learner activity statement.",
        "operationId": "record_xapi_statement_api_xapi_statements_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/XapiStatementCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XapiStatementResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "409": {
            "description": "The statement ID is already bound to different immutable content."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "summary": "Record an xAPI or cmi5 learner activity statement",
        "tags": ["xapi"]
      }
    },
    "/health": {
      "get": {
        "description": "Health check endpoint returning service status and metadata.\n\nReturns basic service information. Used by load balancers and\ncontainer orchestration for liveness probes.",
        "operationId": "health_check_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Health Check Health Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Health Check",
        "tags": ["infrastructure"]
      }
    },
    "/ready": {
      "get": {
        "description": "Readiness check verifying database and Redis connectivity.\n\nUsed by orchestrators to determine if the service can accept\ntraffic. Checks all critical dependencies.",
        "operationId": "readiness_check_ready_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          }
        },
        "summary": "Readiness Check",
        "tags": ["infrastructure"]
      }
    }
  },
  "components": {
    "schemas": {
      "AbuseSignal": {
        "additionalProperties": false,
        "description": "A detector's observation. It indicates; it does not conclude.",
        "properties": {
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "detector_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Detector Id",
            "type": "string"
          },
          "evidence_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Evidence Sha256S",
            "type": "array"
          },
          "is_conclusion": {
            "const": false,
            "default": false,
            "title": "Is Conclusion",
            "type": "boolean"
          },
          "kind": {
            "enum": [
              "prompt_injection",
              "exfiltration",
              "harmful_output",
              "answer_leakage",
              "anomalous_spend",
              "anomalous_rate",
              "anomalous_data",
              "endpoint_drift",
              "complaint"
            ],
            "title": "Kind",
            "type": "string"
          },
          "observation": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Observation",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          }
        },
        "required": [
          "signal_id",
          "kind",
          "candidate_id",
          "observed_at",
          "detector_id",
          "observation"
        ],
        "title": "AbuseSignal",
        "type": "object"
      },
      "AcademicIntegrityAppealPathResponse": {
        "description": "Appeal path for a Themis decision.",
        "properties": {
          "appealAllowed": {
            "title": "Appealallowed",
            "type": "boolean"
          },
          "appealBy": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appealby"
          },
          "appealRoute": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appealroute"
          },
          "institutionalPolicyUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institutionalpolicyurl"
          }
        },
        "required": ["appealAllowed"],
        "title": "AcademicIntegrityAppealPathResponse",
        "type": "object"
      },
      "AcademicIntegrityClassifierOutputResponse": {
        "description": "Classifier output used by Themis during adjudication.",
        "properties": {
          "calibratedAt": {
            "format": "date-time",
            "title": "Calibratedat",
            "type": "string"
          },
          "classifierId": {
            "title": "Classifierid",
            "type": "string"
          },
          "label": {
            "enum": ["human_likely", "ai_likely", "mixed", "copied", "unknown"],
            "title": "Label",
            "type": "string"
          },
          "modelVersion": {
            "title": "Modelversion",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "threshold": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Threshold",
            "type": "number"
          }
        },
        "required": ["classifierId", "modelVersion", "label", "score", "threshold", "calibratedAt"],
        "title": "AcademicIntegrityClassifierOutputResponse",
        "type": "object"
      },
      "AcademicIntegrityDecisionResponse": {
        "description": "Themis decision details for learner and educator surfaces.",
        "properties": {
          "appealPath": {
            "$ref": "#/components/schemas/AcademicIntegrityAppealPathResponse"
          },
          "decidedAt": {
            "format": "date-time",
            "title": "Decidedat",
            "type": "string"
          },
          "decidedBy": {
            "title": "Decidedby",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "recommendedAction": {
            "enum": [
              "none",
              "educator_review",
              "learner_warning",
              "score_hold",
              "submission_reject",
              "institution_escalation"
            ],
            "title": "Recommendedaction",
            "type": "string"
          }
        },
        "required": ["decidedBy", "decidedAt", "rationale", "recommendedAction", "appealPath"],
        "title": "AcademicIntegrityDecisionResponse",
        "type": "object"
      },
      "AcademicIntegrityDetectionSignalResponse": {
        "description": "Themis detection signal attached to an assessment submission.",
        "properties": {
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "evidenceExcerptIds": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Evidenceexcerptids",
            "type": "array"
          },
          "kind": {
            "enum": [
              "paste_external",
              "offplatform_search",
              "response_pattern_anomaly",
              "generated_text_classifier",
              "tutor_output_in_submission",
              "pace_anomaly",
              "device_fingerprint_change",
              "proctor_observation",
              "peer_collaboration_breach",
              "teacher_flag"
            ],
            "title": "Kind",
            "type": "string"
          },
          "observedAt": {
            "format": "date-time",
            "title": "Observedat",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "signalId": {
            "title": "Signalid",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["signalId", "kind", "severity", "confidence", "observedAt", "summary"],
        "title": "AcademicIntegrityDetectionSignalResponse",
        "type": "object"
      },
      "AcademicIntegrityEvidenceExcerptResponse": {
        "description": "Learner-safe evidence excerpt referenced by a detection signal.",
        "properties": {
          "artifactId": {
            "title": "Artifactid",
            "type": "string"
          },
          "excerptId": {
            "title": "Excerptid",
            "type": "string"
          },
          "locator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locator"
          },
          "redactionState": {
            "enum": ["none", "learner_safe", "operator_only"],
            "title": "Redactionstate",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["excerptId", "artifactId", "text", "redactionState"],
        "title": "AcademicIntegrityEvidenceExcerptResponse",
        "type": "object"
      },
      "AcademicIntegrityGovernanceResponse": {
        "description": "Themis governance metadata for downstream consumers.",
        "properties": {
          "auditTrailRequired": {
            "title": "Audittrailrequired",
            "type": "boolean"
          },
          "consumingDomain": {
            "const": "metis",
            "title": "Consumingdomain",
            "type": "string"
          },
          "humanReviewRequired": {
            "title": "Humanreviewrequired",
            "type": "boolean"
          },
          "learnerVisible": {
            "title": "Learnervisible",
            "type": "boolean"
          },
          "sourceOfRecord": {
            "const": "themis",
            "title": "Sourceofrecord",
            "type": "string"
          }
        },
        "required": [
          "sourceOfRecord",
          "consumingDomain",
          "humanReviewRequired",
          "auditTrailRequired",
          "learnerVisible"
        ],
        "title": "AcademicIntegrityGovernanceResponse",
        "type": "object"
      },
      "AcademicIntegrityPolicyBindingResponse": {
        "description": "Policy context active when Themis adjudicated the submission.",
        "properties": {
          "allowedActions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Allowedactions",
            "type": "array"
          },
          "institutionId": {
            "title": "Institutionid",
            "type": "string"
          },
          "integrityMode": {
            "enum": ["assessed", "formative", "practice", "exam", "collaborative"],
            "title": "Integritymode",
            "type": "string"
          },
          "policyId": {
            "title": "Policyid",
            "type": "string"
          },
          "policyVersion": {
            "title": "Policyversion",
            "type": "string"
          },
          "prohibitedActions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Prohibitedactions",
            "type": "array"
          }
        },
        "required": ["institutionId", "policyId", "policyVersion", "integrityMode"],
        "title": "AcademicIntegrityPolicyBindingResponse",
        "type": "object"
      },
      "AcademicIntegrityVerdictResponse": {
        "description": "Canonical AcademicIntegrityVerdict emitted by Themis for Metis.",
        "properties": {
          "assessmentId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessmentid"
          },
          "classifierOutputs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AcademicIntegrityClassifierOutputResponse"
            },
            "title": "Classifieroutputs",
            "type": "array"
          },
          "courseId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Courseid"
          },
          "createdAt": {
            "format": "date-time",
            "title": "Createdat",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/AcademicIntegrityDecisionResponse"
          },
          "detectionSignals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AcademicIntegrityDetectionSignalResponse"
            },
            "title": "Detectionsignals",
            "type": "array"
          },
          "evidenceExcerpts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AcademicIntegrityEvidenceExcerptResponse"
            },
            "title": "Evidenceexcerpts",
            "type": "array"
          },
          "evidencePackId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidencepackid"
          },
          "governance": {
            "$ref": "#/components/schemas/AcademicIntegrityGovernanceResponse"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "learnerId": {
            "title": "Learnerid",
            "type": "string"
          },
          "modelVersions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Modelversions",
            "type": "array"
          },
          "policyBinding": {
            "$ref": "#/components/schemas/AcademicIntegrityPolicyBindingResponse"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "enum": ["draft", "decided", "appealed", "overturned", "upheld", "paused_bias_review"],
            "title": "Status",
            "type": "string"
          },
          "tutorSessionId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tutorsessionid"
          },
          "updatedAt": {
            "format": "date-time",
            "title": "Updatedat",
            "type": "string"
          },
          "verdictClass": {
            "enum": ["clear", "inconclusive", "violation", "severe"],
            "title": "Verdictclass",
            "type": "string"
          }
        },
        "required": [
          "id",
          "verdictClass",
          "severity",
          "status",
          "learnerId",
          "decision",
          "policyBinding",
          "governance",
          "createdAt",
          "updatedAt"
        ],
        "title": "AcademicIntegrityVerdictResponse",
        "type": "object"
      },
      "AcceptedAlignmentResponse": {
        "additionalProperties": false,
        "description": "Human-authorized alignment, persisted separately from model proposals.",
        "properties": {
          "accepted_at": {
            "format": "date-time",
            "title": "Accepted At",
            "type": "string"
          },
          "alignment_id": {
            "pattern": "^acceptedalign_[a-f0-9]{40}$",
            "title": "Alignment Id",
            "type": "string"
          },
          "authority_action": {
            "enum": ["accept", "edit"],
            "title": "Authority Action",
            "type": "string"
          },
          "coverage": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Coverage",
            "type": "number"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_decision": {
            "$ref": "#/components/schemas/AlignmentReviewDecision"
          },
          "source_invocation": {
            "$ref": "#/components/schemas/AlignmentProviderInvocation"
          },
          "source_proposal": {
            "$ref": "#/components/schemas/AlignmentProposalResponse"
          },
          "source_run_id": {
            "pattern": "^alignrun_[a-f0-9]{40}$",
            "title": "Source Run Id",
            "type": "string"
          },
          "source_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Run Sha256",
            "type": "string"
          },
          "standard": {
            "$ref": "#/components/schemas/CanonicalStandardRecord"
          },
          "strength": {
            "enum": ["exact", "strong", "moderate", "weak"],
            "title": "Strength",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/AlignmentTargetSnapshot"
          }
        },
        "required": [
          "alignment_id",
          "target",
          "standard",
          "strength",
          "coverage",
          "rationale",
          "limitations",
          "authority_action",
          "source_run_id",
          "source_run_sha256",
          "source_proposal",
          "source_invocation",
          "source_decision",
          "accepted_at",
          "self_sha256"
        ],
        "title": "AcceptedAlignmentResponse",
        "type": "object"
      },
      "AcceptedArtifactRevision": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_without_educator_decision": {
            "const": false,
            "default": false,
            "title": "Created Without Educator Decision",
            "type": "boolean"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "educator_edited": {
            "title": "Educator Edited",
            "type": "boolean"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/GateOutcome"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Gates",
            "type": "array"
          },
          "lineage_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lineage Sha256",
            "type": "string"
          },
          "override_rejection_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Override Rejection Codes",
            "type": "array"
          },
          "overrode_rule_rejection": {
            "title": "Overrode Rule Rejection",
            "type": "boolean"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "source_candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Candidate Id",
            "type": "string"
          }
        },
        "required": [
          "artifact_id",
          "revision_id",
          "revision_sha256",
          "source_candidate_id",
          "educator_edited",
          "decision_id",
          "lineage_sha256",
          "gates",
          "overrode_rule_rejection",
          "override_rejection_codes",
          "created_at"
        ],
        "title": "AcceptedArtifactRevision",
        "type": "object"
      },
      "AcceptedEvidence": {
        "additionalProperties": false,
        "description": "One piece of evidence about one criterion, as the projection carries it.",
        "properties": {
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_type": {
            "enum": [
              "assessment_result",
              "mastery_estimate",
              "verified_artefact",
              "supervisor_attestation",
              "attendance_record"
            ],
            "title": "Evidence Type",
            "type": "string"
          },
          "hours": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "value_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value Basis Points"
          },
          "verified": {
            "title": "Verified",
            "type": "boolean"
          }
        },
        "required": [
          "evidence_id",
          "criterion_id",
          "evidence_type",
          "observed_at",
          "verified",
          "source_revision_sha256"
        ],
        "title": "AcceptedEvidence",
        "type": "object"
      },
      "AcceptedSignal": {
        "additionalProperties": false,
        "description": "What intake emits. There is no verbatim field, by construction.",
        "properties": {
          "cohort_size": {
            "minimum": 1.0,
            "title": "Cohort Size",
            "type": "integer"
          },
          "redacted_summary": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Redacted Summary",
            "type": "string"
          },
          "redaction_verified": {
            "const": true,
            "default": true,
            "title": "Redaction Verified",
            "type": "boolean"
          },
          "redactions_applied": {
            "default": [],
            "items": {
              "enum": ["email", "uuid", "identity_reference"],
              "type": "string"
            },
            "maxItems": 3,
            "title": "Redactions Applied",
            "type": "array"
          },
          "severity": {
            "enum": ["informational", "minor", "major", "blocking"],
            "title": "Severity",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "source": {
            "enum": [
              "survey",
              "comment",
              "support_ticket",
              "correction",
              "analytics",
              "performance",
              "accessibility",
              "integrity"
            ],
            "title": "Source",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "target_content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Content Id",
            "type": "string"
          },
          "target_content_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Content Revision Sha256",
            "type": "string"
          },
          "verbatim_retained": {
            "const": false,
            "default": false,
            "title": "Verbatim Retained",
            "type": "boolean"
          }
        },
        "required": [
          "signal_id",
          "source",
          "severity",
          "submitted_at",
          "redacted_summary",
          "cohort_size",
          "target_content_id",
          "target_content_revision_sha256"
        ],
        "title": "AcceptedSignal",
        "type": "object"
      },
      "AccessAuditEntry": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["learner", "reviewer", "integrity_lead"],
            "title": "Audience",
            "type": "string"
          },
          "audit_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Audit Id",
            "type": "string"
          },
          "fields_shown": {
            "items": {
              "enum": [
                "refs.learner_digest",
                "refs.attempt",
                "refs.item",
                "source.versions",
                "raw_outputs",
                "confidence",
                "evidence.timeline",
                "evidence.media",
                "evidence.session",
                "evidence.device",
                "evidence.similarity",
                "evidence.authorship",
                "excerpt.text",
                "summary",
                "state"
              ],
              "type": "string"
            },
            "title": "Fields Shown",
            "type": "array"
          },
          "fields_withheld": {
            "items": {
              "enum": [
                "refs.learner_digest",
                "refs.attempt",
                "refs.item",
                "source.versions",
                "raw_outputs",
                "confidence",
                "evidence.timeline",
                "evidence.media",
                "evidence.session",
                "evidence.device",
                "evidence.similarity",
                "evidence.authorship",
                "excerpt.text",
                "summary",
                "state"
              ],
              "type": "string"
            },
            "title": "Fields Withheld",
            "type": "array"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "view_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "View Sha256",
            "type": "string"
          },
          "viewed_at": {
            "format": "date-time",
            "title": "Viewed At",
            "type": "string"
          },
          "viewed_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Viewed By Digest",
            "type": "string"
          }
        },
        "required": [
          "audit_id",
          "signal_id",
          "tenant_id",
          "audience",
          "viewed_by_digest",
          "viewed_at",
          "fields_shown",
          "fields_withheld",
          "view_sha256"
        ],
        "title": "AccessAuditEntry",
        "type": "object"
      },
      "AccessRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "cross_tenant",
              "not_your_case",
              "authorization_other_subject",
              "authorization_not_yet_active",
              "authorization_expired"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "AccessRefusal",
        "type": "object"
      },
      "AccessibilityAlternativeAssetReceipt": {
        "additionalProperties": false,
        "properties": {
          "alternative_kind": {
            "enum": [
              "alternative_text",
              "long_description",
              "data_table",
              "mathml",
              "linearized_math",
              "spoken_math",
              "code_semantics",
              "table_semantics",
              "transcript",
              "captions",
              "audio_description",
              "sign_language",
              "noninteractive_equivalent"
            ],
            "title": "Alternative Kind",
            "type": "string"
          },
          "asset_id": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Asset Revision Sha256",
            "type": "string"
          },
          "authority_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Authority Id",
            "type": "string"
          },
          "authority_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Authority Sha256",
            "type": "string"
          },
          "authority_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Authority Version",
            "type": "string"
          },
          "availability_status": {
            "enum": ["available", "missing", "quarantined", "revoked"],
            "title": "Availability Status",
            "type": "string"
          },
          "cell_id": {
            "pattern": "^a11y-completeness-cell:[a-f0-9]{40}$",
            "title": "Cell Id",
            "type": "string"
          },
          "equivalence_method": {
            "enum": ["automated", "human"],
            "title": "Equivalence Method",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "measured_sync_offset_ms": {
            "anyOf": [
              {
                "maximum": 120000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measured Sync Offset Ms"
          },
          "outcome_equivalence": {
            "enum": ["pass", "manual_pass", "fail", "unverified"],
            "title": "Outcome Equivalence",
            "type": "string"
          },
          "pnp_profile_id": {
            "title": "Pnp Profile Id",
            "type": "string"
          },
          "receipt_id": {
            "pattern": "^a11y-asset-receipt:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Receipt Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "requested_asset_revision": {
            "minimum": 1.0,
            "title": "Requested Asset Revision",
            "type": "integer"
          },
          "requirement_id": {
            "pattern": "^a11y-alternative:[a-z0-9][a-z0-9.-]{2,127}$",
            "title": "Requirement Id",
            "type": "string"
          },
          "resolved_asset_revision": {
            "minimum": 1.0,
            "title": "Resolved Asset Revision",
            "type": "integer"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "reviewer_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Id"
          },
          "rights_revision": {
            "minimum": 1.0,
            "title": "Rights Revision",
            "type": "integer"
          },
          "rights_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rights Sha256",
            "type": "string"
          },
          "rights_status": {
            "enum": ["cleared", "restricted", "expired", "unverified"],
            "title": "Rights Status",
            "type": "string"
          },
          "source_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Item Revision Sha256",
            "type": "string"
          },
          "synchronization_status": {
            "enum": ["pass", "not_required", "fail", "unverified"],
            "title": "Synchronization Status",
            "type": "string"
          },
          "target": {
            "enum": ["learner-web", "learner-mobile", "lms-qti", "print"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "receipt_id",
          "cell_id",
          "requirement_id",
          "alternative_kind",
          "target",
          "locale",
          "pnp_profile_id",
          "source_item_revision_sha256",
          "asset_id",
          "requested_asset_revision",
          "resolved_asset_revision",
          "asset_revision_sha256",
          "authority_id",
          "authority_version",
          "authority_sha256",
          "synchronization_status",
          "rights_status",
          "rights_revision",
          "rights_sha256",
          "availability_status",
          "outcome_equivalence",
          "equivalence_method",
          "evidence",
          "receipt_sha256"
        ],
        "title": "AccessibilityAlternativeAssetReceipt",
        "type": "object"
      },
      "AccessibilityAlternativeCell": {
        "additionalProperties": false,
        "properties": {
          "alternative_kind": {
            "enum": [
              "alternative_text",
              "long_description",
              "data_table",
              "mathml",
              "linearized_math",
              "spoken_math",
              "code_semantics",
              "table_semantics",
              "transcript",
              "captions",
              "audio_description",
              "sign_language",
              "noninteractive_equivalent"
            ],
            "title": "Alternative Kind",
            "type": "string"
          },
          "applicability_reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 12,
            "minItems": 1,
            "title": "Applicability Reasons",
            "type": "array"
          },
          "cell_id": {
            "pattern": "^a11y-completeness-cell:[a-f0-9]{40}$",
            "title": "Cell Id",
            "type": "string"
          },
          "disposition": {
            "enum": ["required_automatic", "required_manual", "not_applicable"],
            "title": "Disposition",
            "type": "string"
          },
          "evidence_requirement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Evidence Requirement",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "pnp_profile_id": {
            "title": "Pnp Profile Id",
            "type": "string"
          },
          "requirement_id": {
            "pattern": "^a11y-alternative:[a-z0-9][a-z0-9.-]{2,127}$",
            "title": "Requirement Id",
            "type": "string"
          },
          "target": {
            "enum": ["learner-web", "learner-mobile", "lms-qti", "print"],
            "title": "Target",
            "type": "string"
          },
          "temporal_sync_required": {
            "title": "Temporal Sync Required",
            "type": "boolean"
          }
        },
        "required": [
          "cell_id",
          "requirement_id",
          "alternative_kind",
          "target",
          "locale",
          "pnp_profile_id",
          "disposition",
          "applicability_reasons",
          "temporal_sync_required",
          "evidence_requirement"
        ],
        "title": "AccessibilityAlternativeCell",
        "type": "object"
      },
      "AccessibilityApplicabilityMatrix": {
        "additionalProperties": false,
        "properties": {
          "alternative_cells": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityAlternativeCell"
            },
            "minItems": 1,
            "title": "Alternative Cells",
            "type": "array"
          },
          "checklist_cells": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityChecklistCell"
            },
            "minItems": 1,
            "title": "Checklist Cells",
            "type": "array"
          },
          "matrix_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Matrix Sha256",
            "type": "string"
          }
        },
        "required": ["checklist_cells", "alternative_cells", "matrix_sha256"],
        "title": "AccessibilityApplicabilityMatrix",
        "type": "object"
      },
      "AccessibilityAuditCoverage": {
        "additionalProperties": false,
        "properties": {
          "applicable_check_count": {
            "minimum": 0.0,
            "title": "Applicable Check Count",
            "type": "integer"
          },
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "completed_manual_review_count": {
            "minimum": 0.0,
            "title": "Completed Manual Review Count",
            "type": "integer"
          },
          "failed_check_count": {
            "minimum": 0.0,
            "title": "Failed Check Count",
            "type": "integer"
          },
          "mapped_support_count": {
            "minimum": 0.0,
            "title": "Mapped Support Count",
            "type": "integer"
          },
          "missing_check_count": {
            "minimum": 0.0,
            "title": "Missing Check Count",
            "type": "integer"
          },
          "passed_automation_case_count": {
            "minimum": 0.0,
            "title": "Passed Automation Case Count",
            "type": "integer"
          },
          "passed_check_count": {
            "minimum": 0.0,
            "title": "Passed Check Count",
            "type": "integer"
          },
          "required_automation_case_count": {
            "minimum": 0.0,
            "title": "Required Automation Case Count",
            "type": "integer"
          },
          "required_manual_review_count": {
            "minimum": 0.0,
            "title": "Required Manual Review Count",
            "type": "integer"
          },
          "required_support_count": {
            "minimum": 0.0,
            "title": "Required Support Count",
            "type": "integer"
          }
        },
        "required": [
          "applicable_check_count",
          "passed_check_count",
          "failed_check_count",
          "missing_check_count",
          "required_automation_case_count",
          "passed_automation_case_count",
          "required_manual_review_count",
          "completed_manual_review_count",
          "required_support_count",
          "mapped_support_count",
          "complete"
        ],
        "title": "AccessibilityAuditCoverage",
        "type": "object"
      },
      "AccessibilityAutomationCase": {
        "additionalProperties": false,
        "properties": {
          "assistive_technology": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assistive Technology"
          },
          "base_direction": {
            "enum": ["ltr", "rtl"],
            "title": "Base Direction",
            "type": "string"
          },
          "capture_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Capture Sha256",
            "type": "string"
          },
          "case_id": {
            "pattern": "^a11y-case:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "input_mode": {
            "enum": ["pointer", "keyboard", "screen_reader"],
            "title": "Input Mode",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail", "timeout", "error"],
            "title": "Outcome",
            "type": "string"
          },
          "preview_kind": {
            "enum": [
              "locale_bidi",
              "screen_reader",
              "keyboard",
              "zoom_200",
              "zoom_400",
              "theme_light",
              "theme_dark",
              "viewport_320",
              "reduced_motion",
              "accommodation"
            ],
            "title": "Preview Kind",
            "type": "string"
          },
          "reduced_motion": {
            "title": "Reduced Motion",
            "type": "boolean"
          },
          "support_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Support Codes",
            "type": "array"
          },
          "theme": {
            "enum": ["light", "dark", "high_contrast"],
            "title": "Theme",
            "type": "string"
          },
          "viewport_height": {
            "maximum": 8000.0,
            "minimum": 240.0,
            "title": "Viewport Height",
            "type": "integer"
          },
          "viewport_width": {
            "maximum": 8000.0,
            "minimum": 240.0,
            "title": "Viewport Width",
            "type": "integer"
          },
          "zoom_percent": {
            "maximum": 400.0,
            "minimum": 100.0,
            "title": "Zoom Percent",
            "type": "integer"
          }
        },
        "required": [
          "case_id",
          "locale",
          "base_direction",
          "preview_kind",
          "viewport_width",
          "viewport_height",
          "zoom_percent",
          "theme",
          "reduced_motion",
          "input_mode",
          "outcome",
          "evidence",
          "capture_sha256"
        ],
        "title": "AccessibilityAutomationCase",
        "type": "object"
      },
      "AccessibilityBehaviour": {
        "additionalProperties": false,
        "description": "What one mode offers. Equivalence is compared as a set, not asserted.",
        "properties": {
          "available_moves": {
            "items": {
              "enum": [
                "ask_a_diagnostic_question",
                "offer_a_hint",
                "scaffold_a_step",
                "demonstrate_a_worked_example",
                "give_the_direct_answer",
                "restate_the_objective"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Available Moves",
            "type": "array"
          },
          "available_tools": {
            "default": [],
            "items": {
              "enum": [
                "tool:read-source-revision",
                "tool:search-corpus",
                "tool:render-preview",
                "tool:speak",
                "tool:caption"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Available Tools",
            "type": "array"
          },
          "mode": {
            "enum": [
              "default",
              "keyboard_only",
              "screen_reader",
              "high_contrast",
              "captions_required",
              "extended_time"
            ],
            "title": "Mode",
            "type": "string"
          },
          "reachable_source_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Reachable Source Ids",
            "type": "array"
          }
        },
        "required": ["mode", "available_moves", "reachable_source_ids"],
        "title": "AccessibilityBehaviour",
        "type": "object"
      },
      "AccessibilityCheckObservation": {
        "additionalProperties": false,
        "properties": {
          "actual": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Actual",
            "type": "string"
          },
          "check_id": {
            "pattern": "^a11y-check:[a-z0-9][a-z0-9.-]{2,127}$",
            "title": "Check Id",
            "type": "string"
          },
          "configured_timeout_ms": {
            "maximum": 120000.0,
            "minimum": 100.0,
            "title": "Configured Timeout Ms",
            "type": "integer"
          },
          "elapsed_ms": {
            "maximum": 120000.0,
            "minimum": 0.0,
            "title": "Elapsed Ms",
            "type": "integer"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "expected": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Expected",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "method": {
            "enum": [
              "axe",
              "dom_probe",
              "contrast_measurement",
              "keyboard_script",
              "media_probe",
              "qti_validator",
              "runtime_probe"
            ],
            "title": "Method",
            "type": "string"
          },
          "observation_id": {
            "pattern": "^a11y-observation:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Observation Id",
            "type": "string"
          },
          "observation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Observation Sha256",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail", "timeout", "error", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "tool": {
            "$ref": "#/components/schemas/AccessibilityToolIdentity"
          }
        },
        "required": [
          "observation_id",
          "check_id",
          "locale",
          "method",
          "tool",
          "configured_timeout_ms",
          "elapsed_ms",
          "outcome",
          "evidence",
          "expected",
          "actual",
          "observation_sha256"
        ],
        "title": "AccessibilityCheckObservation",
        "type": "object"
      },
      "AccessibilityChecklistCell": {
        "additionalProperties": false,
        "properties": {
          "applicability_reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 12,
            "minItems": 1,
            "title": "Applicability Reasons",
            "type": "array"
          },
          "cell_id": {
            "pattern": "^a11y-completeness-cell:[a-f0-9]{40}$",
            "title": "Cell Id",
            "type": "string"
          },
          "check_id": {
            "pattern": "^a11y-check:[a-z0-9][a-z0-9.-]{2,127}$",
            "title": "Check Id",
            "type": "string"
          },
          "disposition": {
            "enum": ["required_automatic", "required_manual", "not_applicable"],
            "title": "Disposition",
            "type": "string"
          },
          "evidence_requirement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Evidence Requirement",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "matched_support_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Matched Support Codes",
            "type": "array"
          },
          "pnp_profile_id": {
            "title": "Pnp Profile Id",
            "type": "string"
          },
          "target": {
            "enum": ["learner-web", "learner-mobile", "lms-qti", "print"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "cell_id",
          "check_id",
          "target",
          "locale",
          "pnp_profile_id",
          "disposition",
          "applicability_reasons",
          "evidence_requirement"
        ],
        "title": "AccessibilityChecklistCell",
        "type": "object"
      },
      "AccessibilityChecklistRegistry": {
        "additionalProperties": false,
        "properties": {
          "exception_allowed": {
            "const": false,
            "default": false,
            "title": "Exception Allowed",
            "type": "boolean"
          },
          "pnp_version": {
            "const": "AccessForAll PNP 3.0",
            "default": "AccessForAll PNP 3.0",
            "title": "Pnp Version",
            "type": "string"
          },
          "qti_profile": {
            "const": "Elevated Accessibility",
            "default": "Elevated Accessibility",
            "title": "Qti Profile",
            "type": "string"
          },
          "qti_version": {
            "const": "3.0",
            "default": "3.0",
            "title": "Qti Version",
            "type": "string"
          },
          "registry_id": {
            "const": "item-accessibility-checklist:qti3-wcag22",
            "default": "item-accessibility-checklist:qti3-wcag22",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "registry_version": {
            "const": "2026.09.01",
            "default": "2026.09.01",
            "title": "Registry Version",
            "type": "string"
          },
          "required_preview_kinds": {
            "items": {
              "enum": [
                "locale_bidi",
                "screen_reader",
                "keyboard",
                "zoom_200",
                "zoom_400",
                "theme_light",
                "theme_dark",
                "viewport_320",
                "reduced_motion",
                "accommodation"
              ],
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 10,
            "title": "Required Preview Kinds",
            "type": "array"
          },
          "requirements": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityChecklistRequirement"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Requirements",
            "type": "array"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "wcag_version": {
            "const": "2.2",
            "default": "2.2",
            "title": "Wcag Version",
            "type": "string"
          }
        },
        "required": ["requirements", "required_preview_kinds", "registry_sha256"],
        "title": "AccessibilityChecklistRegistry",
        "type": "object"
      },
      "AccessibilityChecklistRequirement": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/AccessibilityRequirementApplicability"
          },
          "category": {
            "enum": [
              "structure",
              "interaction",
              "visual",
              "content",
              "media",
              "localization",
              "errors"
            ],
            "title": "Category",
            "type": "string"
          },
          "check_id": {
            "pattern": "^a11y-check:[a-z0-9][a-z0-9.-]{2,127}$",
            "title": "Check Id",
            "type": "string"
          },
          "evidence_requirement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Evidence Requirement",
            "type": "string"
          },
          "mandatory": {
            "title": "Mandatory",
            "type": "boolean"
          },
          "manual_only": {
            "title": "Manual Only",
            "type": "boolean"
          },
          "pnp_support_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Pnp Support Codes",
            "type": "array"
          },
          "qti_metadata_paths": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Qti Metadata Paths",
            "type": "array"
          },
          "remediation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Remediation",
            "type": "string"
          },
          "severity": {
            "enum": ["blocker", "error", "warning"],
            "title": "Severity",
            "type": "string"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "wcag_criteria": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Wcag Criteria",
            "type": "array"
          }
        },
        "required": [
          "check_id",
          "title",
          "category",
          "applicability",
          "wcag_criteria",
          "qti_metadata_paths",
          "severity",
          "mandatory",
          "manual_only",
          "evidence_requirement",
          "remediation"
        ],
        "title": "AccessibilityChecklistRequirement",
        "type": "object"
      },
      "AccessibilityChecklistResult": {
        "additionalProperties": false,
        "properties": {
          "check_id": {
            "title": "Check Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "title": "Evidence",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "mandatory": {
            "title": "Mandatory",
            "type": "boolean"
          },
          "manual": {
            "title": "Manual",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["pass", "fail", "missing"],
            "title": "Outcome",
            "type": "string"
          },
          "severity": {
            "enum": ["blocker", "error", "warning"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "check_id",
          "locale",
          "outcome",
          "manual",
          "severity",
          "mandatory",
          "evidence"
        ],
        "title": "AccessibilityChecklistResult",
        "type": "object"
      },
      "AccessibilityCompletenessActor": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "AccessibilityCompletenessActor",
        "type": "object"
      },
      "AccessibilityCompletenessAssessmentContent": {
        "additionalProperties": false,
        "properties": {
          "alternative_assets": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityAlternativeAssetReceipt"
            },
            "title": "Alternative Assets",
            "type": "array"
          },
          "cell_evidence": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCompletenessCellEvidence"
            },
            "minItems": 1,
            "title": "Cell Evidence",
            "type": "array"
          },
          "coverage": {
            "$ref": "#/components/schemas/AccessibilityCompletenessCoverage"
          },
          "live_isis_authority_verified": {
            "const": false,
            "default": false,
            "title": "Live Isis Authority Verified",
            "type": "boolean"
          },
          "matrix": {
            "$ref": "#/components/schemas/AccessibilityApplicabilityMatrix"
          },
          "policy": {
            "$ref": "#/components/schemas/AccessibilityCompletenessPolicy"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCompletenessFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "schema_version": {
            "const": "5.7.0",
            "default": "5.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/AccessibilityCompletenessSource"
          },
          "verdict": {
            "enum": ["clear", "blocked", "incomplete"],
            "title": "Verdict",
            "type": "string"
          },
          "witnesses": {
            "$ref": "#/components/schemas/AccessibilityCompletenessWitnesses"
          }
        },
        "required": [
          "source",
          "policy",
          "matrix",
          "cell_evidence",
          "alternative_assets",
          "raw_findings",
          "coverage",
          "verdict",
          "witnesses"
        ],
        "title": "AccessibilityCompletenessAssessmentContent",
        "type": "object"
      },
      "AccessibilityCompletenessAssessmentRequest": {
        "additionalProperties": false,
        "properties": {
          "alternative_assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AccessibilityAlternativeAssetReceipt"
            },
            "maxItems": 10000,
            "title": "Alternative Assets",
            "type": "array"
          },
          "cell_evidence": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCompletenessCellEvidence"
            },
            "minItems": 1,
            "title": "Cell Evidence",
            "type": "array"
          },
          "expected_assessment_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Assessment Revision"
          },
          "expected_assessment_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Assessment Revision Sha256"
          },
          "expected_item_revision": {
            "minimum": 1.0,
            "title": "Expected Item Revision",
            "type": "integer"
          },
          "expected_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Item Revision Sha256",
            "type": "string"
          },
          "expected_matrix_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Matrix Sha256",
            "type": "string"
          },
          "expected_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/AccessibilityCompletenessPolicy"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_item_revision",
          "expected_item_revision_sha256",
          "expected_source_sha256",
          "expected_matrix_sha256",
          "reason",
          "policy",
          "cell_evidence"
        ],
        "title": "AccessibilityCompletenessAssessmentRequest",
        "type": "object"
      },
      "AccessibilityCompletenessAssessmentResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AccessibilityCompletenessActor"
          },
          "assessment_id": {
            "pattern": "^accessibility-completeness-assessment-[a-f0-9]{40}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AccessibilityCompletenessAssessmentContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.7.0",
            "default": "5.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "draft_id",
          "tenant_id",
          "revision",
          "content",
          "content_sha256",
          "actor",
          "reason",
          "idempotency_key",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AccessibilityCompletenessAssessmentResponse",
        "type": "object"
      },
      "AccessibilityCompletenessCellEvidence": {
        "additionalProperties": false,
        "properties": {
          "cell_id": {
            "pattern": "^a11y-completeness-cell:[a-f0-9]{40}$",
            "title": "Cell Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "method": {
            "enum": [
              "baseline_audit",
              "runtime_probe",
              "document_inspection",
              "human_review",
              "policy_resolution"
            ],
            "title": "Method",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail", "manual_pass", "manual_fail", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "rationale": {
            "maxLength": 10000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "reviewer_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Id"
          }
        },
        "required": ["cell_id", "outcome", "method", "evidence", "rationale"],
        "title": "AccessibilityCompletenessCellEvidence",
        "type": "object"
      },
      "AccessibilityCompletenessCoverage": {
        "additionalProperties": false,
        "properties": {
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "evidenced_cell_count": {
            "minimum": 0.0,
            "title": "Evidenced Cell Count",
            "type": "integer"
          },
          "evidenced_not_applicable_cell_count": {
            "minimum": 0.0,
            "title": "Evidenced Not Applicable Cell Count",
            "type": "integer"
          },
          "not_applicable_cell_count": {
            "minimum": 0.0,
            "title": "Not Applicable Cell Count",
            "type": "integer"
          },
          "passed_required_cell_count": {
            "minimum": 0.0,
            "title": "Passed Required Cell Count",
            "type": "integer"
          },
          "required_alternative_asset_count": {
            "minimum": 0.0,
            "title": "Required Alternative Asset Count",
            "type": "integer"
          },
          "required_cell_count": {
            "minimum": 0.0,
            "title": "Required Cell Count",
            "type": "integer"
          },
          "total_cell_count": {
            "minimum": 1.0,
            "title": "Total Cell Count",
            "type": "integer"
          },
          "valid_alternative_asset_count": {
            "minimum": 0.0,
            "title": "Valid Alternative Asset Count",
            "type": "integer"
          }
        },
        "required": [
          "total_cell_count",
          "required_cell_count",
          "not_applicable_cell_count",
          "evidenced_cell_count",
          "passed_required_cell_count",
          "evidenced_not_applicable_cell_count",
          "required_alternative_asset_count",
          "valid_alternative_asset_count",
          "complete"
        ],
        "title": "AccessibilityCompletenessCoverage",
        "type": "object"
      },
      "AccessibilityCompletenessFinding": {
        "additionalProperties": false,
        "properties": {
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asset Id"
          },
          "cell_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cell Id"
          },
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^a11y-completeness-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "baseline_audit_missing",
              "baseline_audit_stale",
              "baseline_audit_blocked",
              "baseline_gate_missing",
              "baseline_gate_stale",
              "baseline_gate_blocked",
              "requirement_evidence_missing",
              "requirement_failed",
              "manual_review_failed",
              "alternative_asset_missing",
              "alternative_revision_stale",
              "alternative_locale_mismatch",
              "alternative_sync_failed",
              "alternative_rights_failed",
              "alternative_unavailable",
              "outcome_equivalence_failed"
            ],
            "title": "Kind",
            "type": "string"
          },
          "message": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "requirement_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requirement Id"
          },
          "severity": {
            "const": "blocker",
            "default": "blocker",
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["finding_id", "kind", "message"],
        "title": "AccessibilityCompletenessFinding",
        "type": "object"
      },
      "AccessibilityCompletenessFreshness": {
        "additionalProperties": false,
        "properties": {
          "assessment_current": {
            "title": "Assessment Current",
            "type": "boolean"
          },
          "gate_current": {
            "title": "Gate Current",
            "type": "boolean"
          },
          "matrix_current": {
            "title": "Matrix Current",
            "type": "boolean"
          },
          "mutation_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Mutation Reasons",
            "type": "array"
          },
          "policy_current": {
            "title": "Policy Current",
            "type": "boolean"
          },
          "source_current": {
            "title": "Source Current",
            "type": "boolean"
          }
        },
        "required": [
          "source_current",
          "policy_current",
          "matrix_current",
          "assessment_current",
          "gate_current",
          "mutation_reasons"
        ],
        "title": "AccessibilityCompletenessFreshness",
        "type": "object"
      },
      "AccessibilityCompletenessGateContent": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_revision": {
            "minimum": 1.0,
            "title": "Assessment Revision",
            "type": "integer"
          },
          "assessment_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Assessment Revision Sha256",
            "type": "string"
          },
          "blocker_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Blocker Finding Ids",
            "type": "array"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "matrix_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Matrix Sha256",
            "type": "string"
          },
          "mutation_reasons": {
            "items": {
              "enum": [
                "item_revision_changed",
                "baseline_audit_changed",
                "baseline_gate_changed",
                "policy_changed",
                "matrix_changed"
              ],
              "type": "string"
            },
            "title": "Mutation Reasons",
            "type": "array"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "publication_allowed": {
            "title": "Publication Allowed",
            "type": "boolean"
          },
          "schema_version": {
            "const": "5.7.0",
            "default": "5.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "assessment_revision",
          "assessment_revision_sha256",
          "item_revision_sha256",
          "policy_sha256",
          "matrix_sha256",
          "status",
          "publication_allowed",
          "blocker_finding_ids",
          "mutation_reasons"
        ],
        "title": "AccessibilityCompletenessGateContent",
        "type": "object"
      },
      "AccessibilityCompletenessGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_assessment_revision": {
            "minimum": 1.0,
            "title": "Expected Assessment Revision",
            "type": "integer"
          },
          "expected_assessment_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Assessment Revision Sha256",
            "type": "string"
          },
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_item_revision": {
            "minimum": 1.0,
            "title": "Expected Item Revision",
            "type": "integer"
          },
          "expected_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Item Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_assessment_revision",
          "expected_assessment_revision_sha256",
          "expected_item_revision",
          "expected_item_revision_sha256",
          "reason"
        ],
        "title": "AccessibilityCompletenessGateRequest",
        "type": "object"
      },
      "AccessibilityCompletenessGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/AccessibilityCompletenessActor"
          },
          "content": {
            "$ref": "#/components/schemas/AccessibilityCompletenessGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^accessibility-completeness-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.7.0",
            "default": "5.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "draft_id",
          "tenant_id",
          "revision",
          "content",
          "content_sha256",
          "actor",
          "reason",
          "idempotency_key",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AccessibilityCompletenessGateResponse",
        "type": "object"
      },
      "AccessibilityCompletenessHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCompletenessAssessmentResponse"
            },
            "title": "Assessments",
            "type": "array"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCompletenessGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "schema_version": {
            "const": "5.7.0",
            "default": "5.7.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "assessments", "gates"],
        "title": "AccessibilityCompletenessHistoryResponse",
        "type": "object"
      },
      "AccessibilityCompletenessPnpProfile": {
        "additionalProperties": false,
        "properties": {
          "profile_id": {
            "pattern": "^pnp:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Profile Id",
            "type": "string"
          },
          "profile_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Profile Version",
            "type": "string"
          },
          "support_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Support Codes",
            "type": "array"
          }
        },
        "required": ["profile_id", "profile_version"],
        "title": "AccessibilityCompletenessPnpProfile",
        "type": "object"
      },
      "AccessibilityCompletenessPolicy": {
        "additionalProperties": false,
        "properties": {
          "all_authored_locales_required": {
            "const": true,
            "default": true,
            "title": "All Authored Locales Required",
            "type": "boolean"
          },
          "evidence_required_for_manual_review": {
            "const": true,
            "default": true,
            "title": "Evidence Required For Manual Review",
            "type": "boolean"
          },
          "evidence_required_for_not_applicable": {
            "const": true,
            "default": true,
            "title": "Evidence Required For Not Applicable",
            "type": "boolean"
          },
          "locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "maximum_sync_offset_ms": {
            "maximum": 5000.0,
            "minimum": 0.0,
            "title": "Maximum Sync Offset Ms",
            "type": "integer"
          },
          "pnp_profiles": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCompletenessPnpProfile"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Pnp Profiles",
            "type": "array"
          },
          "policy_id": {
            "const": "metis.accessibility-completeness",
            "default": "metis.accessibility-completeness",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Policy Version",
            "type": "string"
          },
          "targets": {
            "items": {
              "enum": ["learner-web", "learner-mobile", "lms-qti", "print"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": [
          "targets",
          "locales",
          "pnp_profiles",
          "maximum_sync_offset_ms",
          "policy_sha256"
        ],
        "title": "AccessibilityCompletenessPolicy",
        "type": "object"
      },
      "AccessibilityCompletenessPolicyInput": {
        "additionalProperties": false,
        "properties": {
          "pnp_profiles": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCompletenessPnpProfile"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Pnp Profiles",
            "type": "array"
          },
          "targets": {
            "items": {
              "enum": ["learner-web", "learner-mobile", "lms-qti", "print"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": ["targets", "pnp_profiles"],
        "title": "AccessibilityCompletenessPolicyInput",
        "type": "object"
      },
      "AccessibilityCompletenessPreparationRequest": {
        "additionalProperties": false,
        "properties": {
          "policy_input": {
            "$ref": "#/components/schemas/AccessibilityCompletenessPolicyInput"
          }
        },
        "required": ["policy_input"],
        "title": "AccessibilityCompletenessPreparationRequest",
        "type": "object"
      },
      "AccessibilityCompletenessPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "current_assessment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AccessibilityCompletenessAssessmentResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AccessibilityCompletenessGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/AccessibilityCompletenessFreshness"
          },
          "matrix": {
            "$ref": "#/components/schemas/AccessibilityApplicabilityMatrix"
          },
          "policy": {
            "$ref": "#/components/schemas/AccessibilityCompletenessPolicy"
          },
          "schema_version": {
            "const": "5.7.0",
            "default": "5.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/AccessibilityCompletenessSource"
          }
        },
        "required": ["source", "policy", "matrix", "freshness"],
        "title": "AccessibilityCompletenessPreparationResponse",
        "type": "object"
      },
      "AccessibilityCompletenessSource": {
        "additionalProperties": false,
        "properties": {
          "baseline_audit_current": {
            "title": "Baseline Audit Current",
            "type": "boolean"
          },
          "baseline_audit_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Audit Revision"
          },
          "baseline_audit_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Audit Revision Sha256"
          },
          "baseline_audit_verdict": {
            "anyOf": [
              {
                "enum": ["clear", "blocked", "incomplete"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Audit Verdict"
          },
          "baseline_gate_current": {
            "title": "Baseline Gate Current",
            "type": "boolean"
          },
          "baseline_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Gate Revision"
          },
          "baseline_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Gate Revision Sha256"
          },
          "baseline_gate_status": {
            "anyOf": [
              {
                "enum": ["pass", "blocked"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Gate Status"
          },
          "checklist_registry": {
            "$ref": "#/components/schemas/AccessibilityChecklistRegistry"
          },
          "item": {
            "$ref": "#/components/schemas/ItemAccessibilitySourceSnapshot"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "item",
          "checklist_registry",
          "baseline_audit_current",
          "baseline_gate_current",
          "source_sha256"
        ],
        "title": "AccessibilityCompletenessSource",
        "type": "object"
      },
      "AccessibilityCompletenessWitnesses": {
        "additionalProperties": false,
        "properties": {
          "alternative_assets_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Alternative Assets Sha256",
            "type": "string"
          },
          "cell_evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Cell Evidence Sha256",
            "type": "string"
          },
          "matrix_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Matrix Sha256",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "source_sha256",
          "policy_sha256",
          "matrix_sha256",
          "cell_evidence_sha256",
          "alternative_assets_sha256"
        ],
        "title": "AccessibilityCompletenessWitnesses",
        "type": "object"
      },
      "AccessibilityFinding": {
        "additionalProperties": false,
        "properties": {
          "check_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Check Id"
          },
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^a11y-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "check_failed",
              "check_missing",
              "automation_case_failed",
              "automation_case_missing",
              "manual_review_failed",
              "manual_review_missing",
              "support_degraded",
              "support_unsupported",
              "support_missing"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "anyOf": [
              {
                "maxLength": 63,
                "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale"
          },
          "message": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "preview_kind": {
            "anyOf": [
              {
                "enum": [
                  "locale_bidi",
                  "screen_reader",
                  "keyboard",
                  "zoom_200",
                  "zoom_400",
                  "theme_light",
                  "theme_dark",
                  "viewport_320",
                  "reduced_motion",
                  "accommodation"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preview Kind"
          },
          "severity": {
            "enum": ["blocker", "error", "warning"],
            "title": "Severity",
            "type": "string"
          },
          "support_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Support Code"
          }
        },
        "required": ["finding_id", "kind", "severity", "message"],
        "title": "AccessibilityFinding",
        "type": "object"
      },
      "AccessibilityLocaleDirection": {
        "additionalProperties": false,
        "properties": {
          "base_direction": {
            "enum": ["ltr", "rtl"],
            "title": "Base Direction",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          }
        },
        "required": ["locale", "base_direction"],
        "title": "AccessibilityLocaleDirection",
        "type": "object"
      },
      "AccessibilityManualReview": {
        "additionalProperties": false,
        "properties": {
          "check_id": {
            "pattern": "^a11y-check:[a-z0-9][a-z0-9.-]{2,127}$",
            "title": "Check Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail"],
            "title": "Outcome",
            "type": "string"
          },
          "rationale": {
            "maxLength": 10000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "review_id": {
            "pattern": "^a11y-manual-review:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "check_id",
          "locale",
          "outcome",
          "reviewer_id",
          "reviewed_at",
          "evidence",
          "rationale"
        ],
        "title": "AccessibilityManualReview",
        "type": "object"
      },
      "AccessibilityPolicy": {
        "additionalProperties": false,
        "properties": {
          "max_reading_grade": {
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Max Reading Grade",
            "type": "number"
          },
          "max_sentence_words": {
            "maximum": 120.0,
            "minimum": 5.0,
            "title": "Max Sentence Words",
            "type": "integer"
          },
          "require_text_alternative_for_media": {
            "title": "Require Text Alternative For Media",
            "type": "boolean"
          }
        },
        "required": [
          "max_reading_grade",
          "max_sentence_words",
          "require_text_alternative_for_media"
        ],
        "title": "AccessibilityPolicy",
        "type": "object"
      },
      "AccessibilityProfile": {
        "additionalProperties": false,
        "properties": {
          "headings_labelled": {
            "const": true,
            "default": true,
            "title": "Headings Labelled",
            "type": "boolean"
          },
          "plain_language": {
            "const": true,
            "default": true,
            "title": "Plain Language",
            "type": "boolean"
          },
          "reading_order": {
            "items": {
              "enum": [
                "allegation",
                "policy",
                "evidence",
                "decision",
                "consequence",
                "appeal_rights",
                "support"
              ],
              "type": "string"
            },
            "title": "Reading Order",
            "type": "array"
          },
          "text_direction": {
            "enum": ["ltr", "rtl"],
            "title": "Text Direction",
            "type": "string"
          }
        },
        "required": ["text_direction", "reading_order"],
        "title": "AccessibilityProfile",
        "type": "object"
      },
      "AccessibilityRequirementApplicability": {
        "additionalProperties": false,
        "properties": {
          "all_items": {
            "default": false,
            "title": "All Items",
            "type": "boolean"
          },
          "interaction_kinds": {
            "default": [],
            "items": {
              "enum": [
                "choice",
                "ordering",
                "matching",
                "text_entry",
                "upload",
                "hotspot",
                "timeline",
                "drag_drop",
                "manipulation",
                "branch",
                "simulation_control"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "title": "Interaction Kinds",
            "type": "array"
          },
          "item_kinds": {
            "default": [],
            "items": {
              "enum": [
                "assessment-kind:single-choice",
                "assessment-kind:multiple-choice",
                "assessment-kind:ordering",
                "assessment-kind:matching",
                "assessment-kind:hotspot",
                "assessment-kind:constructed-response",
                "assessment-kind:essay",
                "assessment-kind:math",
                "assessment-kind:code",
                "assessment-kind:media",
                "assessment-kind:simulation",
                "assessment-kind:interaction",
                "assessment-kind:portfolio",
                "assessment-kind:oral-performance",
                "assessment-kind:performance"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "title": "Item Kinds",
            "type": "array"
          },
          "media_kinds": {
            "default": [],
            "items": {
              "enum": [
                "image",
                "math",
                "code",
                "table",
                "chart",
                "audio",
                "video",
                "model_3d",
                "stimulus"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "title": "Media Kinds",
            "type": "array"
          }
        },
        "title": "AccessibilityRequirementApplicability",
        "type": "object"
      },
      "AccessibilitySupportMapping": {
        "additionalProperties": false,
        "properties": {
          "disposition": {
            "enum": ["supported", "degraded", "unsupported"],
            "title": "Disposition",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "qti_content_paths": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Qti Content Paths",
            "type": "array"
          },
          "qti_metadata_paths": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Qti Metadata Paths",
            "type": "array"
          },
          "rationale": {
            "maxLength": 10000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "support_code": {
            "pattern": "^support:[a-z0-9][a-z0-9.-]{2,127}$",
            "title": "Support Code",
            "type": "string"
          }
        },
        "required": ["support_code", "disposition", "evidence", "rationale"],
        "title": "AccessibilitySupportMapping",
        "type": "object"
      },
      "AccessibilityToolIdentity": {
        "additionalProperties": false,
        "properties": {
          "configuration_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Configuration Sha256",
            "type": "string"
          },
          "tool_id": {
            "pattern": "^a11y-tool:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Tool Id",
            "type": "string"
          },
          "tool_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Tool Sha256",
            "type": "string"
          },
          "tool_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Tool Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "tool_version", "tool_sha256", "configuration_sha256"],
        "title": "AccessibilityToolIdentity",
        "type": "object"
      },
      "Accommodation": {
        "additionalProperties": false,
        "properties": {
          "accommodation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Accommodation Id",
            "type": "string"
          },
          "added_days": {
            "anyOf": [
              {
                "maximum": 365.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Added Days"
          },
          "kind": {
            "enum": [
              "extended_time",
              "reduced_weekly_load",
              "deferred_start",
              "alternate_deadline"
            ],
            "title": "Kind",
            "type": "string"
          },
          "multiplier_basis_points": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 10000.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Multiplier Basis Points"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["accommodation_id", "kind", "rationale"],
        "title": "Accommodation",
        "type": "object"
      },
      "AccommodationDecision": {
        "additionalProperties": false,
        "properties": {
          "evidence": {
            "title": "Evidence",
            "type": "string"
          },
          "feature": {
            "title": "Feature",
            "type": "string"
          },
          "status": {
            "enum": ["applied", "supported", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["feature", "status", "evidence"],
        "title": "AccommodationDecision",
        "type": "object"
      },
      "AccommodationGrant": {
        "additionalProperties": false,
        "properties": {
          "accommodation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Accommodation Id",
            "type": "string"
          },
          "granted_at": {
            "format": "date-time",
            "title": "Granted At",
            "type": "string"
          },
          "support_id": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Support Id",
            "type": "string"
          }
        },
        "required": ["accommodation_id", "support_id", "granted_at"],
        "title": "AccommodationGrant",
        "type": "object"
      },
      "AccommodationPreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "bandwidth": {
            "enum": ["online", "low", "offline"],
            "title": "Bandwidth",
            "type": "string"
          },
          "contrast": {
            "enum": ["standard", "high"],
            "title": "Contrast",
            "type": "string"
          },
          "device": {
            "enum": ["desktop", "tablet", "mobile"],
            "title": "Device",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "input_mode": {
            "enum": ["keyboard", "pointer", "touch", "switch"],
            "title": "Input Mode",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_mode": {
            "enum": ["default", "captions", "transcript", "audio_description", "sign_language"],
            "title": "Media Mode",
            "type": "string"
          },
          "motion": {
            "enum": ["full", "reduced"],
            "title": "Motion",
            "type": "string"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "locale",
          "device",
          "input_mode",
          "motion",
          "contrast",
          "media_mode",
          "bandwidth"
        ],
        "title": "AccommodationPreviewRequest",
        "type": "object"
      },
      "AchievementResponse": {
        "description": "Achievement data returned in API responses.",
        "properties": {
          "achievement_type": {
            "title": "Achievement Type",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "earned_at": {
            "format": "date-time",
            "title": "Earned At",
            "type": "string"
          },
          "icon_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Icon Url"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "metadata_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata Json"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "points": {
            "title": "Points",
            "type": "integer"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "user_id": {
            "format": "uuid",
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "achievement_type",
          "name",
          "points",
          "earned_at",
          "user_id",
          "created_at",
          "updated_at"
        ],
        "title": "AchievementResponse",
        "type": "object"
      },
      "ActionAnswer": {
        "additionalProperties": false,
        "description": "Whether one action is offered in one state.",
        "properties": {
          "action": {
            "enum": ["read", "mutate", "retry", "refresh", "merge", "request_access", "contact"],
            "title": "Action",
            "type": "string"
          },
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "state": {
            "enum": [
              "ready",
              "loading",
              "empty",
              "unauthorized",
              "stale",
              "offline",
              "conflict",
              "not_configured",
              "degraded",
              "failed"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["state", "action", "allowed", "reason"],
        "title": "ActionAnswer",
        "type": "object"
      },
      "ActionRecord": {
        "additionalProperties": false,
        "properties": {
          "acted_at": {
            "format": "date-time",
            "title": "Acted At",
            "type": "string"
          },
          "acted_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Acted By Digest",
            "type": "string"
          },
          "action_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Action Id",
            "type": "string"
          },
          "carries_effect": {
            "const": false,
            "default": false,
            "title": "Carries Effect",
            "type": "boolean"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "state_after": {
            "enum": [
              "new",
              "under_review",
              "evidence_requested",
              "dismissed",
              "escalated",
              "case_opened"
            ],
            "title": "State After",
            "type": "string"
          },
          "state_before": {
            "enum": [
              "new",
              "under_review",
              "evidence_requested",
              "dismissed",
              "escalated",
              "case_opened"
            ],
            "title": "State Before",
            "type": "string"
          },
          "verb": {
            "enum": ["request_evidence", "dismiss", "escalate", "open_case"],
            "title": "Verb",
            "type": "string"
          },
          "version_after": {
            "minimum": 1.0,
            "title": "Version After",
            "type": "integer"
          },
          "version_before": {
            "minimum": 1.0,
            "title": "Version Before",
            "type": "integer"
          }
        },
        "required": [
          "action_id",
          "signal_id",
          "verb",
          "reason",
          "acted_by_digest",
          "acted_at",
          "expected_version",
          "version_before",
          "version_after",
          "state_before",
          "state_after"
        ],
        "title": "ActionRecord",
        "type": "object"
      },
      "ActivateRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "candidate": {
            "$ref": "#/components/schemas/OverlayVersion"
          },
          "current": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/OverlayVersion"
            },
            "maxItems": 100,
            "title": "Current",
            "type": "array"
          },
          "inventory": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InventoryItem"
            },
            "maxItems": 1000,
            "title": "Inventory",
            "type": "array"
          },
          "preview": {
            "$ref": "#/components/schemas/OverlayImpactPreview"
          }
        },
        "required": ["candidate", "preview"],
        "title": "ActivateRequest",
        "type": "object"
      },
      "ActivateResponse": {
        "additionalProperties": false,
        "properties": {
          "activated": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OverlayVersion"
              },
              {
                "type": "null"
              }
            ]
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ActivationRefusal"
            },
            "title": "Refusals",
            "type": "array"
          }
        },
        "title": "ActivateResponse",
        "type": "object"
      },
      "ActivationApproval": {
        "additionalProperties": false,
        "description": "Somebody other than the proposer, having seen the impact, says go.",
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approver_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Approver Digest",
            "type": "string"
          },
          "approver_role": {
            "enum": ["institution_admin", "platform_admin"],
            "title": "Approver Role",
            "type": "string"
          },
          "impact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Impact Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "approver_digest",
          "approver_role",
          "approved_at",
          "impact_sha256",
          "rationale"
        ],
        "title": "ActivationApproval",
        "type": "object"
      },
      "ActivationBlocker": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "overlay.activation.lifecycle-not-approved",
              "overlay.activation.no-approved-review",
              "overlay.activation.review-pins-a-different-version",
              "overlay.activation.reviewer-is-the-owner",
              "overlay.activation.weakens-a-protected-floor",
              "overlay.activation.loosens-a-broader-scope",
              "overlay.activation.protected-family-has-no-platform-floor",
              "overlay.activation.impact-preview-missing",
              "overlay.activation.impact-preview-discloses-a-small-cell"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          }
        },
        "required": ["code", "detail"],
        "title": "ActivationBlocker",
        "type": "object"
      },
      "ActivationDecision": {
        "additionalProperties": false,
        "properties": {
          "activatable": {
            "title": "Activatable",
            "type": "boolean"
          },
          "blockers": {
            "items": {
              "$ref": "#/components/schemas/ActivationBlocker"
            },
            "maxItems": 32,
            "title": "Blockers",
            "type": "array"
          },
          "impact_preview_present": {
            "title": "Impact Preview Present",
            "type": "boolean"
          },
          "review_pins_this_revision": {
            "title": "Review Pins This Revision",
            "type": "boolean"
          },
          "review_present": {
            "title": "Review Present",
            "type": "boolean"
          },
          "reviewer_distinct_from_owner": {
            "title": "Reviewer Distinct From Owner",
            "type": "boolean"
          },
          "state": {
            "enum": ["activatable", "blocked"],
            "title": "State",
            "type": "string"
          },
          "subject_overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Overlay Id",
            "type": "string"
          }
        },
        "required": [
          "subject_overlay_id",
          "state",
          "activatable",
          "blockers",
          "review_present",
          "review_pins_this_revision",
          "reviewer_distinct_from_owner",
          "impact_preview_present"
        ],
        "title": "ActivationDecision",
        "type": "object"
      },
      "ActivationRefusal": {
        "additionalProperties": false,
        "properties": {
          "conflict_keys": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Conflict Keys",
            "type": "array"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "not_reviewed",
              "impact_not_the_one_approved",
              "wrong_status",
              "effective_in_the_past",
              "resolution_conflicts"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "ActivationRefusal",
        "type": "object"
      },
      "Actor": {
        "additionalProperties": false,
        "properties": {
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "role": {
            "enum": [
              "learner",
              "representative",
              "detector_owner",
              "reviewer",
              "decider",
              "appeal_decider",
              "integrity_lead",
              "forensic_examiner",
              "system"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["digest", "role"],
        "title": "Actor",
        "type": "object"
      },
      "ActorProbe": {
        "additionalProperties": false,
        "description": "One attempt by one kind of actor, and what stopped it.",
        "properties": {
          "actor_kind": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Actor Kind",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "enum": [
                  "actor_is_not_human",
                  "actor_is_delegated",
                  "actor_is_impersonated",
                  "not_interactive",
                  "step_up_required",
                  "role_not_eligible",
                  "conflict_not_declared",
                  "conflict_declared",
                  "subject_changed",
                  "evidence_changed",
                  "gate_expired",
                  "already_signed",
                  "quorum_not_met",
                  "signoff_copied",
                  "gate_policy_changed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "signoff_constructible": {
            "title": "Signoff Constructible",
            "type": "boolean"
          }
        },
        "required": ["actor_kind", "refused", "signoff_constructible"],
        "title": "ActorProbe",
        "type": "object"
      },
      "AdaptationParityReviewResponse": {
        "description": "Assessment adaptation parity review result.",
        "properties": {
          "cohort_dimension": {
            "title": "Cohort Dimension",
            "type": "string"
          },
          "comparison_group": {
            "title": "Comparison Group",
            "type": "string"
          },
          "flagged": {
            "title": "Flagged",
            "type": "boolean"
          },
          "matched_sample_size": {
            "minimum": 0.0,
            "title": "Matched Sample Size",
            "type": "integer"
          },
          "punitive_intensity_gap": {
            "title": "Punitive Intensity Gap",
            "type": "number"
          },
          "reference_group": {
            "title": "Reference Group",
            "type": "string"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "strict_action_agreement": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Strict Action Agreement",
            "type": "number"
          },
          "support_intensity_gap": {
            "title": "Support Intensity Gap",
            "type": "number"
          }
        },
        "required": [
          "cohort_dimension",
          "reference_group",
          "comparison_group",
          "matched_sample_size",
          "strict_action_agreement",
          "support_intensity_gap",
          "punitive_intensity_gap",
          "severity",
          "flagged"
        ],
        "title": "AdaptationParityReviewResponse",
        "type": "object"
      },
      "AdaptiveLatencyProjection": {
        "additionalProperties": false,
        "properties": {
          "assessment": {
            "$ref": "#/components/schemas/AdaptiveLatencyResponse"
          },
          "spec_current": {
            "title": "Spec Current",
            "type": "boolean"
          }
        },
        "required": ["assessment", "spec_current"],
        "title": "AdaptiveLatencyProjection",
        "type": "object"
      },
      "AdaptiveLatencyRequest": {
        "additionalProperties": false,
        "properties": {
          "bounds": {
            "$ref": "#/components/schemas/WorkBounds"
          },
          "budget": {
            "$ref": "#/components/schemas/LatencyBudgetSpec"
          },
          "cold_cache": {
            "title": "Cold Cache",
            "type": "boolean"
          },
          "concurrency": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Concurrency",
            "type": "integer"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "measure_live_decisions": {
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "Measure Live Decisions",
            "type": "integer"
          },
          "samples": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LatencySample"
            },
            "maxItems": 100000,
            "title": "Samples",
            "type": "array"
          },
          "schema_version": {
            "const": "6.6.0",
            "default": "6.6.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "budget",
          "bounds",
          "concurrency",
          "cold_cache",
          "measure_live_decisions"
        ],
        "title": "AdaptiveLatencyRequest",
        "type": "object"
      },
      "AdaptiveLatencyResponse": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "bounds": {
            "$ref": "#/components/schemas/WorkBounds"
          },
          "budget": {
            "$ref": "#/components/schemas/LatencyBudgetSpec"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/NextItemDecision"
            },
            "maxItems": 200,
            "title": "Decisions",
            "type": "array"
          },
          "engine": {
            "$ref": "#/components/schemas/LatencyEngineWitness"
          },
          "gate": {
            "$ref": "#/components/schemas/HealthGate"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "measured_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Measured By",
            "type": "string"
          },
          "profile": {
            "$ref": "#/components/schemas/LatencyProfile"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.6.0",
            "default": "6.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "idempotency_key",
          "budget",
          "bounds",
          "profile",
          "gate",
          "decisions",
          "engine",
          "request_sha256",
          "measured_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "AdaptiveLatencyResponse",
        "type": "object"
      },
      "AdaptiveLatencyWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/AdaptiveLatencyProjection"
            },
            "title": "Assessments",
            "type": "array"
          },
          "evaluation": {
            "$ref": "#/components/schemas/LatencyEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.6.0",
            "default": "6.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/LatencyWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "assessments"],
        "title": "AdaptiveLatencyWorkspaceResponse",
        "type": "object"
      },
      "AdaptivePracticeRecommendationResponse": {
        "description": "Targeted practice guidance derived from live learner signals.",
        "properties": {
          "action_label": {
            "title": "Action Label",
            "type": "string"
          },
          "action_path": {
            "title": "Action Path",
            "type": "string"
          },
          "assessment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lesson_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "lesson_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Title"
          },
          "practice_type": {
            "title": "Practice Type",
            "type": "string"
          },
          "priority": {
            "title": "Priority",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "recommended_session_minutes": {
            "minimum": 1.0,
            "title": "Recommended Session Minutes",
            "type": "integer"
          },
          "source_signals": {
            "items": {
              "type": "string"
            },
            "title": "Source Signals",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          }
        },
        "required": [
          "id",
          "practice_type",
          "priority",
          "title",
          "description",
          "rationale",
          "topic",
          "action_path",
          "action_label",
          "recommended_session_minutes"
        ],
        "title": "AdaptivePracticeRecommendationResponse",
        "type": "object"
      },
      "AdaptiveSequenceRecommendationResponse": {
        "description": "Adaptive sequencing guidance derived from mastery and prerequisite state.",
        "properties": {
          "action_label": {
            "title": "Action Label",
            "type": "string"
          },
          "action_path": {
            "title": "Action Path",
            "type": "string"
          },
          "assessment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lesson_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "lesson_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Title"
          },
          "priority": {
            "title": "Priority",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "recommendation_type": {
            "title": "Recommendation Type",
            "type": "string"
          },
          "recommended_session_minutes": {
            "minimum": 1.0,
            "title": "Recommended Session Minutes",
            "type": "integer"
          },
          "source_signals": {
            "items": {
              "type": "string"
            },
            "title": "Source Signals",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          }
        },
        "required": [
          "id",
          "recommendation_type",
          "priority",
          "title",
          "description",
          "rationale",
          "topic",
          "action_path",
          "action_label",
          "recommended_session_minutes"
        ],
        "title": "AdaptiveSequenceRecommendationResponse",
        "type": "object"
      },
      "AdminAnalyticsAssessmentStatsResponse": {
        "properties": {
          "avg_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Avg Score",
            "type": "number"
          },
          "hardest_topic": {
            "title": "Hardest Topic",
            "type": "string"
          },
          "pass_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Pass Rate",
            "type": "number"
          },
          "total_attempts": {
            "minimum": 0.0,
            "title": "Total Attempts",
            "type": "integer"
          }
        },
        "required": ["avg_score", "pass_rate", "total_attempts", "hardest_topic"],
        "title": "AdminAnalyticsAssessmentStatsResponse",
        "type": "object"
      },
      "AdminAnalyticsCohortMasteryResponse": {
        "properties": {
          "cohort": {
            "title": "Cohort",
            "type": "string"
          },
          "cohort_id": {
            "title": "Cohort Id",
            "type": "string"
          },
          "learner_count": {
            "minimum": 0.0,
            "title": "Learner Count",
            "type": "integer"
          },
          "skills": {
            "items": {
              "$ref": "#/components/schemas/AdminAnalyticsCohortMasterySkillResponse"
            },
            "title": "Skills",
            "type": "array"
          }
        },
        "required": ["cohort_id", "cohort", "learner_count"],
        "title": "AdminAnalyticsCohortMasteryResponse",
        "type": "object"
      },
      "AdminAnalyticsCohortMasterySkillResponse": {
        "properties": {
          "at_risk_learners": {
            "minimum": 0.0,
            "title": "At Risk Learners",
            "type": "integer"
          },
          "average_mastery": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Average Mastery",
            "type": "integer"
          },
          "mastered_learners": {
            "minimum": 0.0,
            "title": "Mastered Learners",
            "type": "integer"
          },
          "skill": {
            "title": "Skill",
            "type": "string"
          }
        },
        "required": ["skill", "average_mastery", "mastered_learners", "at_risk_learners"],
        "title": "AdminAnalyticsCohortMasterySkillResponse",
        "type": "object"
      },
      "AdminAnalyticsCoursePerformanceResponse": {
        "properties": {
          "avg_rating": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Avg Rating",
            "type": "number"
          },
          "completion_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Completion Rate",
            "type": "integer"
          },
          "enrollments": {
            "minimum": 0.0,
            "title": "Enrollments",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "revenue": {
            "minimum": 0.0,
            "title": "Revenue",
            "type": "number"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "enrollments", "completion_rate", "avg_rating", "revenue"],
        "title": "AdminAnalyticsCoursePerformanceResponse",
        "type": "object"
      },
      "AdminAnalyticsFeatureUsagePointResponse": {
        "properties": {
          "feature": {
            "title": "Feature",
            "type": "string"
          },
          "sessions": {
            "minimum": 0.0,
            "title": "Sessions",
            "type": "integer"
          },
          "users": {
            "minimum": 0.0,
            "title": "Users",
            "type": "integer"
          }
        },
        "required": ["feature", "users", "sessions"],
        "title": "AdminAnalyticsFeatureUsagePointResponse",
        "type": "object"
      },
      "AdminAnalyticsPlatformMetricsResponse": {
        "properties": {
          "avg_session_duration": {
            "minimum": 0.0,
            "title": "Avg Session Duration",
            "type": "integer"
          },
          "avg_session_duration_trend": {
            "title": "Avg Session Duration Trend",
            "type": "number"
          },
          "dau": {
            "minimum": 0.0,
            "title": "Dau",
            "type": "integer"
          },
          "dau_trend": {
            "title": "Dau Trend",
            "type": "number"
          },
          "mau": {
            "minimum": 0.0,
            "title": "Mau",
            "type": "integer"
          },
          "mau_trend": {
            "title": "Mau Trend",
            "type": "number"
          },
          "wau": {
            "minimum": 0.0,
            "title": "Wau",
            "type": "integer"
          },
          "wau_trend": {
            "title": "Wau Trend",
            "type": "number"
          }
        },
        "required": [
          "dau",
          "dau_trend",
          "wau",
          "wau_trend",
          "mau",
          "mau_trend",
          "avg_session_duration",
          "avg_session_duration_trend"
        ],
        "title": "AdminAnalyticsPlatformMetricsResponse",
        "type": "object"
      },
      "AdminAnalyticsResponse": {
        "properties": {
          "assessment_stats": {
            "$ref": "#/components/schemas/AdminAnalyticsAssessmentStatsResponse"
          },
          "cohort_mastery_heatmap": {
            "items": {
              "$ref": "#/components/schemas/AdminAnalyticsCohortMasteryResponse"
            },
            "title": "Cohort Mastery Heatmap",
            "type": "array"
          },
          "feature_usage": {
            "items": {
              "$ref": "#/components/schemas/AdminAnalyticsFeatureUsagePointResponse"
            },
            "title": "Feature Usage",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "platform_metrics": {
            "$ref": "#/components/schemas/AdminAnalyticsPlatformMetricsResponse"
          },
          "retention_cohorts": {
            "items": {
              "$ref": "#/components/schemas/AdminAnalyticsRetentionCohortResponse"
            },
            "title": "Retention Cohorts",
            "type": "array"
          },
          "revenue_metrics": {
            "$ref": "#/components/schemas/AdminAnalyticsRevenueMetricsResponse"
          },
          "session_distribution": {
            "items": {
              "$ref": "#/components/schemas/AdminAnalyticsSessionDistributionPointResponse"
            },
            "title": "Session Distribution",
            "type": "array"
          },
          "standards_alignment": {
            "items": {
              "$ref": "#/components/schemas/AdminAnalyticsStandardsAlignmentResponse"
            },
            "title": "Standards Alignment",
            "type": "array"
          },
          "top_courses": {
            "items": {
              "$ref": "#/components/schemas/AdminAnalyticsCoursePerformanceResponse"
            },
            "title": "Top Courses",
            "type": "array"
          }
        },
        "required": ["platform_metrics", "revenue_metrics", "assessment_stats", "generated_at"],
        "title": "AdminAnalyticsResponse",
        "type": "object"
      },
      "AdminAnalyticsRetentionCohortResponse": {
        "properties": {
          "cohort": {
            "title": "Cohort",
            "type": "string"
          },
          "week1": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Week1",
            "type": "integer"
          },
          "week12": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Week12",
            "type": "integer"
          },
          "week2": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Week2",
            "type": "integer"
          },
          "week3": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Week3",
            "type": "integer"
          },
          "week4": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Week4",
            "type": "integer"
          },
          "week8": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Week8",
            "type": "integer"
          }
        },
        "required": ["cohort", "week1", "week2", "week3", "week4", "week8", "week12"],
        "title": "AdminAnalyticsRetentionCohortResponse",
        "type": "object"
      },
      "AdminAnalyticsRevenueMetricsResponse": {
        "properties": {
          "arpu": {
            "minimum": 0.0,
            "title": "Arpu",
            "type": "number"
          },
          "arpu_trend": {
            "title": "Arpu Trend",
            "type": "number"
          },
          "churn_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Churn Rate",
            "type": "number"
          },
          "conversion_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Conversion Rate",
            "type": "number"
          },
          "conversion_rate_trend": {
            "title": "Conversion Rate Trend",
            "type": "number"
          },
          "monthly_revenue": {
            "minimum": 0.0,
            "title": "Monthly Revenue",
            "type": "number"
          },
          "monthly_revenue_trend": {
            "title": "Monthly Revenue Trend",
            "type": "number"
          },
          "total_subscriptions": {
            "minimum": 0.0,
            "title": "Total Subscriptions",
            "type": "integer"
          }
        },
        "required": [
          "monthly_revenue",
          "monthly_revenue_trend",
          "arpu",
          "arpu_trend",
          "conversion_rate",
          "conversion_rate_trend",
          "total_subscriptions",
          "churn_rate"
        ],
        "title": "AdminAnalyticsRevenueMetricsResponse",
        "type": "object"
      },
      "AdminAnalyticsSessionDistributionPointResponse": {
        "properties": {
          "percentage": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Percentage",
            "type": "integer"
          },
          "range": {
            "title": "Range",
            "type": "string"
          }
        },
        "required": ["range", "percentage"],
        "title": "AdminAnalyticsSessionDistributionPointResponse",
        "type": "object"
      },
      "AdminAnalyticsStandardsAlignmentResponse": {
        "properties": {
          "at_risk_objectives": {
            "minimum": 0.0,
            "title": "At Risk Objectives",
            "type": "integer"
          },
          "average_mastery": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Average Mastery",
            "type": "integer"
          },
          "course_count": {
            "minimum": 0.0,
            "title": "Course Count",
            "type": "integer"
          },
          "coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Coverage Percent",
            "type": "integer"
          },
          "covered_objectives": {
            "minimum": 0.0,
            "title": "Covered Objectives",
            "type": "integer"
          },
          "jurisdiction": {
            "title": "Jurisdiction",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "standard_id": {
            "title": "Standard Id",
            "type": "string"
          },
          "total_objectives": {
            "minimum": 0.0,
            "title": "Total Objectives",
            "type": "integer"
          }
        },
        "required": [
          "standard_id",
          "label",
          "jurisdiction",
          "course_count",
          "covered_objectives",
          "total_objectives",
          "coverage_percent",
          "average_mastery",
          "at_risk_objectives"
        ],
        "title": "AdminAnalyticsStandardsAlignmentResponse",
        "type": "object"
      },
      "AdminAuditEntryResponse": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "title": "Actor",
            "type": "string"
          },
          "category": {
            "enum": ["review", "approval", "moderation", "escalation", "user_management"],
            "title": "Category",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "facts": {
            "items": {
              "$ref": "#/components/schemas/AdminAuditFactResponse"
            },
            "title": "Facts",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          },
          "target_label": {
            "title": "Target Label",
            "type": "string"
          },
          "target_type": {
            "title": "Target Type",
            "type": "string"
          },
          "workspace_href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workspace Href"
          }
        },
        "required": [
          "id",
          "category",
          "action",
          "actor",
          "occurred_at",
          "summary",
          "comment",
          "target_type",
          "target_id",
          "target_label"
        ],
        "title": "AdminAuditEntryResponse",
        "type": "object"
      },
      "AdminAuditFactResponse": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "AdminAuditFactResponse",
        "type": "object"
      },
      "AdminAuditTrailResponse": {
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/AdminAuditEntryResponse"
            },
            "title": "Entries",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          }
        },
        "required": ["generated_at"],
        "title": "AdminAuditTrailResponse",
        "type": "object"
      },
      "AdminDashboardResponse": {
        "properties": {
          "enrollment_trends": {
            "items": {
              "$ref": "#/components/schemas/DashboardSeriesPointResponse"
            },
            "title": "Enrollment Trends",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "platform_usage": {
            "items": {
              "$ref": "#/components/schemas/PlatformUsagePointResponse"
            },
            "title": "Platform Usage",
            "type": "array"
          },
          "recent_activities": {
            "items": {
              "$ref": "#/components/schemas/DashboardActivityResponse"
            },
            "title": "Recent Activities",
            "type": "array"
          },
          "stats": {
            "$ref": "#/components/schemas/DashboardStatsResponse"
          },
          "system_health": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ServiceStatusResponse"
            },
            "title": "System Health",
            "type": "object"
          },
          "user_growth": {
            "items": {
              "$ref": "#/components/schemas/DashboardSeriesPointResponse"
            },
            "title": "User Growth",
            "type": "array"
          }
        },
        "required": ["stats", "system_health", "generated_at"],
        "title": "AdminDashboardResponse",
        "type": "object"
      },
      "AdmissionApproval": {
        "additionalProperties": false,
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approver_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Approver Digest",
            "type": "string"
          },
          "model_fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Model Fingerprint Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "role": {
            "enum": ["security", "privacy", "safety", "education", "operator"],
            "title": "Role",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "role",
          "approver_digest",
          "approved_at",
          "run_id",
          "model_fingerprint_sha256",
          "rationale"
        ],
        "title": "AdmissionApproval",
        "type": "object"
      },
      "AdmissionDecision": {
        "additionalProperties": false,
        "description": "Whether this record may be admitted, for exactly one purpose.\n\n``admitted`` is derived from the refusals, not declared. A decision saying\nadmitted while carrying a refusal would be the gate reporting itself open.",
        "properties": {
          "admitted": {
            "title": "Admitted",
            "type": "boolean"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "purpose": {
            "enum": ["model_training", "model_evaluation", "quality_monitoring"],
            "title": "Purpose",
            "type": "string"
          },
          "record_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Record Id",
            "type": "string"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AdmissionRefusal"
            },
            "maxItems": 20,
            "title": "Refusals",
            "type": "array"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["record_id", "purpose", "admitted", "decided_at"],
        "title": "AdmissionDecision",
        "type": "object"
      },
      "AdmissionJourneyStep": {
        "additionalProperties": false,
        "properties": {
          "attempted": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "fallback": {
            "anyOf": [
              {
                "const": "not_configured",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fallback"
          },
          "leg": {
            "enum": [
              "direct_endpoint",
              "secret_substitution",
              "model_substitution",
              "stale_approval",
              "cross_tenant",
              "outage",
              "abuse",
              "kill",
              "recovery"
            ],
            "title": "Leg",
            "type": "string"
          },
          "refusal_reason": {
            "anyOf": [
              {
                "enum": [
                  "not_admitted",
                  "fingerprint_moved",
                  "approval_stale",
                  "outside_tenant",
                  "outside_course",
                  "outside_use",
                  "outside_data_class",
                  "outside_region",
                  "scope_expired",
                  "credential_overdue",
                  "blocking_probe_failed",
                  "killed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refusal Reason"
          },
          "served": {
            "title": "Served",
            "type": "boolean"
          }
        },
        "required": ["leg", "attempted", "served"],
        "title": "AdmissionJourneyStep",
        "type": "object"
      },
      "AdmissionRecord": {
        "additionalProperties": false,
        "description": "An admitted model: the candidate, the run it was measured by, five approvals, a scope.",
        "properties": {
          "admission_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Admission Id",
            "type": "string"
          },
          "admitted_at": {
            "format": "date-time",
            "title": "Admitted At",
            "type": "string"
          },
          "approvals": {
            "items": {
              "$ref": "#/components/schemas/AdmissionApproval"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Approvals",
            "type": "array"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "model_fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Model Fingerprint Sha256",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "7.11.0",
            "default": "7.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/AdmissionScope"
          }
        },
        "required": [
          "admission_id",
          "candidate_id",
          "run_id",
          "model_fingerprint_sha256",
          "approvals",
          "scope",
          "admitted_at"
        ],
        "title": "AdmissionRecord",
        "type": "object"
      },
      "AdmissionRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "no_collection_basis",
              "basis_postdates_the_material",
              "purpose_not_granted",
              "grant_expired",
              "holder_grant_missing",
              "tenant_policy_forbids",
              "opt_in_required_and_absent",
              "subject_opted_out",
              "source_not_registered",
              "source_revision_mismatch"
            ],
            "title": "Reason",
            "type": "string"
          },
          "subject": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["reason", "subject", "detail"],
        "title": "AdmissionRefusal",
        "type": "object"
      },
      "AdmissionScope": {
        "additionalProperties": false,
        "description": "Where an admitted model may be used. Everything outside it is refused.",
        "properties": {
          "course_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Course Ids",
            "type": "array"
          },
          "data_classes": {
            "items": {
              "enum": ["public_content", "pseudonymous_learner", "identified_learner"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Data Classes",
            "type": "array"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "regions": {
            "items": {
              "enum": ["eu", "uk", "us", "unspecified"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Regions",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "uses": {
            "items": {
              "enum": ["tutoring", "authoring", "assessment_support", "analytics"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Uses",
            "type": "array"
          }
        },
        "required": ["tenant_id", "uses", "data_classes", "regions", "expires_at"],
        "title": "AdmissionScope",
        "type": "object"
      },
      "AdmissionSubmission": {
        "additionalProperties": false,
        "description": "One piece of feedback, with everything admission needs to judge it.\n\nThere is no field naming an outcome. A caller submits material and a basis;\nwhether it is admitted is computed, not asserted.",
        "properties": {
          "basis": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CollectionBasis"
              },
              {
                "type": "null"
              }
            ]
          },
          "grants": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RightsGrant"
            },
            "maxItems": 10,
            "title": "Grants",
            "type": "array"
          },
          "opt_outs": {
            "$ref": "#/components/schemas/OptOutRegister"
          },
          "payload": {
            "discriminator": {
              "mapping": {
                "cohort_outcome": "#/components/schemas/CohortOutcomeRecord",
                "educator_decision": "#/components/schemas/EducatorDecisionRecord",
                "media_critique": "#/components/schemas/MediaCritiqueRecord",
                "verifier_disagreement": "#/components/schemas/VerifierDisagreementRecord"
              },
              "propertyName": "payload_kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/EducatorDecisionRecord"
              },
              {
                "$ref": "#/components/schemas/CohortOutcomeRecord"
              },
              {
                "$ref": "#/components/schemas/VerifierDisagreementRecord"
              },
              {
                "$ref": "#/components/schemas/MediaCritiqueRecord"
              }
            ],
            "title": "Payload"
          },
          "policy": {
            "$ref": "#/components/schemas/TenantDataPolicy"
          },
          "purpose": {
            "enum": ["model_training", "model_evaluation", "quality_monitoring"],
            "title": "Purpose",
            "type": "string"
          },
          "registration": {
            "$ref": "#/components/schemas/SourceRegistration"
          },
          "subject_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Digest"
          }
        },
        "required": ["registration", "payload", "purpose", "policy", "opt_outs"],
        "title": "AdmissionSubmission",
        "type": "object"
      },
      "AdvanceClaimRequest": {
        "additionalProperties": false,
        "properties": {
          "claim": {
            "$ref": "#/components/schemas/Claim"
          },
          "to_status": {
            "enum": ["proposed", "under_review", "canonical", "rejected", "retracted"],
            "title": "To Status",
            "type": "string"
          }
        },
        "required": ["claim", "to_status"],
        "title": "AdvanceClaimRequest",
        "type": "object"
      },
      "AdversarialProbe": {
        "additionalProperties": false,
        "description": "One way round the gate, and *how* it was closed.\n\nWhere a probe was refused matters as much as that it was: a payload the type\nwill not even accept is a stronger answer than one the engine turns away,\nand both are stronger than one only the store catches.",
        "properties": {
          "attack": {
            "maxLength": 100,
            "minLength": 3,
            "title": "Attack",
            "type": "string"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "enum": [
                  "actor_is_not_human",
                  "actor_is_delegated",
                  "actor_is_impersonated",
                  "not_interactive",
                  "step_up_required",
                  "role_not_eligible",
                  "conflict_not_declared",
                  "conflict_declared",
                  "subject_changed",
                  "evidence_changed",
                  "gate_expired",
                  "already_signed",
                  "quorum_not_met",
                  "signoff_copied",
                  "gate_policy_changed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "refused_by": {
            "anyOf": [
              {
                "enum": ["type", "engine", "store"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refused By"
          }
        },
        "required": ["attack", "refused", "detail"],
        "title": "AdversarialProbe",
        "type": "object"
      },
      "AgentAdversarialEvalCaseResponse": {
        "properties": {
          "case_id": {
            "title": "Case Id",
            "type": "string"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "expected_status": {
            "enum": ["clear", "review", "blocked"],
            "title": "Expected Status",
            "type": "string"
          },
          "observed_status": {
            "enum": ["clear", "review", "blocked"],
            "title": "Observed Status",
            "type": "string"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          }
        },
        "required": ["case_id", "category", "expected_status", "observed_status", "passed"],
        "title": "AgentAdversarialEvalCaseResponse",
        "type": "object"
      },
      "AgentAdversarialEvaluationResponse": {
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/AgentAdversarialEvalCaseResponse"
            },
            "title": "Cases",
            "type": "array"
          },
          "pass_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Pass Rate",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "fail"],
            "title": "Status",
            "type": "string"
          },
          "suite_id": {
            "title": "Suite Id",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["suite_id", "version", "pass_rate", "status"],
        "title": "AgentAdversarialEvaluationResponse",
        "type": "object"
      },
      "AgentAnnotationRubricResponse": {
        "properties": {
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/AgentRubricCriterionResponse"
            },
            "title": "Criteria",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "pass_threshold": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Pass Threshold",
            "type": "number"
          },
          "task_type": {
            "title": "Task Type",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["id", "version", "task_type", "pass_threshold"],
        "title": "AgentAnnotationRubricResponse",
        "type": "object"
      },
      "AgentApprovalGateResponse": {
        "properties": {
          "gate_type": {
            "enum": [
              "human_before_stage",
              "human_before_publish",
              "expert_claim_density",
              "tenant_policy"
            ],
            "title": "Gate Type",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "node_id": {
            "title": "Node Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "required_role": {
            "enum": ["learner", "instructor", "admin", "operator"],
            "title": "Required Role",
            "type": "string"
          }
        },
        "required": ["id", "node_id", "gate_type", "required_role", "rationale"],
        "title": "AgentApprovalGateResponse",
        "type": "object"
      },
      "AgentCapabilityResponse": {
        "properties": {
          "cost_class": {
            "enum": ["low", "medium", "high", "regulated"],
            "title": "Cost Class",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "evidence_requirements": {
            "items": {
              "enum": ["none", "preferred", "required"],
              "type": "string"
            },
            "title": "Evidence Requirements",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "input_schema_ref": {
            "title": "Input Schema Ref",
            "type": "string"
          },
          "latency_budget_ms": {
            "minimum": 1.0,
            "title": "Latency Budget Ms",
            "type": "integer"
          },
          "lifecycle_state": {
            "enum": ["active", "experimental", "deprecated", "disabled"],
            "title": "Lifecycle State",
            "type": "string"
          },
          "output_schema_ref": {
            "title": "Output Schema Ref",
            "type": "string"
          },
          "release_channel": {
            "enum": ["stable", "canary", "shadow"],
            "title": "Release Channel",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "id",
          "version",
          "description",
          "input_schema_ref",
          "output_schema_ref",
          "latency_budget_ms",
          "cost_class",
          "lifecycle_state",
          "release_channel"
        ],
        "title": "AgentCapabilityResponse",
        "type": "object"
      },
      "AgentDagEdgeResponse": {
        "properties": {
          "checkpoint_required": {
            "title": "Checkpoint Required",
            "type": "boolean"
          },
          "handoff_contract": {
            "title": "Handoff Contract",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "source_node_id": {
            "title": "Source Node Id",
            "type": "string"
          },
          "target_node_id": {
            "title": "Target Node Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "source_node_id",
          "target_node_id",
          "handoff_contract",
          "checkpoint_required",
          "rationale"
        ],
        "title": "AgentDagEdgeResponse",
        "type": "object"
      },
      "AgentDagNodeResponse": {
        "properties": {
          "agent_id": {
            "title": "Agent Id",
            "type": "string"
          },
          "agent_version": {
            "title": "Agent Version",
            "type": "string"
          },
          "capability_id": {
            "title": "Capability Id",
            "type": "string"
          },
          "capability_version": {
            "title": "Capability Version",
            "type": "string"
          },
          "dependencies": {
            "items": {
              "type": "string"
            },
            "title": "Dependencies",
            "type": "array"
          },
          "event_topic_id": {
            "title": "Event Topic Id",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "input_contract": {
            "title": "Input Contract",
            "type": "string"
          },
          "kill_switch_id": {
            "title": "Kill Switch Id",
            "type": "string"
          },
          "output_contract": {
            "title": "Output Contract",
            "type": "string"
          },
          "quality_gates": {
            "items": {
              "type": "string"
            },
            "title": "Quality Gates",
            "type": "array"
          },
          "required_evidence": {
            "enum": ["none", "preferred", "required"],
            "title": "Required Evidence",
            "type": "string"
          },
          "rollback_strategy": {
            "title": "Rollback Strategy",
            "type": "string"
          },
          "stage": {
            "minimum": 1.0,
            "title": "Stage",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "stage",
          "title",
          "agent_id",
          "agent_version",
          "capability_id",
          "capability_version",
          "input_contract",
          "output_contract",
          "required_evidence",
          "event_topic_id",
          "rollback_strategy",
          "kill_switch_id"
        ],
        "title": "AgentDagNodeResponse",
        "type": "object"
      },
      "AgentDataScopeResponse": {
        "properties": {
          "data_classes": {
            "items": {
              "type": "string"
            },
            "title": "Data Classes",
            "type": "array"
          },
          "redaction_level": {
            "enum": ["none", "masked", "restricted"],
            "title": "Redaction Level",
            "type": "string"
          },
          "retention_policy": {
            "title": "Retention Policy",
            "type": "string"
          },
          "scope_id": {
            "title": "Scope Id",
            "type": "string"
          },
          "tenancy": {
            "enum": ["single_tenant", "cross_tenant_aggregate"],
            "title": "Tenancy",
            "type": "string"
          }
        },
        "required": ["scope_id", "tenancy", "retention_policy", "redaction_level"],
        "title": "AgentDataScopeResponse",
        "type": "object"
      },
      "AgentDefinitionResponse": {
        "properties": {
          "audit_policy": {
            "title": "Audit Policy",
            "type": "string"
          },
          "capabilities": {
            "items": {
              "$ref": "#/components/schemas/AgentCapabilityResponse"
            },
            "title": "Capabilities",
            "type": "array"
          },
          "cost_class": {
            "enum": ["low", "medium", "high", "regulated"],
            "title": "Cost Class",
            "type": "string"
          },
          "data_scopes": {
            "items": {
              "$ref": "#/components/schemas/AgentDataScopeResponse"
            },
            "title": "Data Scopes",
            "type": "array"
          },
          "disclosure_requirements": {
            "items": {
              "type": "string"
            },
            "title": "Disclosure Requirements",
            "type": "array"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "evaluation_scores": {
            "items": {
              "$ref": "#/components/schemas/AgentEvaluationScoreResponse"
            },
            "title": "Evaluation Scores",
            "type": "array"
          },
          "example_run_ids": {
            "items": {
              "type": "string"
            },
            "title": "Example Run Ids",
            "type": "array"
          },
          "family": {
            "enum": [
              "research",
              "drafting",
              "editing",
              "fact_checking",
              "citation_verification",
              "illustration",
              "narration",
              "translation",
              "course_generation",
              "lesson_scaffolding",
              "assessment_generation",
              "study_plan_synthesis",
              "recommendation_explanation",
              "moderation_triage",
              "support_triage",
              "ritual_scriptwriting",
              "sky_event_briefing",
              "claim_extraction",
              "source_ingestion",
              "kg_promotion",
              "academic_integrity"
            ],
            "title": "Family",
            "type": "string"
          },
          "grounding_policy": {
            "title": "Grounding Policy",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lifecycle_state": {
            "enum": ["active", "experimental", "deprecated", "disabled"],
            "title": "Lifecycle State",
            "type": "string"
          },
          "model_bindings": {
            "items": {
              "$ref": "#/components/schemas/AgentModelBindingResponse"
            },
            "title": "Model Bindings",
            "type": "array"
          },
          "owner_team": {
            "title": "Owner Team",
            "type": "string"
          },
          "persona_binding": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Persona Binding"
          },
          "required_entitlements": {
            "items": {
              "type": "string"
            },
            "title": "Required Entitlements",
            "type": "array"
          },
          "reviewer_comments": {
            "items": {
              "type": "string"
            },
            "title": "Reviewer Comments",
            "type": "array"
          },
          "supported_domains": {
            "items": {
              "type": "string"
            },
            "title": "Supported Domains",
            "type": "array"
          },
          "supported_locales": {
            "items": {
              "type": "string"
            },
            "title": "Supported Locales",
            "type": "array"
          },
          "tone_policy": {
            "title": "Tone Policy",
            "type": "string"
          },
          "tool_grants": {
            "items": {
              "$ref": "#/components/schemas/AgentToolGrantResponse"
            },
            "title": "Tool Grants",
            "type": "array"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "id",
          "display_name",
          "family",
          "version",
          "owner_team",
          "tone_policy",
          "grounding_policy",
          "audit_policy",
          "cost_class",
          "lifecycle_state"
        ],
        "title": "AgentDefinitionResponse",
        "type": "object"
      },
      "AgentEvaluationScoreResponse": {
        "properties": {
          "score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "watch", "fail"],
            "title": "Status",
            "type": "string"
          },
          "suite_id": {
            "title": "Suite Id",
            "type": "string"
          },
          "threshold": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Threshold",
            "type": "number"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["suite_id", "version", "score", "threshold", "status"],
        "title": "AgentEvaluationScoreResponse",
        "type": "object"
      },
      "AgentEventTopicResponse": {
        "properties": {
          "consumer_node_ids": {
            "items": {
              "type": "string"
            },
            "title": "Consumer Node Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "payload_schema_ref": {
            "title": "Payload Schema Ref",
            "type": "string"
          },
          "producer_node_id": {
            "title": "Producer Node Id",
            "type": "string"
          },
          "retention_policy": {
            "title": "Retention Policy",
            "type": "string"
          }
        },
        "required": ["id", "name", "producer_node_id", "payload_schema_ref", "retention_policy"],
        "title": "AgentEventTopicResponse",
        "type": "object"
      },
      "AgentEvidenceRecordResponse": {
        "properties": {
          "agent_id": {
            "title": "Agent Id",
            "type": "string"
          },
          "artifact_kind": {
            "title": "Artifact Kind",
            "type": "string"
          },
          "content_hash": {
            "title": "Content Hash",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "node_id": {
            "title": "Node Id",
            "type": "string"
          },
          "redaction_level": {
            "enum": ["none", "masked", "restricted"],
            "title": "Redaction Level",
            "type": "string"
          },
          "replayable": {
            "title": "Replayable",
            "type": "boolean"
          },
          "required_for_replay": {
            "title": "Required For Replay",
            "type": "boolean"
          },
          "retention_policy": {
            "title": "Retention Policy",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "title": "Source Refs",
            "type": "array"
          },
          "storage_ref": {
            "title": "Storage Ref",
            "type": "string"
          }
        },
        "required": [
          "id",
          "node_id",
          "agent_id",
          "artifact_kind",
          "storage_ref",
          "content_hash",
          "redaction_level",
          "replayable",
          "required_for_replay",
          "retention_policy"
        ],
        "title": "AgentEvidenceRecordResponse",
        "type": "object"
      },
      "AgentExecutionBudgetLedgerResponse": {
        "properties": {
          "cost_units": {
            "default": 0,
            "minimum": 0.0,
            "title": "Cost Units",
            "type": "number"
          },
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "max_cost_units": {
            "exclusiveMinimum": 0.0,
            "title": "Max Cost Units",
            "type": "number"
          },
          "max_input_tokens": {
            "minimum": 1.0,
            "title": "Max Input Tokens",
            "type": "integer"
          },
          "max_model_invocations": {
            "minimum": 1.0,
            "title": "Max Model Invocations",
            "type": "integer"
          },
          "max_output_tokens": {
            "minimum": 1.0,
            "title": "Max Output Tokens",
            "type": "integer"
          },
          "max_tool_calls": {
            "minimum": 0.0,
            "title": "Max Tool Calls",
            "type": "integer"
          },
          "model_invocations": {
            "default": 0,
            "minimum": 0.0,
            "title": "Model Invocations",
            "type": "integer"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "tool_calls": {
            "default": 0,
            "minimum": 0.0,
            "title": "Tool Calls",
            "type": "integer"
          }
        },
        "required": [
          "max_model_invocations",
          "max_tool_calls",
          "max_input_tokens",
          "max_output_tokens",
          "max_cost_units"
        ],
        "title": "AgentExecutionBudgetLedgerResponse",
        "type": "object"
      },
      "AgentExecutionBudgetRequest": {
        "properties": {
          "max_cost_units": {
            "default": 100000,
            "exclusiveMinimum": 0.0,
            "maximum": 1000000000.0,
            "title": "Max Cost Units",
            "type": "number"
          },
          "max_input_tokens": {
            "default": 200000,
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Max Input Tokens",
            "type": "integer"
          },
          "max_model_invocations": {
            "default": 32,
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Max Model Invocations",
            "type": "integer"
          },
          "max_output_tokens": {
            "default": 100000,
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Max Output Tokens",
            "type": "integer"
          },
          "max_tool_calls": {
            "default": 128,
            "maximum": 5000.0,
            "minimum": 0.0,
            "title": "Max Tool Calls",
            "type": "integer"
          }
        },
        "title": "AgentExecutionBudgetRequest",
        "type": "object"
      },
      "AgentExecutionCheckpointResponse": {
        "properties": {
          "after_node_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "After Node Id"
          },
          "budget_hash": {
            "title": "Budget Hash",
            "type": "string"
          },
          "checkpoint_id": {
            "title": "Checkpoint Id",
            "type": "string"
          },
          "completed_node_ids": {
            "items": {
              "type": "string"
            },
            "title": "Completed Node Ids",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Ids",
            "type": "array"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "snapshot_hash": {
            "title": "Snapshot Hash",
            "type": "string"
          }
        },
        "required": ["checkpoint_id", "run_id", "budget_hash", "snapshot_hash", "created_at"],
        "title": "AgentExecutionCheckpointResponse",
        "type": "object"
      },
      "AgentExecutionInterventionRequest": {
        "properties": {
          "gate_id": {
            "anyOf": [
              {
                "maxLength": 240,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Id"
          },
          "idempotency_key": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Idempotency Key",
            "type": "string"
          },
          "kind": {
            "enum": ["approve_gate", "pause", "resume", "cancel"],
            "title": "Kind",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "kind", "rationale"],
        "title": "AgentExecutionInterventionRequest",
        "type": "object"
      },
      "AgentExecutionInterventionResponse": {
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["learner", "instructor", "admin", "operator"],
            "title": "Actor Role",
            "type": "string"
          },
          "applied_at": {
            "format": "date-time",
            "title": "Applied At",
            "type": "string"
          },
          "gate_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Id"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "intervention_id": {
            "title": "Intervention Id",
            "type": "string"
          },
          "kind": {
            "enum": ["approve_gate", "pause", "resume", "cancel"],
            "title": "Kind",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "resulting_status": {
            "enum": [
              "queued",
              "running",
              "awaiting_intervention",
              "paused",
              "succeeded",
              "failed",
              "cancelled"
            ],
            "title": "Resulting Status",
            "type": "string"
          }
        },
        "required": [
          "intervention_id",
          "idempotency_key",
          "kind",
          "actor_id",
          "actor_role",
          "rationale",
          "resulting_status",
          "applied_at"
        ],
        "title": "AgentExecutionInterventionResponse",
        "type": "object"
      },
      "AgentExecutionPublicationResponse": {
        "properties": {
          "artifact_hashes": {
            "items": {
              "type": "string"
            },
            "title": "Artifact Hashes",
            "type": "array"
          },
          "artifact_refs": {
            "items": {
              "type": "string"
            },
            "title": "Artifact Refs",
            "type": "array"
          },
          "committed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Committed At"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "receipt_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receipt Hash"
          },
          "receipt_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receipt Id"
          },
          "status": {
            "enum": ["not_ready", "intent_persisted", "published", "failed"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "status"],
        "title": "AgentExecutionPublicationResponse",
        "type": "object"
      },
      "AgentExecutionRunResponse": {
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "approved_gate_ids": {
            "items": {
              "type": "string"
            },
            "title": "Approved Gate Ids",
            "type": "array"
          },
          "budget_ledger": {
            "$ref": "#/components/schemas/AgentExecutionBudgetLedgerResponse"
          },
          "build_id": {
            "title": "Build Id",
            "type": "string"
          },
          "checkpoints": {
            "items": {
              "$ref": "#/components/schemas/AgentExecutionCheckpointResponse"
            },
            "title": "Checkpoints",
            "type": "array"
          },
          "common_run_adapter_id": {
            "const": "v9-agent-orchestration-execution",
            "default": "v9-agent-orchestration-execution",
            "title": "Common Run Adapter Id",
            "type": "string"
          },
          "common_run_adapter_version": {
            "const": 1,
            "default": 1,
            "title": "Common Run Adapter Version",
            "type": "integer"
          },
          "common_run_id": {
            "title": "Common Run Id",
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "evidence_ledger": {
            "items": {
              "$ref": "#/components/schemas/AgentEvidenceRecordResponse"
            },
            "title": "Evidence Ledger",
            "type": "array"
          },
          "execution_mode": {
            "const": "executable",
            "default": "executable",
            "title": "Execution Mode",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "input_payload": {
            "additionalProperties": true,
            "title": "Input Payload",
            "type": "object"
          },
          "interventions": {
            "items": {
              "$ref": "#/components/schemas/AgentExecutionInterventionResponse"
            },
            "title": "Interventions",
            "type": "array"
          },
          "model_invocations": {
            "items": {
              "$ref": "#/components/schemas/AgentModelInvocationResponse"
            },
            "title": "Model Invocations",
            "type": "array"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/AgentNodeExecutionResponse"
            },
            "title": "Nodes",
            "type": "array"
          },
          "plan_hash": {
            "title": "Plan Hash",
            "type": "string"
          },
          "publication": {
            "$ref": "#/components/schemas/AgentExecutionPublicationResponse"
          },
          "registry_id": {
            "title": "Registry Id",
            "type": "string"
          },
          "registry_snapshot_hash": {
            "title": "Registry Snapshot Hash",
            "type": "string"
          },
          "registry_version": {
            "title": "Registry Version",
            "type": "string"
          },
          "request_hash": {
            "title": "Request Hash",
            "type": "string"
          },
          "revision": {
            "minimum": 0.0,
            "title": "Revision",
            "type": "integer"
          },
          "role_visibility": {
            "enum": ["learner", "instructor", "admin", "operator"],
            "title": "Role Visibility",
            "type": "string"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "safety_record": {
            "$ref": "#/components/schemas/AgentSafetyRecordBindingResponse"
          },
          "status": {
            "enum": [
              "queued",
              "running",
              "awaiting_intervention",
              "paused",
              "succeeded",
              "failed",
              "cancelled"
            ],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "tenant_region": {
            "title": "Tenant Region",
            "type": "string"
          },
          "tool_calls": {
            "items": {
              "$ref": "#/components/schemas/AgentToolExecutionResponse"
            },
            "title": "Tool Calls",
            "type": "array"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "common_run_id",
          "build_id",
          "plan_hash",
          "registry_id",
          "registry_version",
          "registry_snapshot_hash",
          "tenant_id",
          "tenant_region",
          "actor_id",
          "role_visibility",
          "safety_record",
          "idempotency_key",
          "request_hash",
          "status",
          "revision",
          "budget_ledger",
          "publication",
          "created_at",
          "updated_at"
        ],
        "title": "AgentExecutionRunResponse",
        "type": "object"
      },
      "AgentExecutionStartRequest": {
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/AgentExecutionBudgetRequest"
          },
          "build_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Build Id",
            "type": "string"
          },
          "execution_mode": {
            "const": "executable",
            "default": "executable",
            "title": "Execution Mode",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Idempotency Key",
            "type": "string"
          },
          "input_payload": {
            "additionalProperties": true,
            "title": "Input Payload",
            "type": "object"
          }
        },
        "required": ["build_id", "idempotency_key"],
        "title": "AgentExecutionStartRequest",
        "type": "object"
      },
      "AgentGoldSetCatalogResponse": {
        "properties": {
          "catalog_id": {
            "title": "Catalog Id",
            "type": "string"
          },
          "gold_sets": {
            "items": {
              "$ref": "#/components/schemas/AgentGoldSetResponse"
            },
            "title": "Gold Sets",
            "type": "array"
          },
          "privacy_policy": {
            "$ref": "#/components/schemas/AgentPrivacyPolicyResponse"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "rubrics": {
            "items": {
              "$ref": "#/components/schemas/AgentAnnotationRubricResponse"
            },
            "title": "Rubrics",
            "type": "array"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["catalog_id", "version", "published_at", "privacy_policy"],
        "title": "AgentGoldSetCatalogResponse",
        "type": "object"
      },
      "AgentGoldSetItemResponse": {
        "properties": {
          "expected_outcome": {
            "title": "Expected Outcome",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "input_hash": {
            "title": "Input Hash",
            "type": "string"
          },
          "privacy_tags": {
            "items": {
              "type": "string"
            },
            "title": "Privacy Tags",
            "type": "array"
          },
          "redacted_input": {
            "title": "Redacted Input",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "title": "Source Refs",
            "type": "array"
          },
          "task_type": {
            "enum": [
              "research_integrity",
              "safety_screening",
              "course_build",
              "citation_verification"
            ],
            "title": "Task Type",
            "type": "string"
          }
        },
        "required": ["id", "task_type", "input_hash", "redacted_input", "expected_outcome"],
        "title": "AgentGoldSetItemResponse",
        "type": "object"
      },
      "AgentGoldSetResponse": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/AgentGoldSetItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "owner_team": {
            "title": "Owner Team",
            "type": "string"
          },
          "privacy_policy_id": {
            "title": "Privacy Policy Id",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "task_type": {
            "title": "Task Type",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "id",
          "version",
          "title",
          "task_type",
          "owner_team",
          "privacy_policy_id",
          "rubric_id"
        ],
        "title": "AgentGoldSetResponse",
        "type": "object"
      },
      "AgentGraphCommunitySummaryResponse": {
        "properties": {
          "agent_ids": {
            "items": {
              "type": "string"
            },
            "title": "Agent Ids",
            "type": "array"
          },
          "algorithm": {
            "const": "runtime_role_affinity_v1",
            "title": "Algorithm",
            "type": "string"
          },
          "capability_ids": {
            "items": {
              "type": "string"
            },
            "title": "Capability Ids",
            "type": "array"
          },
          "family_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Family Counts",
            "type": "object"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "node_ids": {
            "items": {
              "type": "string"
            },
            "title": "Node Ids",
            "type": "array"
          },
          "owner_teams": {
            "items": {
              "type": "string"
            },
            "title": "Owner Teams",
            "type": "array"
          },
          "release_readiness": {
            "enum": ["ready", "watch", "blocked"],
            "title": "Release Readiness",
            "type": "string"
          },
          "risk_flags": {
            "items": {
              "type": "string"
            },
            "title": "Risk Flags",
            "type": "array"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "tool_ids": {
            "items": {
              "type": "string"
            },
            "title": "Tool Ids",
            "type": "array"
          }
        },
        "required": ["id", "label", "algorithm", "release_readiness", "summary"],
        "title": "AgentGraphCommunitySummaryResponse",
        "type": "object"
      },
      "AgentGraphEdgeResponse": {
        "properties": {
          "edge_type": {
            "enum": [
              "runtime_dependency",
              "declares_capability",
              "uses_tool",
              "accesses_data_scope",
              "uses_model",
              "owned_by",
              "belongs_to_family"
            ],
            "title": "Edge Type",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "source_node_id": {
            "title": "Source Node Id",
            "type": "string"
          },
          "target_node_id": {
            "title": "Target Node Id",
            "type": "string"
          },
          "weight": {
            "exclusiveMinimum": 0.0,
            "title": "Weight",
            "type": "number"
          }
        },
        "required": ["id", "source_node_id", "target_node_id", "edge_type", "weight", "rationale"],
        "title": "AgentGraphEdgeResponse",
        "type": "object"
      },
      "AgentGraphIndexRequest": {
        "properties": {
          "include_data_scopes": {
            "default": true,
            "title": "Include Data Scopes",
            "type": "boolean"
          },
          "include_models": {
            "default": true,
            "title": "Include Models",
            "type": "boolean"
          },
          "include_tools": {
            "default": true,
            "title": "Include Tools",
            "type": "boolean"
          },
          "max_communities": {
            "default": 8,
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Max Communities",
            "type": "integer"
          },
          "objective": {
            "anyOf": [
              {
                "enum": [
                  "course_build",
                  "grounded_lesson",
                  "assessment_build",
                  "source_review",
                  "study_plan"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Objective"
          },
          "scope": {
            "default": "registry",
            "enum": ["registry", "objective"],
            "title": "Scope",
            "type": "string"
          },
          "selected_agent_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Selected Agent Ids",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id"],
        "title": "AgentGraphIndexRequest",
        "type": "object"
      },
      "AgentGraphIndexResponse": {
        "properties": {
          "adjacency": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Adjacency",
            "type": "object"
          },
          "agent_index": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Agent Index",
            "type": "object"
          },
          "capability_index": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Capability Index",
            "type": "object"
          },
          "community_summaries": {
            "items": {
              "$ref": "#/components/schemas/AgentGraphCommunitySummaryResponse"
            },
            "title": "Community Summaries",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "data_scope_index": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Data Scope Index",
            "type": "object"
          },
          "edges": {
            "items": {
              "$ref": "#/components/schemas/AgentGraphEdgeResponse"
            },
            "title": "Edges",
            "type": "array"
          },
          "family_index": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Family Index",
            "type": "object"
          },
          "high_centrality_agent_ids": {
            "items": {
              "type": "string"
            },
            "title": "High Centrality Agent Ids",
            "type": "array"
          },
          "index_id": {
            "title": "Index Id",
            "type": "string"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/AgentGraphNodeResponse"
            },
            "title": "Nodes",
            "type": "array"
          },
          "objective": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Objective"
          },
          "orphan_agent_ids": {
            "items": {
              "type": "string"
            },
            "title": "Orphan Agent Ids",
            "type": "array"
          },
          "owner_team_index": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Owner Team Index",
            "type": "object"
          },
          "quality_metrics": {
            "items": {
              "$ref": "#/components/schemas/AgentGraphQualityMetricResponse"
            },
            "title": "Quality Metrics",
            "type": "array"
          },
          "registry_id": {
            "title": "Registry Id",
            "type": "string"
          },
          "registry_version": {
            "title": "Registry Version",
            "type": "string"
          },
          "scope": {
            "enum": ["registry", "objective"],
            "title": "Scope",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "tool_index": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Tool Index",
            "type": "object"
          }
        },
        "required": [
          "index_id",
          "tenant_id",
          "registry_id",
          "registry_version",
          "scope",
          "created_at"
        ],
        "title": "AgentGraphIndexResponse",
        "type": "object"
      },
      "AgentGraphNodeResponse": {
        "properties": {
          "agent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Id"
          },
          "family": {
            "anyOf": [
              {
                "enum": [
                  "research",
                  "drafting",
                  "editing",
                  "fact_checking",
                  "citation_verification",
                  "illustration",
                  "narration",
                  "translation",
                  "course_generation",
                  "lesson_scaffolding",
                  "assessment_generation",
                  "study_plan_synthesis",
                  "recommendation_explanation",
                  "moderation_triage",
                  "support_triage",
                  "ritual_scriptwriting",
                  "sky_event_briefing",
                  "claim_extraction",
                  "source_ingestion",
                  "kg_promotion",
                  "academic_integrity"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Family"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "enum": ["agent", "capability", "tool", "data_scope", "model", "owner_team", "family"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "owner_team": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Team"
          }
        },
        "required": ["id", "kind", "label"],
        "title": "AgentGraphNodeResponse",
        "type": "object"
      },
      "AgentGraphQualityMetricResponse": {
        "properties": {
          "direction": {
            "enum": ["min", "max"],
            "title": "Direction",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "watch", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "number"
          },
          "value": {
            "title": "Value",
            "type": "number"
          }
        },
        "required": ["id", "value", "target", "direction", "status", "rationale"],
        "title": "AgentGraphQualityMetricResponse",
        "type": "object"
      },
      "AgentKillSwitchResponse": {
        "properties": {
          "fallback_behavior": {
            "enum": ["pause", "skip_stage", "text_only", "manual_review"],
            "title": "Fallback Behavior",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "scope": {
            "enum": ["agent", "family", "tenant", "provider", "region"],
            "title": "Scope",
            "type": "string"
          },
          "status": {
            "enum": ["armed", "tripped"],
            "title": "Status",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["id", "scope", "target", "status", "fallback_behavior"],
        "title": "AgentKillSwitchResponse",
        "type": "object"
      },
      "AgentModelBindingResponse": {
        "properties": {
          "allowed_regions": {
            "items": {
              "type": "string"
            },
            "title": "Allowed Regions",
            "type": "array"
          },
          "fallback_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fallback Model"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["provider", "model", "version"],
        "title": "AgentModelBindingResponse",
        "type": "object"
      },
      "AgentModelInvocationResponse": {
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "cost_units": {
            "default": 0,
            "minimum": 0.0,
            "title": "Cost Units",
            "type": "number"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "input_hash": {
            "title": "Input Hash",
            "type": "string"
          },
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "invocation_id": {
            "title": "Invocation Id",
            "type": "string"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "node_id": {
            "title": "Node Id",
            "type": "string"
          },
          "output_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Hash"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "region": {
            "title": "Region",
            "type": "string"
          },
          "requested_tools": {
            "items": {
              "$ref": "#/components/schemas/AgentRequestedToolCall"
            },
            "title": "Requested Tools",
            "type": "array"
          },
          "result_ref": {
            "title": "Result Ref",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "enum": ["pending", "succeeded", "failed", "delivery_uncertain"],
            "title": "Status",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "invocation_id",
          "node_id",
          "idempotency_key",
          "provider",
          "model",
          "version",
          "region",
          "status",
          "input_hash",
          "result_ref",
          "started_at"
        ],
        "title": "AgentModelInvocationResponse",
        "type": "object"
      },
      "AgentNodeExecutionResponse": {
        "properties": {
          "agent_id": {
            "title": "Agent Id",
            "type": "string"
          },
          "agent_version": {
            "title": "Agent Version",
            "type": "string"
          },
          "approval_gate_ids": {
            "items": {
              "type": "string"
            },
            "title": "Approval Gate Ids",
            "type": "array"
          },
          "attempt": {
            "default": 0,
            "minimum": 0.0,
            "title": "Attempt",
            "type": "integer"
          },
          "capability_id": {
            "title": "Capability Id",
            "type": "string"
          },
          "capability_version": {
            "title": "Capability Version",
            "type": "string"
          },
          "checkpoint_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Checkpoint Id"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "dependencies": {
            "items": {
              "type": "string"
            },
            "title": "Dependencies",
            "type": "array"
          },
          "enforced_data_scope_ids": {
            "items": {
              "type": "string"
            },
            "title": "Enforced Data Scope Ids",
            "type": "array"
          },
          "enforced_model_binding": {
            "$ref": "#/components/schemas/AgentModelBindingResponse"
          },
          "enforced_tool_ids": {
            "items": {
              "type": "string"
            },
            "title": "Enforced Tool Ids",
            "type": "array"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "evidence_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Id"
          },
          "node_id": {
            "title": "Node Id",
            "type": "string"
          },
          "output_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Hash"
          },
          "output_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Ref"
          },
          "stage": {
            "minimum": 1.0,
            "title": "Stage",
            "type": "integer"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "default": "pending",
            "enum": [
              "pending",
              "running",
              "awaiting_intervention",
              "succeeded",
              "failed",
              "skipped"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "node_id",
          "stage",
          "agent_id",
          "agent_version",
          "capability_id",
          "capability_version",
          "enforced_model_binding"
        ],
        "title": "AgentNodeExecutionResponse",
        "type": "object"
      },
      "AgentNumericExpectationRequest": {
        "properties": {
          "id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "label": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "max_value": {
            "title": "Max Value",
            "type": "number"
          },
          "min_value": {
            "title": "Min Value",
            "type": "number"
          },
          "tolerance": {
            "default": 0.0,
            "minimum": 0.0,
            "title": "Tolerance",
            "type": "number"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": ["id", "label", "min_value", "max_value"],
        "title": "AgentNumericExpectationRequest",
        "type": "object"
      },
      "AgentNumericObservationResponse": {
        "properties": {
          "context": {
            "title": "Context",
            "type": "string"
          },
          "matched_expectation_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matched Expectation Id"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          },
          "value": {
            "title": "Value",
            "type": "number"
          }
        },
        "required": ["value", "context"],
        "title": "AgentNumericObservationResponse",
        "type": "object"
      },
      "AgentOrchestrationPlanResponse": {
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "approval_gates": {
            "items": {
              "$ref": "#/components/schemas/AgentApprovalGateResponse"
            },
            "title": "Approval Gates",
            "type": "array"
          },
          "build_id": {
            "title": "Build Id",
            "type": "string"
          },
          "dag_edges": {
            "items": {
              "$ref": "#/components/schemas/AgentDagEdgeResponse"
            },
            "title": "Dag Edges",
            "type": "array"
          },
          "dag_nodes": {
            "items": {
              "$ref": "#/components/schemas/AgentDagNodeResponse"
            },
            "title": "Dag Nodes",
            "type": "array"
          },
          "event_topics": {
            "items": {
              "$ref": "#/components/schemas/AgentEventTopicResponse"
            },
            "title": "Event Topics",
            "type": "array"
          },
          "evidence_ledger": {
            "items": {
              "$ref": "#/components/schemas/AgentEvidenceRecordResponse"
            },
            "title": "Evidence Ledger",
            "type": "array"
          },
          "kill_switches": {
            "items": {
              "$ref": "#/components/schemas/AgentKillSwitchResponse"
            },
            "title": "Kill Switches",
            "type": "array"
          },
          "mode": {
            "const": "planning_only",
            "default": "planning_only",
            "title": "Mode",
            "type": "string"
          },
          "objective": {
            "title": "Objective",
            "type": "string"
          },
          "plan_hash": {
            "title": "Plan Hash",
            "type": "string"
          },
          "registry_id": {
            "title": "Registry Id",
            "type": "string"
          },
          "registry_version": {
            "title": "Registry Version",
            "type": "string"
          },
          "release_channel": {
            "enum": ["stable", "canary", "shadow"],
            "title": "Release Channel",
            "type": "string"
          },
          "replay_manifest": {
            "$ref": "#/components/schemas/AgentReplayManifestResponse"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "role_visibility": {
            "enum": ["learner", "instructor", "admin", "operator"],
            "title": "Role Visibility",
            "type": "string"
          },
          "safety_record": {
            "$ref": "#/components/schemas/AgentSafetyRecordBindingResponse"
          },
          "selected_agent_ids": {
            "items": {
              "type": "string"
            },
            "title": "Selected Agent Ids",
            "type": "array"
          },
          "source_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "status": {
            "enum": ["planned", "queued", "running", "blocked", "succeeded", "failed"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "tenant_region": {
            "title": "Tenant Region",
            "type": "string"
          }
        },
        "required": [
          "build_id",
          "registry_id",
          "registry_version",
          "requested_at",
          "tenant_id",
          "actor_id",
          "objective",
          "release_channel",
          "tenant_region",
          "role_visibility",
          "status",
          "safety_record",
          "plan_hash",
          "replay_manifest"
        ],
        "title": "AgentOrchestrationPlanResponse",
        "type": "object"
      },
      "AgentOrchestrationRequest": {
        "properties": {
          "objective": {
            "default": "course_build",
            "enum": [
              "course_build",
              "grounded_lesson",
              "assessment_build",
              "source_review",
              "study_plan"
            ],
            "title": "Objective",
            "type": "string"
          },
          "release_channel": {
            "default": "stable",
            "enum": ["stable", "canary", "shadow"],
            "title": "Release Channel",
            "type": "string"
          },
          "requested_agent_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 24,
            "title": "Requested Agent Ids",
            "type": "array"
          },
          "required_capabilities": {
            "items": {
              "type": "string"
            },
            "maxItems": 24,
            "title": "Required Capabilities",
            "type": "array"
          },
          "role_visibility": {
            "default": "instructor",
            "enum": ["learner", "instructor", "admin", "operator"],
            "title": "Role Visibility",
            "type": "string"
          },
          "source_package_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "tenant_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "tenant_region": {
            "default": "us",
            "maxLength": 32,
            "title": "Tenant Region",
            "type": "string"
          }
        },
        "required": ["tenant_id"],
        "title": "AgentOrchestrationRequest",
        "type": "object"
      },
      "AgentOutputVerificationDecisionResponse": {
        "properties": {
          "action": {
            "enum": ["allow", "hold_for_review", "block_release"],
            "title": "Action",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "action", "rationale"],
        "title": "AgentOutputVerificationDecisionResponse",
        "type": "object"
      },
      "AgentOutputVerificationRequest": {
        "properties": {
          "agent_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Id"
          },
          "build_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Build Id"
          },
          "code_language": {
            "const": "python",
            "default": "python",
            "title": "Code Language",
            "type": "string"
          },
          "high_stakes": {
            "default": true,
            "title": "High Stakes",
            "type": "boolean"
          },
          "max_findings": {
            "default": 25,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Max Findings",
            "type": "integer"
          },
          "numeric_expectations": {
            "items": {
              "$ref": "#/components/schemas/AgentNumericExpectationRequest"
            },
            "maxItems": 50,
            "title": "Numeric Expectations",
            "type": "array"
          },
          "output_text": {
            "maxLength": 40000,
            "minLength": 1,
            "title": "Output Text",
            "type": "string"
          },
          "source_package_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "tenant_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "output_text"],
        "title": "AgentOutputVerificationRequest",
        "type": "object"
      },
      "AgentOutputVerificationResponse": {
        "properties": {
          "agent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Agent Id"
          },
          "build_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Build Id"
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/AgentVerifierCheckResponse"
            },
            "title": "Checks",
            "type": "array"
          },
          "decision": {
            "$ref": "#/components/schemas/AgentOutputVerificationDecisionResponse"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "numeric_observations": {
            "items": {
              "$ref": "#/components/schemas/AgentNumericObservationResponse"
            },
            "title": "Numeric Observations",
            "type": "array"
          },
          "safe_degradation": {
            "$ref": "#/components/schemas/ResearchSafeDegradationResponse"
          },
          "source_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "verification_id": {
            "title": "Verification Id",
            "type": "string"
          }
        },
        "required": [
          "verification_id",
          "tenant_id",
          "evaluated_at",
          "decision",
          "safe_degradation"
        ],
        "title": "AgentOutputVerificationResponse",
        "type": "object"
      },
      "AgentPlan": {
        "additionalProperties": false,
        "description": "A materialised plan: the template it came from, and everything it locks.",
        "properties": {
          "approvals": {
            "items": {
              "$ref": "#/components/schemas/ApprovalPoint"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Approvals",
            "type": "array"
          },
          "authored_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Authored By",
            "type": "string"
          },
          "authoring_role": {
            "enum": [
              "curriculum_lead",
              "assessment_lead",
              "accessibility_lead",
              "integrity_lead",
              "course_owner"
            ],
            "title": "Authoring Role",
            "type": "string"
          },
          "budget": {
            "$ref": "#/components/schemas/PlanBudget"
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "kind": {
            "enum": ["curriculum", "item_writing", "verification", "accessibility", "tutoring"],
            "title": "Kind",
            "type": "string"
          },
          "materialised_at": {
            "format": "date-time",
            "title": "Materialised At",
            "type": "string"
          },
          "output_kind": {
            "enum": [
              "curriculum_outline_proposal",
              "item_draft_proposal",
              "verification_finding_set",
              "accessibility_remediation_proposal",
              "tutoring_script_proposal"
            ],
            "title": "Output Kind",
            "type": "string"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.13.0",
            "default": "6.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/PlanStep"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Steps",
            "type": "array"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "plan_id",
          "template_id",
          "template_version",
          "kind",
          "output_kind",
          "authoring_role",
          "authored_by",
          "tenant_id",
          "steps",
          "approvals",
          "budget",
          "materialised_at"
        ],
        "title": "AgentPlan",
        "type": "object"
      },
      "AgentPlanTemplate": {
        "additionalProperties": false,
        "description": "A ratified shape a plan may be built from.\n\nA dispatch request names a template and supplies bindings; it never supplies\na graph. That is what makes plan injection impossible rather than filtered.",
        "properties": {
          "authoring_role": {
            "enum": [
              "curriculum_lead",
              "assessment_lead",
              "accessibility_lead",
              "integrity_lead",
              "course_owner"
            ],
            "title": "Authoring Role",
            "type": "string"
          },
          "kind": {
            "enum": ["curriculum", "item_writing", "verification", "accessibility", "tutoring"],
            "title": "Kind",
            "type": "string"
          },
          "required_input_kinds": {
            "items": {
              "enum": [
                "source",
                "extraction",
                "claim",
                "course",
                "item",
                "rubric",
                "standard",
                "policy",
                "config"
              ],
              "type": "string"
            },
            "maxItems": 9,
            "minItems": 1,
            "title": "Required Input Kinds",
            "type": "array"
          },
          "summary": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Summary",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          }
        },
        "required": [
          "template_id",
          "template_version",
          "kind",
          "summary",
          "required_input_kinds",
          "authoring_role"
        ],
        "title": "AgentPlanTemplate",
        "type": "object"
      },
      "AgentPrivacyPolicyResponse": {
        "properties": {
          "consent_scope": {
            "title": "Consent Scope",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "retention_policy": {
            "title": "Retention Policy",
            "type": "string"
          },
          "transforms": {
            "items": {
              "$ref": "#/components/schemas/AgentPrivacyTransformResponse"
            },
            "title": "Transforms",
            "type": "array"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["policy_id", "version", "retention_policy", "consent_scope"],
        "title": "AgentPrivacyPolicyResponse",
        "type": "object"
      },
      "AgentPrivacyReceiptResponse": {
        "properties": {
          "annotator_hash": {
            "title": "Annotator Hash",
            "type": "string"
          },
          "applied_transform_ids": {
            "items": {
              "type": "string"
            },
            "title": "Applied Transform Ids",
            "type": "array"
          },
          "input_hash": {
            "title": "Input Hash",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "receipt_id": {
            "title": "Receipt Id",
            "type": "string"
          },
          "redacted_annotation_notes": {
            "title": "Redacted Annotation Notes",
            "type": "string"
          },
          "tenant_hash": {
            "title": "Tenant Hash",
            "type": "string"
          }
        },
        "required": [
          "receipt_id",
          "policy_id",
          "input_hash",
          "tenant_hash",
          "annotator_hash",
          "redacted_annotation_notes"
        ],
        "title": "AgentPrivacyReceiptResponse",
        "type": "object"
      },
      "AgentPrivacyTransformResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          },
          "transform_type": {
            "enum": ["redact", "hash", "minimize", "scope_filter"],
            "title": "Transform Type",
            "type": "string"
          }
        },
        "required": ["id", "transform_type", "target", "description"],
        "title": "AgentPrivacyTransformResponse",
        "type": "object"
      },
      "AgentRegistryResponse": {
        "properties": {
          "agents": {
            "items": {
              "$ref": "#/components/schemas/AgentDefinitionResponse"
            },
            "title": "Agents",
            "type": "array"
          },
          "capability_index": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Capability Index",
            "type": "object"
          },
          "default_release_channel": {
            "enum": ["stable", "canary", "shadow"],
            "title": "Default Release Channel",
            "type": "string"
          },
          "family_index": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "propertyNames": {
              "enum": [
                "research",
                "drafting",
                "editing",
                "fact_checking",
                "citation_verification",
                "illustration",
                "narration",
                "translation",
                "course_generation",
                "lesson_scaffolding",
                "assessment_generation",
                "study_plan_synthesis",
                "recommendation_explanation",
                "moderation_triage",
                "support_triage",
                "ritual_scriptwriting",
                "sky_event_briefing",
                "claim_extraction",
                "source_ingestion",
                "kg_promotion",
                "academic_integrity"
              ]
            },
            "title": "Family Index",
            "type": "object"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "registry_id": {
            "title": "Registry Id",
            "type": "string"
          },
          "registry_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Registry Version",
            "type": "string"
          }
        },
        "required": ["registry_id", "registry_version", "published_at", "default_release_channel"],
        "title": "AgentRegistryResponse",
        "type": "object"
      },
      "AgentReplayManifestResponse": {
        "properties": {
          "build_id": {
            "title": "Build Id",
            "type": "string"
          },
          "deterministic_inputs_hash": {
            "title": "Deterministic Inputs Hash",
            "type": "string"
          },
          "evidence_ledger_hash": {
            "title": "Evidence Ledger Hash",
            "type": "string"
          },
          "manifest_id": {
            "title": "Manifest Id",
            "type": "string"
          },
          "plan_hash": {
            "title": "Plan Hash",
            "type": "string"
          },
          "registry_snapshot_hash": {
            "title": "Registry Snapshot Hash",
            "type": "string"
          },
          "replay_command": {
            "title": "Replay Command",
            "type": "string"
          },
          "required_artifact_refs": {
            "items": {
              "type": "string"
            },
            "title": "Required Artifact Refs",
            "type": "array"
          }
        },
        "required": [
          "manifest_id",
          "build_id",
          "plan_hash",
          "evidence_ledger_hash",
          "deterministic_inputs_hash",
          "registry_snapshot_hash",
          "replay_command"
        ],
        "title": "AgentReplayManifestResponse",
        "type": "object"
      },
      "AgentRequestedToolCall": {
        "properties": {
          "arguments": {
            "additionalProperties": true,
            "title": "Arguments",
            "type": "object"
          },
          "permissions": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Permissions",
            "type": "array"
          },
          "tool_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Tool Id",
            "type": "string"
          }
        },
        "required": ["tool_id"],
        "title": "AgentRequestedToolCall",
        "type": "object"
      },
      "AgentRolloutDecisionResponse": {
        "properties": {
          "decision": {
            "enum": ["shadow_only", "start_canary", "expand_canary", "promote", "hold", "rollback"],
            "title": "Decision",
            "type": "string"
          },
          "next_traffic_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Next Traffic Percent",
            "type": "number"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "watch", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["decision", "status", "rationale", "next_traffic_percent"],
        "title": "AgentRolloutDecisionResponse",
        "type": "object"
      },
      "AgentRolloutMetricResponse": {
        "properties": {
          "direction": {
            "enum": ["min", "max"],
            "title": "Direction",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "warn", "fail"],
            "title": "Status",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "number"
          },
          "value": {
            "title": "Value",
            "type": "number"
          }
        },
        "required": ["id", "value", "target", "direction", "status"],
        "title": "AgentRolloutMetricResponse",
        "type": "object"
      },
      "AgentRolloutPhaseResponse": {
        "properties": {
          "gate": {
            "title": "Gate",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "min_observation_count": {
            "minimum": 0.0,
            "title": "Min Observation Count",
            "type": "integer"
          },
          "release_channel": {
            "enum": ["shadow", "canary", "champion_challenger", "stable"],
            "title": "Release Channel",
            "type": "string"
          },
          "required_duration_minutes": {
            "minimum": 0.0,
            "title": "Required Duration Minutes",
            "type": "integer"
          },
          "traffic_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Traffic Percent",
            "type": "number"
          }
        },
        "required": [
          "id",
          "release_channel",
          "traffic_percent",
          "min_observation_count",
          "required_duration_minutes",
          "gate"
        ],
        "title": "AgentRolloutPhaseResponse",
        "type": "object"
      },
      "AgentRolloutPlanResponse": {
        "properties": {
          "agent_id": {
            "title": "Agent Id",
            "type": "string"
          },
          "candidate_version": {
            "title": "Candidate Version",
            "type": "string"
          },
          "champion_version": {
            "title": "Champion Version",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/AgentRolloutDecisionResponse"
          },
          "kill_switches": {
            "items": {
              "$ref": "#/components/schemas/ResearchKillSwitchDecisionResponse"
            },
            "title": "Kill Switches",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/AgentRolloutMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "phases": {
            "items": {
              "$ref": "#/components/schemas/AgentRolloutPhaseResponse"
            },
            "title": "Phases",
            "type": "array"
          },
          "rollback_actions": {
            "items": {
              "$ref": "#/components/schemas/ResearchRollbackActionResponse"
            },
            "title": "Rollback Actions",
            "type": "array"
          },
          "rollout_id": {
            "title": "Rollout Id",
            "type": "string"
          },
          "strategy": {
            "enum": ["shadow", "canary", "champion_challenger"],
            "title": "Strategy",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "rollout_id",
          "tenant_id",
          "agent_id",
          "candidate_version",
          "champion_version",
          "strategy",
          "created_at",
          "decision"
        ],
        "title": "AgentRolloutPlanResponse",
        "type": "object"
      },
      "AgentRolloutRequest": {
        "properties": {
          "agent_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Agent Id",
            "type": "string"
          },
          "candidate_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Candidate Version",
            "type": "string"
          },
          "champion_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Champion Version",
            "type": "string"
          },
          "minimum_quality_delta": {
            "default": 1.0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Quality Delta",
            "type": "number"
          },
          "observed_metrics": {
            "additionalProperties": {
              "type": "number"
            },
            "title": "Observed Metrics",
            "type": "object"
          },
          "requested_traffic_percent": {
            "default": 5,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Requested Traffic Percent",
            "type": "number"
          },
          "strategy": {
            "default": "canary",
            "enum": ["shadow", "canary", "champion_challenger"],
            "title": "Strategy",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "agent_id", "candidate_version", "champion_version"],
        "title": "AgentRolloutRequest",
        "type": "object"
      },
      "AgentRubricCriterionResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "min_score": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Min Score",
            "type": "number"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "weight": {
            "exclusiveMinimum": 0.0,
            "maximum": 100.0,
            "title": "Weight",
            "type": "number"
          }
        },
        "required": ["id", "label", "description", "weight", "min_score"],
        "title": "AgentRubricCriterionResponse",
        "type": "object"
      },
      "AgentRubricCriterionScoreRequest": {
        "properties": {
          "criterion_id": {
            "title": "Criterion Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "score": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["criterion_id", "score", "rationale"],
        "title": "AgentRubricCriterionScoreRequest",
        "type": "object"
      },
      "AgentRubricScoreRequest": {
        "properties": {
          "annotation_notes": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Annotation Notes",
            "type": "string"
          },
          "annotator_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Annotator Id",
            "type": "string"
          },
          "criterion_scores": {
            "items": {
              "$ref": "#/components/schemas/AgentRubricCriterionScoreRequest"
            },
            "maxItems": 30,
            "minItems": 1,
            "title": "Criterion Scores",
            "type": "array"
          },
          "gold_set_id": {
            "title": "Gold Set Id",
            "type": "string"
          },
          "gold_set_version": {
            "title": "Gold Set Version",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "gold_set_id",
          "gold_set_version",
          "rubric_id",
          "item_id",
          "annotator_id",
          "annotation_notes",
          "criterion_scores"
        ],
        "title": "AgentRubricScoreRequest",
        "type": "object"
      },
      "AgentRubricScoreResponse": {
        "properties": {
          "criterion_results": {
            "items": {
              "$ref": "#/components/schemas/AgentRubricCriterionScoreRequest"
            },
            "title": "Criterion Results",
            "type": "array"
          },
          "failed_required_criteria": {
            "items": {
              "type": "string"
            },
            "title": "Failed Required Criteria",
            "type": "array"
          },
          "gold_set_id": {
            "title": "Gold Set Id",
            "type": "string"
          },
          "gold_set_version": {
            "title": "Gold Set Version",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "privacy_receipt": {
            "$ref": "#/components/schemas/AgentPrivacyReceiptResponse"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "score_id": {
            "title": "Score Id",
            "type": "string"
          },
          "scored_at": {
            "format": "date-time",
            "title": "Scored At",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "weighted_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Weighted Score",
            "type": "number"
          }
        },
        "required": [
          "score_id",
          "tenant_id",
          "gold_set_id",
          "gold_set_version",
          "rubric_id",
          "item_id",
          "weighted_score",
          "status",
          "privacy_receipt",
          "scored_at"
        ],
        "title": "AgentRubricScoreResponse",
        "type": "object"
      },
      "AgentRuntimeEventResponse": {
        "properties": {
          "href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Href"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "severity": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "enum": ["observed", "running", "succeeded", "failed", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "stream_id": {
            "title": "Stream Id",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "stream_id",
          "title",
          "summary",
          "severity",
          "status",
          "owner",
          "recorded_at"
        ],
        "title": "AgentRuntimeEventResponse",
        "type": "object"
      },
      "AgentSafetyClassifierEvidenceResponse": {
        "properties": {
          "classifier_id": {
            "title": "Classifier Id",
            "type": "string"
          },
          "classifier_version": {
            "title": "Classifier Version",
            "type": "string"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "matched_categories": {
            "items": {
              "type": "string"
            },
            "title": "Matched Categories",
            "type": "array"
          },
          "matched_feature_ids": {
            "items": {
              "type": "string"
            },
            "title": "Matched Feature Ids",
            "type": "array"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "title": "Policy Version",
            "type": "string"
          },
          "status": {
            "enum": ["evaluated", "unavailable"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "classifier_id",
          "classifier_version",
          "policy_id",
          "policy_version",
          "status"
        ],
        "title": "AgentSafetyClassifierEvidenceResponse",
        "type": "object"
      },
      "AgentSafetyRecordBindingResponse": {
        "description": "Immutable reference to a persisted, successful safety/trust evaluation.",
        "properties": {
          "action": {
            "const": "allow",
            "title": "Action",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "title": "Policy Version",
            "type": "string"
          },
          "request_input_hash": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Input Hash",
            "type": "string"
          },
          "screening_id": {
            "title": "Screening Id",
            "type": "string"
          },
          "status": {
            "const": "clear",
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "trust_zone": {
            "enum": ["public", "tenant", "restricted", "operator"],
            "title": "Trust Zone",
            "type": "string"
          }
        },
        "required": [
          "screening_id",
          "tenant_id",
          "request_input_hash",
          "policy_id",
          "policy_version",
          "evaluated_at",
          "status",
          "action",
          "trust_zone"
        ],
        "title": "AgentSafetyRecordBindingResponse",
        "type": "object"
      },
      "AgentSafetyScreeningRequest": {
        "properties": {
          "actor_role": {
            "default": "instructor",
            "enum": ["learner", "instructor", "admin", "operator"],
            "title": "Actor Role",
            "type": "string"
          },
          "allow_operator_tools": {
            "default": false,
            "title": "Allow Operator Tools",
            "type": "boolean"
          },
          "data_scope_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Data Scope Ids",
            "type": "array"
          },
          "input_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Input Text",
            "type": "string"
          },
          "requested_agent_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested Agent Id"
          },
          "requested_tools": {
            "items": {
              "$ref": "#/components/schemas/AgentSafetyToolRequest"
            },
            "maxItems": 50,
            "title": "Requested Tools",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "tenant_region": {
            "default": "us",
            "maxLength": 32,
            "title": "Tenant Region",
            "type": "string"
          }
        },
        "required": ["tenant_id", "input_text"],
        "title": "AgentSafetyScreeningRequest",
        "type": "object"
      },
      "AgentSafetyScreeningResponse": {
        "properties": {
          "action": {
            "enum": ["allow", "require_approval", "block"],
            "title": "Action",
            "type": "string"
          },
          "adversarial_evaluation": {
            "$ref": "#/components/schemas/AgentAdversarialEvaluationResponse"
          },
          "classifier_evidence": {
            "$ref": "#/components/schemas/AgentSafetyClassifierEvidenceResponse"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evaluation_status": {
            "enum": ["succeeded", "failed"],
            "title": "Evaluation Status",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "title": "Policy Version",
            "type": "string"
          },
          "request_input_hash": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Input Hash",
            "type": "string"
          },
          "requested_agent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested Agent Id"
          },
          "safe_degradation": {
            "$ref": "#/components/schemas/ResearchSafeDegradationResponse"
          },
          "screening_id": {
            "title": "Screening Id",
            "type": "string"
          },
          "status": {
            "enum": ["clear", "review", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "threat_findings": {
            "items": {
              "$ref": "#/components/schemas/AgentThreatFindingResponse"
            },
            "title": "Threat Findings",
            "type": "array"
          },
          "tool_isolation": {
            "items": {
              "$ref": "#/components/schemas/AgentToolIsolationDecisionResponse"
            },
            "title": "Tool Isolation",
            "type": "array"
          },
          "trust_zone": {
            "$ref": "#/components/schemas/AgentTrustZoneDecisionResponse"
          }
        },
        "required": [
          "screening_id",
          "tenant_id",
          "evaluated_at",
          "evaluation_status",
          "request_input_hash",
          "policy_id",
          "policy_version",
          "status",
          "action",
          "classifier_evidence",
          "trust_zone",
          "adversarial_evaluation",
          "safe_degradation"
        ],
        "title": "AgentSafetyScreeningResponse",
        "type": "object"
      },
      "AgentSafetyToolRequest": {
        "properties": {
          "requested_permissions": {
            "items": {
              "type": "string"
            },
            "maxItems": 12,
            "title": "Requested Permissions",
            "type": "array"
          },
          "tool_id": {
            "title": "Tool Id",
            "type": "string"
          }
        },
        "required": ["tool_id"],
        "title": "AgentSafetyToolRequest",
        "type": "object"
      },
      "AgentThreatFindingResponse": {
        "properties": {
          "category": {
            "enum": [
              "prompt_injection",
              "secret_exfiltration",
              "cross_tenant_access",
              "destructive_tool",
              "unsafe_network",
              "assessment_compromise",
              "policy_bypass"
            ],
            "title": "Category",
            "type": "string"
          },
          "evidence_excerpt": {
            "title": "Evidence Excerpt",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "mitigation": {
            "title": "Mitigation",
            "type": "string"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "source": {
            "enum": ["hard_rule", "policy_classifier"],
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "id",
          "category",
          "severity",
          "source",
          "rule_id",
          "evidence_excerpt",
          "mitigation"
        ],
        "title": "AgentThreatFindingResponse",
        "type": "object"
      },
      "AgentToolEffectResponse": {
        "properties": {
          "effect_id": {
            "title": "Effect Id",
            "type": "string"
          },
          "mutation_class": {
            "enum": ["read", "compute", "external_write", "publication"],
            "title": "Mutation Class",
            "type": "string"
          },
          "resource_ref": {
            "title": "Resource Ref",
            "type": "string"
          },
          "status": {
            "enum": ["applied", "partial", "failed"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "effect_id",
          "tenant_id",
          "resource_ref",
          "mutation_class",
          "status",
          "summary"
        ],
        "title": "AgentToolEffectResponse",
        "type": "object"
      },
      "AgentToolExecutionResponse": {
        "properties": {
          "arguments_hash": {
            "title": "Arguments Hash",
            "type": "string"
          },
          "call_id": {
            "title": "Call Id",
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "cost_units": {
            "default": 0,
            "minimum": 0.0,
            "title": "Cost Units",
            "type": "number"
          },
          "data_scope_ids": {
            "items": {
              "type": "string"
            },
            "title": "Data Scope Ids",
            "type": "array"
          },
          "effects": {
            "items": {
              "$ref": "#/components/schemas/AgentToolEffectResponse"
            },
            "title": "Effects",
            "type": "array"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "grant_isolation_boundary": {
            "enum": ["public", "tenant", "restricted", "operator"],
            "title": "Grant Isolation Boundary",
            "type": "string"
          },
          "grant_permissions": {
            "items": {
              "type": "string"
            },
            "title": "Grant Permissions",
            "type": "array"
          },
          "grant_requires_human_approval": {
            "title": "Grant Requires Human Approval",
            "type": "boolean"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "node_id": {
            "title": "Node Id",
            "type": "string"
          },
          "permissions": {
            "items": {
              "type": "string"
            },
            "title": "Permissions",
            "type": "array"
          },
          "result_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result Hash"
          },
          "result_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result Ref"
          },
          "safety_screening_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Safety Screening Id"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "enum": ["pending", "succeeded", "failed", "denied", "delivery_uncertain"],
            "title": "Status",
            "type": "string"
          },
          "tool_id": {
            "title": "Tool Id",
            "type": "string"
          }
        },
        "required": [
          "call_id",
          "node_id",
          "idempotency_key",
          "tool_id",
          "grant_isolation_boundary",
          "grant_requires_human_approval",
          "status",
          "arguments_hash",
          "started_at"
        ],
        "title": "AgentToolExecutionResponse",
        "type": "object"
      },
      "AgentToolGrant": {
        "additionalProperties": false,
        "description": "One tool, one operation, one scope, one ceiling, one expiry.\n\nNothing here can be inferred from a tool's name. A grant that omits its\nversion, its scope, its ceiling or its expiry does not validate, which is\nwhat stops a registry from minting `[\"read\", \"write\"]` because an id ended\nin `.write`.",
        "properties": {
          "answer_key_visible": {
            "const": false,
            "default": false,
            "title": "Answer Key Visible",
            "type": "boolean"
          },
          "ceiling": {
            "$ref": "#/components/schemas/ResourceCeiling"
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "data_scope": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Data Scope",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "network": {
            "enum": ["none", "allowlist"],
            "title": "Network",
            "type": "string"
          },
          "network_allowlist": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Network Allowlist",
            "type": "array"
          },
          "operation": {
            "enum": [
              "read_source_revision",
              "read_claim_revision",
              "read_course_revision",
              "read_item_revision",
              "read_rubric_revision",
              "read_standard_revision",
              "read_policy_revision",
              "read_config_revision",
              "read_learner_context_field",
              "search_corpus",
              "draft_proposal",
              "annotate_proposal",
              "run_static_check",
              "render_preview",
              "record_evidence"
            ],
            "title": "Operation",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "tool_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Tool Version",
            "type": "string"
          }
        },
        "required": [
          "tool_id",
          "tool_version",
          "operation",
          "data_scope",
          "tenant_id",
          "ceiling",
          "network",
          "expires_at"
        ],
        "title": "AgentToolGrant",
        "type": "object"
      },
      "AgentToolGrantResponse": {
        "properties": {
          "isolation_boundary": {
            "enum": ["public", "tenant", "restricted", "operator"],
            "title": "Isolation Boundary",
            "type": "string"
          },
          "permissions": {
            "items": {
              "type": "string"
            },
            "title": "Permissions",
            "type": "array"
          },
          "requires_human_approval": {
            "default": false,
            "title": "Requires Human Approval",
            "type": "boolean"
          },
          "tool_id": {
            "title": "Tool Id",
            "type": "string"
          }
        },
        "required": ["tool_id", "isolation_boundary"],
        "title": "AgentToolGrantResponse",
        "type": "object"
      },
      "AgentToolIsolationDecisionResponse": {
        "properties": {
          "allowed_permissions": {
            "items": {
              "type": "string"
            },
            "title": "Allowed Permissions",
            "type": "array"
          },
          "approval_required": {
            "title": "Approval Required",
            "type": "boolean"
          },
          "denied_permissions": {
            "items": {
              "type": "string"
            },
            "title": "Denied Permissions",
            "type": "array"
          },
          "isolation_boundary": {
            "enum": ["public", "tenant", "restricted", "operator"],
            "title": "Isolation Boundary",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "status": {
            "enum": ["allowed", "approval_required", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "tool_id": {
            "title": "Tool Id",
            "type": "string"
          }
        },
        "required": ["tool_id", "status", "isolation_boundary", "approval_required", "rationale"],
        "title": "AgentToolIsolationDecisionResponse",
        "type": "object"
      },
      "AgentTrustZoneDecisionResponse": {
        "properties": {
          "data_scope_restrictions": {
            "items": {
              "type": "string"
            },
            "title": "Data Scope Restrictions",
            "type": "array"
          },
          "human_approval_required": {
            "title": "Human Approval Required",
            "type": "boolean"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "zone": {
            "enum": ["public", "tenant", "restricted", "operator"],
            "title": "Zone",
            "type": "string"
          }
        },
        "required": ["zone", "human_approval_required", "rationale"],
        "title": "AgentTrustZoneDecisionResponse",
        "type": "object"
      },
      "AgentVerificationFindingResponse": {
        "properties": {
          "evidence": {
            "title": "Evidence",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "location": {
            "title": "Location",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "severity": {
            "enum": ["info", "warning", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "verifier": {
            "enum": ["symbolic", "code", "numeric"],
            "title": "Verifier",
            "type": "string"
          }
        },
        "required": ["id", "verifier", "severity", "location", "evidence", "rationale"],
        "title": "AgentVerificationFindingResponse",
        "type": "object"
      },
      "AgentVerifierCheckResponse": {
        "properties": {
          "applicable": {
            "title": "Applicable",
            "type": "boolean"
          },
          "checked_item_count": {
            "minimum": 0.0,
            "title": "Checked Item Count",
            "type": "integer"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/AgentVerificationFindingResponse"
            },
            "title": "Findings",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "review", "fail", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "verifier": {
            "enum": ["symbolic", "code", "numeric"],
            "title": "Verifier",
            "type": "string"
          }
        },
        "required": [
          "id",
          "verifier",
          "status",
          "applicable",
          "score",
          "checked_item_count",
          "rationale"
        ],
        "title": "AgentVerifierCheckResponse",
        "type": "object"
      },
      "AggregateDesign": {
        "additionalProperties": false,
        "description": "One proposed table for one aggregate that has none today.",
        "properties": {
          "aggregate": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Aggregate",
            "type": "string"
          },
          "checks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CheckDesign"
            },
            "maxItems": 60,
            "title": "Checks",
            "type": "array"
          },
          "classification": {
            "enum": [
              "learner_identifiable",
              "learner_pseudonymous",
              "assessment_secure",
              "authored_content",
              "operational_record",
              "unclassified"
            ],
            "title": "Classification",
            "type": "string"
          },
          "classification_basis": {
            "maxLength": 200,
            "minLength": 3,
            "title": "Classification Basis",
            "type": "string"
          },
          "foreign_keys": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ForeignKeyDesign"
            },
            "maxItems": 40,
            "title": "Foreign Keys",
            "type": "array"
          },
          "key": {
            "$ref": "#/components/schemas/KeyDesign"
          },
          "module": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Module",
            "type": "string"
          },
          "natural_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Natural Name"
          },
          "owning_cell": {
            "pattern": "^M\\d+\\.\\d+$",
            "title": "Owning Cell",
            "type": "string"
          },
          "requires_ratification": {
            "title": "Requires Ratification",
            "type": "boolean"
          },
          "retention": {
            "$ref": "#/components/schemas/RetentionDesign"
          },
          "table_name": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Table Name",
            "type": "string"
          },
          "unique_columns": {
            "items": {
              "maxLength": 63,
              "pattern": "^[a-z][a-z0-9_]*$",
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 2,
            "title": "Unique Columns",
            "type": "array"
          }
        },
        "required": [
          "module",
          "owning_cell",
          "aggregate",
          "table_name",
          "key",
          "unique_columns",
          "classification",
          "classification_basis",
          "retention",
          "requires_ratification"
        ],
        "title": "AggregateDesign",
        "type": "object"
      },
      "AggregateInput": {
        "additionalProperties": false,
        "properties": {
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          },
          "weight": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Weight",
            "type": "number"
          }
        },
        "required": ["grade_id", "weight"],
        "title": "AggregateInput",
        "type": "object"
      },
      "AggregateResult": {
        "additionalProperties": false,
        "description": "A recomputed aggregate. Its digest covers the inputs, so a replay is detectable.",
        "properties": {
          "aggregate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Aggregate Id",
            "type": "string"
          },
          "contributing": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Contributing",
            "type": "array"
          },
          "excluded": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Excluded",
            "type": "array"
          },
          "inputs_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Inputs Sha256",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["aggregate_id", "inputs_sha256"],
        "title": "AggregateResult",
        "type": "object"
      },
      "AggregateSummary": {
        "additionalProperties": false,
        "description": "What a list returns: the operational row, never the payload.",
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "current_revision": {
            "minimum": 1.0,
            "title": "Current Revision",
            "type": "integer"
          },
          "kind": {
            "enum": [
              "course",
              "lesson",
              "item",
              "rubric",
              "source",
              "objective",
              "standard",
              "review",
              "release",
              "claim",
              "citation"
            ],
            "title": "Kind",
            "type": "string"
          },
          "logical_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Logical Id",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "state": {
            "enum": ["draft", "in_review", "approved", "published", "withdrawn"],
            "title": "State",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": ["tenant_id", "kind", "logical_id", "current_revision", "state", "updated_at"],
        "title": "AggregateSummary",
        "type": "object"
      },
      "AlertConfigResponse": {
        "properties": {
          "condition": {
            "title": "Condition",
            "type": "string"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "notify_email": {
            "title": "Notify Email",
            "type": "boolean"
          },
          "notify_slack": {
            "title": "Notify Slack",
            "type": "boolean"
          },
          "service": {
            "title": "Service",
            "type": "string"
          },
          "threshold": {
            "title": "Threshold",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "service",
          "condition",
          "threshold",
          "enabled",
          "notify_email",
          "notify_slack"
        ],
        "title": "AlertConfigResponse",
        "type": "object"
      },
      "AlertConfigUpdateRequest": {
        "properties": {
          "enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enabled"
          },
          "notify_email": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notify Email"
          },
          "notify_slack": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notify Slack"
          },
          "threshold": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Threshold"
          }
        },
        "title": "AlertConfigUpdateRequest",
        "type": "object"
      },
      "Alias": {
        "additionalProperties": false,
        "description": "Another name the same entry answers to.",
        "properties": {
          "code": {
            "maxLength": 80,
            "minLength": 1,
            "pattern": "^[a-z][a-z0-9_.-]{0,79}$",
            "title": "Code",
            "type": "string"
          },
          "inherited": {
            "default": false,
            "title": "Inherited",
            "type": "boolean"
          },
          "reason": {
            "maxLength": 300,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["code", "reason"],
        "title": "Alias",
        "type": "object"
      },
      "AlignmentConfidence": {
        "additionalProperties": false,
        "properties": {
          "basis": {
            "const": "provider_assessed",
            "default": "provider_assessed",
            "title": "Basis",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["score", "rationale"],
        "title": "AlignmentConfidence",
        "type": "object"
      },
      "AlignmentEdit": {
        "additionalProperties": false,
        "properties": {
          "coverage": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Coverage",
            "type": "number"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "strength": {
            "enum": ["exact", "strong", "moderate", "weak"],
            "title": "Strength",
            "type": "string"
          }
        },
        "required": ["strength", "coverage", "rationale", "limitations"],
        "title": "AlignmentEdit",
        "type": "object"
      },
      "AlignmentLineageResponse": {
        "additionalProperties": false,
        "properties": {
          "alignment_id": {
            "pattern": "^acceptedalign_[a-f0-9]{40}$",
            "title": "Alignment Id",
            "type": "string"
          },
          "checked_at": {
            "format": "date-time",
            "title": "Checked At",
            "type": "string"
          },
          "reasons": {
            "items": {
              "enum": [
                "target_revision_changed",
                "target_content_changed",
                "standard_revision_changed",
                "standard_content_changed",
                "standard_no_longer_current",
                "standard_no_longer_authorized"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Reasons",
            "type": "array"
          },
          "status": {
            "enum": ["current", "review_required"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["alignment_id", "status", "reasons", "checked_at"],
        "title": "AlignmentLineageResponse",
        "type": "object"
      },
      "AlignmentModelEvidence": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "config_sha256",
          "prompt_sha256"
        ],
        "title": "AlignmentModelEvidence",
        "type": "object"
      },
      "AlignmentProposalResponse": {
        "additionalProperties": false,
        "properties": {
          "candidate_index": {
            "maximum": 63.0,
            "minimum": 0.0,
            "title": "Candidate Index",
            "type": "integer"
          },
          "confidence": {
            "$ref": "#/components/schemas/AlignmentConfidence"
          },
          "conflict_alignment_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Conflict Alignment Ids",
            "type": "array"
          },
          "coverage": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Coverage",
            "type": "number"
          },
          "duplicate_alignment_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Duplicate Alignment Ids",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "model_evidence": {
            "$ref": "#/components/schemas/AlignmentModelEvidence"
          },
          "proposal_id": {
            "pattern": "^alignprop_[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Proposal Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "run_id": {
            "pattern": "^alignrun_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "standard": {
            "$ref": "#/components/schemas/CanonicalStandardRecord"
          },
          "status": {
            "const": "proposed",
            "default": "proposed",
            "title": "Status",
            "type": "string"
          },
          "strength": {
            "enum": ["exact", "strong", "moderate", "weak"],
            "title": "Strength",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/AlignmentTargetSnapshot"
          }
        },
        "required": [
          "proposal_id",
          "run_id",
          "candidate_index",
          "target",
          "standard",
          "strength",
          "coverage",
          "rationale",
          "confidence",
          "limitations",
          "model_evidence",
          "proposal_sha256"
        ],
        "title": "AlignmentProposalResponse",
        "type": "object"
      },
      "AlignmentProposalReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "accepted_alignment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AcceptedAlignmentResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AlignmentReviewDecision"
              },
              {
                "type": "null"
              }
            ]
          },
          "lineage": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AlignmentLineageResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "proposal": {
            "$ref": "#/components/schemas/AlignmentProposalResponse"
          },
          "review_status": {
            "enum": ["proposed", "accepted", "edited", "rejected", "review_required"],
            "title": "Review Status",
            "type": "string"
          },
          "run": {
            "$ref": "#/components/schemas/AlignmentSuggestionRunResponse"
          }
        },
        "required": ["run", "proposal", "review_status"],
        "title": "AlignmentProposalReviewResponse",
        "type": "object"
      },
      "AlignmentProviderInvocation": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "outcome": {
            "enum": ["completed", "refused", "malformed", "unavailable"],
            "title": "Outcome",
            "type": "string"
          },
          "outcome_message": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome Message"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "response_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Sha256"
          },
          "served_model": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Model"
          },
          "served_provider": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Provider"
          },
          "tool_access": {
            "const": false,
            "default": false,
            "title": "Tool Access",
            "type": "boolean"
          },
          "transmitted_char_count": {
            "maximum": 42000.0,
            "minimum": 1.0,
            "title": "Transmitted Char Count",
            "type": "integer"
          },
          "transmitted_standard_record_count": {
            "maximum": 16.0,
            "minimum": 1.0,
            "title": "Transmitted Standard Record Count",
            "type": "integer"
          },
          "transmitted_standards_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Transmitted Standards Sha256",
            "type": "string"
          },
          "transmitted_target_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Transmitted Target Sha256",
            "type": "string"
          },
          "trust_labels": {
            "items": {
              "$ref": "#/components/schemas/AlignmentTrustLabel"
            },
            "maxItems": 3,
            "minItems": 2,
            "title": "Trust Labels",
            "type": "array"
          },
          "trust_renderer_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Trust Renderer Version",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "config_sha256",
          "trust_renderer_version",
          "prompt_sha256",
          "request_sha256",
          "transmitted_target_sha256",
          "transmitted_standards_sha256",
          "transmitted_standard_record_count",
          "transmitted_char_count",
          "outcome",
          "trust_labels"
        ],
        "title": "AlignmentProviderInvocation",
        "type": "object"
      },
      "AlignmentReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "edit", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^aligndec_[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "edited_alignment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AlignmentEdit"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Proposal Sha256",
            "type": "string"
          },
          "expected_standard_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Standard Content Sha256",
            "type": "string"
          },
          "expected_target_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Target Content Sha256",
            "type": "string"
          },
          "proposal_id": {
            "pattern": "^alignprop_[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "proposal_id",
          "action",
          "comment",
          "expected_proposal_sha256",
          "expected_target_content_sha256",
          "expected_standard_content_sha256",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "AlignmentReviewDecision",
        "type": "object"
      },
      "AlignmentReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "edit", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "edited_alignment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AlignmentEdit"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Proposal Sha256",
            "type": "string"
          },
          "expected_standard_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Standard Content Sha256",
            "type": "string"
          },
          "expected_target_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Target Content Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": [
          "action",
          "comment",
          "idempotency_key",
          "expected_proposal_sha256",
          "expected_target_content_sha256",
          "expected_standard_content_sha256"
        ],
        "title": "AlignmentReviewRequest",
        "type": "object"
      },
      "AlignmentSuggestionRequest": {
        "additionalProperties": false,
        "properties": {
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reviewer_guidance": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Guidance"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "standard_record_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Standard Record Ids",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/AlignmentTargetSnapshot"
          }
        },
        "required": ["idempotency_key", "target", "standard_record_ids"],
        "title": "AlignmentSuggestionRequest",
        "type": "object"
      },
      "AlignmentSuggestionRunResponse": {
        "additionalProperties": false,
        "properties": {
          "invocation": {
            "$ref": "#/components/schemas/AlignmentProviderInvocation"
          },
          "proposals": {
            "items": {
              "$ref": "#/components/schemas/AlignmentProposalResponse"
            },
            "maxItems": 64,
            "title": "Proposals",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "reviewer_guidance_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Guidance Sha256"
          },
          "run_id": {
            "pattern": "^alignrun_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "standard_records": {
            "items": {
              "$ref": "#/components/schemas/CanonicalStandardRecord"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Standard Records",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/AlignmentTargetSnapshot"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "tenant_id",
          "target",
          "standard_records",
          "requested_by",
          "requested_at",
          "request_sha256",
          "invocation",
          "self_sha256"
        ],
        "title": "AlignmentSuggestionRunResponse",
        "type": "object"
      },
      "AlignmentTargetSnapshot": {
        "additionalProperties": false,
        "description": "One exact, immutable target sent to the suggestion provider.",
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["objective", "content", "item"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "map_id": {
            "anyOf": [
              {
                "pattern": "^currmap_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Map Id"
          },
          "map_revision_id": {
            "anyOf": [
              {
                "pattern": "^currmaprev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Map Revision Id"
          },
          "resource_id": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "source_locator": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Source Locator",
            "type": "string"
          },
          "text": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "resource_id",
          "revision_id",
          "content_sha256",
          "text_sha256",
          "label",
          "text",
          "source_locator"
        ],
        "title": "AlignmentTargetSnapshot",
        "type": "object"
      },
      "AlignmentTrustLabel": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "instruction_semantics": {
            "const": "non-instruction",
            "default": "non-instruction",
            "title": "Instruction Semantics",
            "type": "string"
          },
          "origin": {
            "enum": ["alignment_target", "canonical_standards_registry", "reviewer_guidance"],
            "title": "Origin",
            "type": "string"
          },
          "original_chars": {
            "minimum": 0.0,
            "title": "Original Chars",
            "type": "integer"
          },
          "rendered_chars": {
            "minimum": 0.0,
            "title": "Rendered Chars",
            "type": "integer"
          },
          "rendered_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendered Content Sha256",
            "type": "string"
          },
          "truncated": {
            "const": false,
            "default": false,
            "title": "Truncated",
            "type": "boolean"
          },
          "trust": {
            "const": "untrusted",
            "default": "untrusted",
            "title": "Trust",
            "type": "string"
          }
        },
        "required": [
          "id",
          "origin",
          "content_sha256",
          "rendered_content_sha256",
          "original_chars",
          "rendered_chars"
        ],
        "title": "AlignmentTrustLabel",
        "type": "object"
      },
      "AlignmentWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "accepted_alignments": {
            "items": {
              "$ref": "#/components/schemas/AcceptedAlignmentResponse"
            },
            "maxItems": 16384,
            "title": "Accepted Alignments",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "lineage": {
            "items": {
              "$ref": "#/components/schemas/AlignmentLineageResponse"
            },
            "maxItems": 16384,
            "title": "Lineage",
            "type": "array"
          },
          "proposals": {
            "items": {
              "$ref": "#/components/schemas/AlignmentProposalReviewResponse"
            },
            "maxItems": 16384,
            "title": "Proposals",
            "type": "array"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/AlignmentSuggestionRunResponse"
            },
            "maxItems": 4096,
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/AlignmentWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary"],
        "title": "AlignmentWorkspaceResponse",
        "type": "object"
      },
      "AlignmentWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "minimum": 0.0,
            "title": "Accepted",
            "type": "integer"
          },
          "accepted_alignments": {
            "minimum": 0.0,
            "title": "Accepted Alignments",
            "type": "integer"
          },
          "edited": {
            "minimum": 0.0,
            "title": "Edited",
            "type": "integer"
          },
          "failed_runs": {
            "minimum": 0.0,
            "title": "Failed Runs",
            "type": "integer"
          },
          "proposed": {
            "minimum": 0.0,
            "title": "Proposed",
            "type": "integer"
          },
          "rejected": {
            "minimum": 0.0,
            "title": "Rejected",
            "type": "integer"
          },
          "review_required": {
            "minimum": 0.0,
            "title": "Review Required",
            "type": "integer"
          },
          "total_proposals": {
            "minimum": 0.0,
            "title": "Total Proposals",
            "type": "integer"
          }
        },
        "required": [
          "total_proposals",
          "proposed",
          "accepted",
          "edited",
          "rejected",
          "review_required",
          "failed_runs",
          "accepted_alignments"
        ],
        "title": "AlignmentWorkspaceSummary",
        "type": "object"
      },
      "AllocationReport": {
        "additionalProperties": false,
        "properties": {
          "assigned_count": {
            "minimum": 0.0,
            "title": "Assigned Count",
            "type": "integer"
          },
          "assignments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AssignmentRecord"
            },
            "maxItems": 10000,
            "title": "Assignments",
            "type": "array"
          },
          "deterministic": {
            "title": "Deterministic",
            "type": "boolean"
          },
          "excluded_count": {
            "minimum": 0.0,
            "title": "Excluded Count",
            "type": "integer"
          },
          "experiment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Experiment Id",
            "type": "string"
          },
          "per_variant": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/VariantCount"
            },
            "maxItems": 10,
            "title": "Per Variant",
            "type": "array"
          },
          "ramp_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Ramp Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "experiment_id",
          "ramp_basis_points",
          "assigned_count",
          "excluded_count",
          "deterministic"
        ],
        "title": "AllocationReport",
        "type": "object"
      },
      "AllowedAids": {
        "additionalProperties": false,
        "description": "What this exact attempt is permitted, beyond what the mode allows.",
        "properties": {
          "aid_kinds": {
            "default": [],
            "items": {
              "enum": [
                "calculator",
                "formula_sheet",
                "dictionary",
                "notes",
                "peer_discussion",
                "screen_reader",
                "extra_time",
                "scribe"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "title": "Aid Kinds",
            "type": "array"
          },
          "content_scopes": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Content Scopes",
            "type": "array"
          },
          "hint_stages_permitted": {
            "default": [],
            "items": {
              "enum": ["orient", "probe", "targeted_hint", "worked_step", "full_solution"],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Hint Stages Permitted",
            "type": "array"
          },
          "tool_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Tool Ids",
            "type": "array"
          }
        },
        "title": "AllowedAids",
        "type": "object"
      },
      "AlternativeProvision": {
        "additionalProperties": false,
        "properties": {
          "disposition": {
            "enum": ["provided", "reviewed_not_applicable"],
            "title": "Disposition",
            "type": "string"
          },
          "not_applicable_reason": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Not Applicable Reason"
          },
          "reference": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_by": {
            "format": "uuid",
            "title": "Reviewed By",
            "type": "string"
          }
        },
        "required": ["disposition", "reviewed_by", "reviewed_at"],
        "title": "AlternativeProvision",
        "type": "object"
      },
      "AnalysisResult": {
        "additionalProperties": false,
        "description": "Analysed against one exact pre-registration, and bound to its hash.",
        "properties": {
          "analysed_at": {
            "format": "date-time",
            "title": "Analysed At",
            "type": "string"
          },
          "attrition": {
            "$ref": "#/components/schemas/AttritionReport"
          },
          "confirmatory_tests": {
            "minimum": 0.0,
            "title": "Confirmatory Tests",
            "type": "integer"
          },
          "experiment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Experiment Id",
            "type": "string"
          },
          "guardrail_breaches": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GuardrailBreach"
            },
            "maxItems": 30,
            "title": "Guardrail Breaches",
            "type": "array"
          },
          "limitations": {
            "items": {
              "maxLength": 1000,
              "minLength": 10,
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/MetricAnalysis"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "multiple_testing_policy": {
            "enum": ["bonferroni", "holm", "none_single_primary"],
            "title": "Multiple Testing Policy",
            "type": "string"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "plan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Revision Sha256",
            "type": "string"
          },
          "recommendation": {
            "$ref": "#/components/schemas/RolloutRecommendation"
          },
          "schema_version": {
            "const": "6.12.0",
            "default": "6.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "experiment_id",
          "plan_id",
          "plan_revision_sha256",
          "analysed_at",
          "attrition",
          "metrics",
          "multiple_testing_policy",
          "confirmatory_tests",
          "limitations",
          "recommendation"
        ],
        "title": "AnalysisResult",
        "type": "object"
      },
      "AnalyticsCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["catalog", "known_value", "learning_analytics", "privacy", "state"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "AnalyticsCorpusCaseResult",
        "type": "object"
      },
      "AnalyticsCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["catalog", "known_value", "learning_analytics", "privacy", "state"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "AnalyticsCorpusMetric",
        "type": "object"
      },
      "AnalyticsEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "catalog_covers_every_family": {
            "title": "Catalog Covers Every Family",
            "type": "boolean"
          },
          "corpus_id": {
            "const": "metis-m6.10-author-analytics-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "disclosure_probes": {
            "items": {
              "$ref": "#/components/schemas/DisclosureProbe"
            },
            "maxItems": 40,
            "minItems": 5,
            "title": "Disclosure Probes",
            "type": "array"
          },
          "every_disclosure_refused": {
            "title": "Every Disclosure Refused",
            "type": "boolean"
          },
          "every_quotient_states_its_denominator": {
            "title": "Every Quotient States Its Denominator",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "schema_version": {
            "const": "6.10.0",
            "default": "6.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "corpus_id",
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "catalog_covers_every_family",
          "every_quotient_states_its_denominator",
          "disclosure_probes",
          "every_disclosure_refused"
        ],
        "title": "AnalyticsEvaluationReport",
        "type": "object"
      },
      "AnalyticsToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "AnalyticsToolWitness",
        "type": "object"
      },
      "AnalyticsWindow": {
        "additionalProperties": false,
        "description": "A half-open observation window. A metric without one covers no period.",
        "properties": {
          "closes_at": {
            "format": "date-time",
            "title": "Closes At",
            "type": "string"
          },
          "opens_at": {
            "format": "date-time",
            "title": "Opens At",
            "type": "string"
          }
        },
        "required": ["opens_at", "closes_at"],
        "title": "AnalyticsWindow",
        "type": "object"
      },
      "AnchorResolution": {
        "additionalProperties": false,
        "description": "Where an anchor landed, next to where it started. The original is never replaced.",
        "properties": {
          "candidate_starts": {
            "default": [],
            "items": {
              "type": "integer"
            },
            "maxItems": 50,
            "title": "Candidate Starts",
            "type": "array"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "from_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "From Revision Sha256",
            "type": "string"
          },
          "offset_delta": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Offset Delta"
          },
          "original": {
            "discriminator": {
              "mapping": {
                "entity": "#/components/schemas/EntityAnchor",
                "field": "#/components/schemas/FieldAnchor",
                "item_option": "#/components/schemas/ItemOptionAnchor",
                "region": "#/components/schemas/RegionAnchor",
                "rubric_cell": "#/components/schemas/RubricCellAnchor",
                "text": "#/components/schemas/TextAnchor",
                "timecode": "#/components/schemas/TimecodeAnchor"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/EntityAnchor"
              },
              {
                "$ref": "#/components/schemas/FieldAnchor"
              },
              {
                "$ref": "#/components/schemas/TextAnchor"
              },
              {
                "$ref": "#/components/schemas/RegionAnchor"
              },
              {
                "$ref": "#/components/schemas/TimecodeAnchor"
              },
              {
                "$ref": "#/components/schemas/ItemOptionAnchor"
              },
              {
                "$ref": "#/components/schemas/RubricCellAnchor"
              }
            ],
            "title": "Original"
          },
          "resolved": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "entity": "#/components/schemas/EntityAnchor",
                    "field": "#/components/schemas/FieldAnchor",
                    "item_option": "#/components/schemas/ItemOptionAnchor",
                    "region": "#/components/schemas/RegionAnchor",
                    "rubric_cell": "#/components/schemas/RubricCellAnchor",
                    "text": "#/components/schemas/TextAnchor",
                    "timecode": "#/components/schemas/TimecodeAnchor"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/EntityAnchor"
                  },
                  {
                    "$ref": "#/components/schemas/FieldAnchor"
                  },
                  {
                    "$ref": "#/components/schemas/TextAnchor"
                  },
                  {
                    "$ref": "#/components/schemas/RegionAnchor"
                  },
                  {
                    "$ref": "#/components/schemas/TimecodeAnchor"
                  },
                  {
                    "$ref": "#/components/schemas/ItemOptionAnchor"
                  },
                  {
                    "$ref": "#/components/schemas/RubricCellAnchor"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved"
          },
          "status": {
            "enum": ["exact", "shifted", "ambiguous", "orphaned"],
            "title": "Status",
            "type": "string"
          },
          "to_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Revision Sha256",
            "type": "string"
          }
        },
        "required": ["status", "original", "from_revision_sha256", "to_revision_sha256", "detail"],
        "title": "AnchorResolution",
        "type": "object"
      },
      "AnchoredCommentReport": {
        "additionalProperties": false,
        "properties": {
          "anchor_applicability_cells": {
            "minimum": 1.0,
            "title": "Anchor Applicability Cells",
            "type": "integer"
          },
          "every_protection_reason_reached": {
            "title": "Every Protection Reason Reached",
            "type": "boolean"
          },
          "every_refusal_reason_reached": {
            "title": "Every Refusal Reason Reached",
            "type": "boolean"
          },
          "every_status_reached": {
            "title": "Every Status Reached",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "mutation_scan": {
            "$ref": "#/components/schemas/MutationScan"
          },
          "originals_always_preserved": {
            "title": "Originals Always Preserved",
            "type": "boolean"
          },
          "protection_probes": {
            "items": {
              "$ref": "#/components/schemas/ProtectionProbe"
            },
            "maxItems": 80,
            "minItems": 1,
            "title": "Protection Probes",
            "type": "array"
          },
          "sample_migration": {
            "$ref": "#/components/schemas/ThreadMigration"
          },
          "sample_notification": {
            "$ref": "#/components/schemas/NotificationPlan"
          },
          "sample_refusals": {
            "items": {
              "$ref": "#/components/schemas/CommentRefusal"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sample Refusals",
            "type": "array"
          },
          "sample_thread": {
            "$ref": "#/components/schemas/CommentThread"
          },
          "sample_view": {
            "$ref": "#/components/schemas/ThreadView"
          },
          "schema_version": {
            "const": "7.7.0",
            "default": "7.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "survival_probes": {
            "items": {
              "$ref": "#/components/schemas/SurvivalProbe"
            },
            "maxItems": 40,
            "minItems": 7,
            "title": "Survival Probes",
            "type": "array"
          },
          "verb_matrix_cells": {
            "minimum": 1.0,
            "title": "Verb Matrix Cells",
            "type": "integer"
          }
        },
        "required": [
          "generated_at",
          "anchor_applicability_cells",
          "survival_probes",
          "every_status_reached",
          "originals_always_preserved",
          "protection_probes",
          "every_protection_reason_reached",
          "mutation_scan",
          "verb_matrix_cells",
          "every_refusal_reason_reached",
          "sample_thread",
          "sample_view",
          "sample_migration",
          "sample_notification",
          "sample_refusals"
        ],
        "title": "AnchoredCommentReport",
        "type": "object"
      },
      "AnswerAmbiguityFinding": {
        "additionalProperties": false,
        "properties": {
          "attributed_to": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Attributed To",
            "type": "string"
          },
          "category": {
            "enum": [
              "keyed_answer_not_established",
              "nonkey_not_disproven",
              "multiple_defensible_interpretations_or_answers",
              "missing_context",
              "contradictory_sources",
              "locale_or_cultural_ambiguity",
              "option_overlap",
              "rubric_underdetermination",
              "checker_disagreement",
              "checker_unavailable"
            ],
            "title": "Category",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "exception_eligible": {
            "title": "Exception Eligible",
            "type": "boolean"
          },
          "finding_id": {
            "pattern": "^answer-ambiguity-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Option Ids",
            "type": "array"
          },
          "severity": {
            "enum": ["block", "review"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "category",
          "severity",
          "statement",
          "evidence",
          "uncertainty",
          "attributed_to",
          "exception_eligible"
        ],
        "title": "AnswerAmbiguityFinding",
        "type": "object"
      },
      "AnswerCheckerProvenance": {
        "additionalProperties": false,
        "properties": {
          "checker_kind": {
            "enum": ["symbolic", "executable", "source", "model"],
            "title": "Checker Kind",
            "type": "string"
          },
          "config_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Config Id",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "model_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Id"
          },
          "model_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Sha256"
          },
          "model_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Source References",
            "type": "array"
          }
        },
        "required": [
          "checker_kind",
          "method_id",
          "method_version",
          "method_sha256",
          "config_id",
          "config_version",
          "config_sha256"
        ],
        "title": "AnswerCheckerProvenance",
        "type": "object"
      },
      "AnswerCheckerSubmission": {
        "additionalProperties": false,
        "properties": {
          "applicability_rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Applicability Rationale"
          },
          "checker_id": {
            "pattern": "^answer-checker:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Checker Id",
            "type": "string"
          },
          "configured_timeout_ms": {
            "maximum": 600000.0,
            "minimum": 1.0,
            "title": "Configured Timeout Ms",
            "type": "integer"
          },
          "elapsed_ms": {
            "maximum": 600000.0,
            "minimum": 0.0,
            "title": "Elapsed Ms",
            "type": "integer"
          },
          "error_code": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence",
            "type": "array"
          },
          "human_review_band": {
            "enum": ["confirm", "required", "specialist"],
            "title": "Human Review Band",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail", "timeout", "error", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "outcome_detail": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Outcome Detail",
            "type": "string"
          },
          "provenance": {
            "$ref": "#/components/schemas/AnswerCheckerProvenance"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "checker_id",
          "provenance",
          "outcome",
          "configured_timeout_ms",
          "elapsed_ms",
          "outcome_detail",
          "uncertainty",
          "human_review_band"
        ],
        "title": "AnswerCheckerSubmission",
        "type": "object"
      },
      "AnswerConsistencyAnchor": {
        "additionalProperties": false,
        "properties": {
          "presence": {
            "enum": ["present", "missing"],
            "title": "Presence",
            "type": "string"
          },
          "response_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Response Id",
            "type": "string"
          },
          "response_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Sha256"
          }
        },
        "required": ["response_id", "response_sha256", "presence"],
        "title": "AnswerConsistencyAnchor",
        "type": "object"
      },
      "AnswerConsistencyAssessment": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "pattern": "^answer-consistency-assessment:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "assumptions": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyAssumption"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Assumptions",
            "type": "array"
          },
          "attribution": {
            "$ref": "#/components/schemas/AnswerConsistencyAttribution"
          },
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "expected_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Sha256",
            "type": "string"
          },
          "key_contract_status": {
            "enum": ["satisfies", "fails", "unsupported", "manual_review"],
            "title": "Key Contract Status",
            "type": "string"
          },
          "option_assessments": {
            "items": {
              "$ref": "#/components/schemas/AnswerOptionCorrectnessAssessment"
            },
            "maxItems": 100,
            "title": "Option Assessments",
            "type": "array"
          },
          "source_status": {
            "enum": ["satisfies", "fails", "unsupported", "manual_review", "not_applicable"],
            "title": "Source Status",
            "type": "string"
          },
          "surface_assessments": {
            "items": {
              "$ref": "#/components/schemas/AnswerSurfaceConsistencyAssessment"
            },
            "maxItems": 300,
            "title": "Surface Assessments",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "assessment_id",
          "expected_source_sha256",
          "attribution",
          "key_contract_status",
          "source_status",
          "assumptions",
          "option_assessments",
          "surface_assessments",
          "evidence",
          "uncertainty"
        ],
        "title": "AnswerConsistencyAssessment",
        "type": "object"
      },
      "AnswerConsistencyAssumption": {
        "additionalProperties": false,
        "properties": {
          "assumption_id": {
            "pattern": "^answer-assumption:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Assumption Id",
            "type": "string"
          },
          "falsifiable": {
            "const": true,
            "default": true,
            "title": "Falsifiable",
            "type": "boolean"
          },
          "scope": {
            "enum": ["stem", "source", "scoring", "equivalence", "tolerance"],
            "title": "Scope",
            "type": "string"
          },
          "source_reference": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Reference"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["assumption_id", "scope", "statement"],
        "title": "AnswerConsistencyAssumption",
        "type": "object"
      },
      "AnswerConsistencyAttribution": {
        "additionalProperties": false,
        "properties": {
          "assist_kind": {
            "enum": ["source_checker", "human_assist", "model"],
            "title": "Assist Kind",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "model_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Id"
          },
          "model_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Sha256"
          },
          "model_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "provider_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Provider Id",
            "type": "string"
          }
        },
        "required": [
          "assist_kind",
          "provider_id",
          "method_id",
          "method_version",
          "method_sha256",
          "config_sha256"
        ],
        "title": "AnswerConsistencyAttribution",
        "type": "object"
      },
      "AnswerConsistencyDecision": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["confirm", "resolve", "dismiss"],
            "title": "Decision",
            "type": "string"
          },
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^answer-consistency-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["finding_id", "decision", "rationale"],
        "title": "AnswerConsistencyDecision",
        "type": "object"
      },
      "AnswerConsistencyFinding": {
        "additionalProperties": false,
        "properties": {
          "attributed_to": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Attributed To",
            "type": "string"
          },
          "category": {
            "enum": [
              "kind_response_mismatch",
              "key_cardinality_mismatch",
              "key_reference_invalid",
              "key_not_unique",
              "order_contract_invalid",
              "matching_contract_invalid",
              "scoring_contract_invalid",
              "equivalent_key_nonkey",
              "tolerance_overlap",
              "keyed_correctness_not_established",
              "nonkey_correctness_not_rejected",
              "source_correctness_not_established",
              "rationale_reference_invalid",
              "rationale_key_mismatch",
              "surface_consistency_not_established"
            ],
            "title": "Category",
            "type": "string"
          },
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^answer-consistency-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "origin": {
            "enum": ["deterministic", "semantic_assessment"],
            "title": "Origin",
            "type": "string"
          },
          "response_anchors": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyAnchor"
            },
            "maxItems": 100,
            "title": "Response Anchors",
            "type": "array"
          },
          "severity": {
            "enum": ["review", "block"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "surface_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 300,
            "title": "Surface Ids",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "origin",
          "category",
          "severity",
          "response_anchors",
          "statement",
          "evidence",
          "uncertainty",
          "attributed_to"
        ],
        "title": "AnswerConsistencyFinding",
        "type": "object"
      },
      "AnswerConsistencyFreshness": {
        "additionalProperties": false,
        "properties": {
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "stale_reasons": {
            "items": {
              "enum": [
                "scan_missing",
                "review_missing",
                "gate_missing",
                "item_revision_changed",
                "responses_changed",
                "order_changed",
                "key_changed",
                "scoring_changed",
                "rationales_changed",
                "sources_changed",
                "feedback_changed",
                "hints_changed",
                "scan_changed",
                "review_changed"
              ],
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          }
        },
        "required": ["review_required", "stale_reasons"],
        "title": "AnswerConsistencyFreshness",
        "type": "object"
      },
      "AnswerConsistencyGateContent": {
        "additionalProperties": false,
        "properties": {
          "blocking_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Blocking Reasons",
            "type": "array"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "mutation_reasons": {
            "items": {
              "enum": [
                "item_revision_changed",
                "responses_changed",
                "order_changed",
                "key_changed",
                "scoring_changed",
                "rationales_changed",
                "sources_changed",
                "feedback_changed",
                "hints_changed"
              ],
              "type": "string"
            },
            "title": "Mutation Reasons",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          },
          "review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Revision Sha256",
            "type": "string"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "scan_revision_sha256",
          "review_revision_sha256",
          "source_revision_sha256",
          "requested_action",
          "status",
          "release_allowed",
          "raw_findings",
          "decisions",
          "mutation_reasons",
          "blocking_reasons"
        ],
        "title": "AnswerConsistencyGateContent",
        "type": "object"
      },
      "AnswerConsistencyGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_review_revision": {
            "minimum": 1.0,
            "title": "Expected Review Revision",
            "type": "integer"
          },
          "expected_review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Review Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_review_revision",
          "expected_review_revision_sha256",
          "requested_action",
          "reason"
        ],
        "title": "AnswerConsistencyGateRequest",
        "type": "object"
      },
      "AnswerConsistencyGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerConsistencyGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^answer-consistency-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.5.0",
            "default": "5.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerConsistencyGateResponse",
        "type": "object"
      },
      "AnswerConsistencyHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyReviewResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "scans": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyScanResponse"
            },
            "title": "Scans",
            "type": "array"
          },
          "schema_version": {
            "const": "5.5.0",
            "default": "5.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "scans", "reviews", "gates"],
        "title": "AnswerConsistencyHistoryResponse",
        "type": "object"
      },
      "AnswerConsistencyKey": {
        "additionalProperties": false,
        "properties": {
          "matching_pairs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyPair"
            },
            "maxItems": 100,
            "title": "Matching Pairs",
            "type": "array"
          },
          "multiple_response_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Multiple Response Ids",
            "type": "array"
          },
          "ordered_response_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Ordered Response Ids",
            "type": "array"
          },
          "single_response_id": {
            "anyOf": [
              {
                "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Single Response Id"
          }
        },
        "title": "AnswerConsistencyKey",
        "type": "object"
      },
      "AnswerConsistencyPair": {
        "additionalProperties": false,
        "properties": {
          "response_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Response Id",
            "type": "string"
          },
          "target_id": {
            "pattern": "^target:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["response_id", "target_id"],
        "title": "AnswerConsistencyPair",
        "type": "object"
      },
      "AnswerConsistencyPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerConsistencyGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerConsistencyReviewResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_scan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerConsistencyScanResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/AnswerConsistencyFreshness"
          },
          "schema_version": {
            "const": "5.5.0",
            "default": "5.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/AnswerConsistencySource"
          }
        },
        "required": ["source", "current_scan", "current_review", "current_gate", "freshness"],
        "title": "AnswerConsistencyPreparationResponse",
        "type": "object"
      },
      "AnswerConsistencyResponse": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "feedback": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Feedback",
            "type": "string"
          },
          "feedback_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Feedback Sha256",
            "type": "string"
          },
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "response_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Response Id",
            "type": "string"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": [
          "response_id",
          "order",
          "text",
          "accessible_text",
          "text_sha256",
          "feedback",
          "feedback_sha256"
        ],
        "title": "AnswerConsistencyResponse",
        "type": "object"
      },
      "AnswerConsistencyReviewContent": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "dismissed_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Dismissed Finding Ids",
            "type": "array"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "semantic_findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyFinding"
            },
            "title": "Semantic Findings",
            "type": "array"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "unresolved_semantic_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Semantic Finding Ids",
            "type": "array"
          }
        },
        "required": [
          "scan_revision_sha256",
          "source_revision_sha256",
          "semantic_findings",
          "decisions",
          "unresolved_semantic_finding_ids",
          "dismissed_finding_ids"
        ],
        "title": "AnswerConsistencyReviewContent",
        "type": "object"
      },
      "AnswerConsistencyReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyDecision"
            },
            "maxItems": 600,
            "title": "Decisions",
            "type": "array"
          },
          "expected_review_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision"
          },
          "expected_review_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision Sha256"
          },
          "expected_scan_revision": {
            "minimum": 1.0,
            "title": "Expected Scan Revision",
            "type": "integer"
          },
          "expected_scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Scan Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_scan_revision",
          "expected_scan_revision_sha256",
          "reason",
          "decisions"
        ],
        "title": "AnswerConsistencyReviewRequest",
        "type": "object"
      },
      "AnswerConsistencyReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerConsistencyReviewContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^answer-consistency-review-[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.5.0",
            "default": "5.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerConsistencyReviewResponse",
        "type": "object"
      },
      "AnswerConsistencyScanContent": {
        "additionalProperties": false,
        "properties": {
          "assessment": {
            "$ref": "#/components/schemas/AnswerConsistencyAssessment"
          },
          "automated_status": {
            "enum": ["clear", "review", "blocked"],
            "title": "Automated Status",
            "type": "string"
          },
          "equivalence_assertions": {
            "items": {
              "$ref": "#/components/schemas/AnswerEquivalenceAssertion"
            },
            "maxItems": 100,
            "title": "Equivalence Assertions",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyFinding"
            },
            "maxItems": 600,
            "title": "Raw Findings",
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/AnswerConsistencySource"
          },
          "tolerance_bands": {
            "items": {
              "$ref": "#/components/schemas/AnswerToleranceBand"
            },
            "maxItems": 100,
            "title": "Tolerance Bands",
            "type": "array"
          }
        },
        "required": [
          "source",
          "equivalence_assertions",
          "tolerance_bands",
          "assessment",
          "raw_findings",
          "automated_status",
          "limitations"
        ],
        "title": "AnswerConsistencyScanContent",
        "type": "object"
      },
      "AnswerConsistencyScanRequest": {
        "additionalProperties": false,
        "properties": {
          "assessment": {
            "$ref": "#/components/schemas/AnswerConsistencyAssessment"
          },
          "equivalence_assertions": {
            "items": {
              "$ref": "#/components/schemas/AnswerEquivalenceAssertion"
            },
            "maxItems": 100,
            "title": "Equivalence Assertions",
            "type": "array"
          },
          "expected_scan_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision"
          },
          "expected_scan_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision Sha256"
          },
          "expected_selected_response_revision": {
            "minimum": 1.0,
            "title": "Expected Selected Response Revision",
            "type": "integer"
          },
          "expected_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Selected Response Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "tolerance_bands": {
            "items": {
              "$ref": "#/components/schemas/AnswerToleranceBand"
            },
            "maxItems": 100,
            "title": "Tolerance Bands",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "expected_selected_response_revision",
          "expected_selected_response_revision_sha256",
          "locale",
          "reason",
          "equivalence_assertions",
          "tolerance_bands",
          "assessment"
        ],
        "title": "AnswerConsistencyScanRequest",
        "type": "object"
      },
      "AnswerConsistencyScanResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerConsistencyScanContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "scan_id": {
            "pattern": "^answer-consistency-scan-[a-f0-9]{40}$",
            "title": "Scan Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.5.0",
            "default": "5.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "scan_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerConsistencyScanResponse",
        "type": "object"
      },
      "AnswerConsistencyScoring": {
        "additionalProperties": false,
        "properties": {
          "incorrect_penalty_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Incorrect Penalty Basis Points",
            "type": "integer"
          },
          "maximum_points": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Maximum Points",
            "type": "integer"
          },
          "maximum_selections": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Selections"
          },
          "method": {
            "enum": ["exact", "partial"],
            "title": "Method",
            "type": "string"
          },
          "minimum_selections": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Selections"
          },
          "partial_credit_method": {
            "enum": ["none", "per_correct_less_incorrect", "per_position", "per_pair"],
            "title": "Partial Credit Method",
            "type": "string"
          }
        },
        "required": [
          "method",
          "maximum_points",
          "partial_credit_method",
          "incorrect_penalty_basis_points"
        ],
        "title": "AnswerConsistencyScoring",
        "type": "object"
      },
      "AnswerConsistencySource": {
        "additionalProperties": false,
        "properties": {
          "consistency_surfaces": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencySurface"
            },
            "maxItems": 300,
            "minItems": 3,
            "title": "Consistency Surfaces",
            "type": "array"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "feedback_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Feedback Sha256",
            "type": "string"
          },
          "hint_policy": {
            "const": "not_authored_in_selected_response_contract",
            "default": "not_authored_in_selected_response_contract",
            "title": "Hint Policy",
            "type": "string"
          },
          "hint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Hint Sha256",
            "type": "string"
          },
          "key": {
            "$ref": "#/components/schemas/AnswerConsistencyKey"
          },
          "key_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Key Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "rationale_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rationale Sha256",
            "type": "string"
          },
          "response_order_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Order Sha256",
            "type": "string"
          },
          "response_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Set Sha256",
            "type": "string"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "responses": {
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyResponse"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Responses",
            "type": "array"
          },
          "scoring": {
            "$ref": "#/components/schemas/AnswerConsistencyScoring"
          },
          "scoring_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scoring Sha256",
            "type": "string"
          },
          "selected_response_id": {
            "pattern": "^selected-response-[a-f0-9]{40}$",
            "title": "Selected Response Id",
            "type": "string"
          },
          "selected_response_revision": {
            "minimum": 1.0,
            "title": "Selected Response Revision",
            "type": "integer"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "source_references_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source References Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          },
          "targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AnswerConsistencyTarget"
            },
            "maxItems": 100,
            "title": "Targets",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "draft_id",
          "selected_response_id",
          "selected_response_revision",
          "selected_response_revision_sha256",
          "kind",
          "response_type",
          "locale",
          "stem",
          "source_references",
          "responses",
          "key",
          "scoring",
          "consistency_surfaces",
          "response_set_sha256",
          "response_order_sha256",
          "key_sha256",
          "scoring_sha256",
          "rationale_sha256",
          "source_references_sha256",
          "feedback_sha256",
          "hint_sha256",
          "source_sha256"
        ],
        "title": "AnswerConsistencySource",
        "type": "object"
      },
      "AnswerConsistencySurface": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": ["correct_rationale", "distractor_rationale", "learner_feedback", "hint"],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "response_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Response Ids",
            "type": "array"
          },
          "surface_id": {
            "pattern": "^answer-surface:[a-f0-9]{40}$",
            "title": "Surface Id",
            "type": "string"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": ["surface_id", "kind", "locale", "text", "text_sha256"],
        "title": "AnswerConsistencySurface",
        "type": "object"
      },
      "AnswerConsistencyTarget": {
        "additionalProperties": false,
        "properties": {
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "target_id": {
            "pattern": "^target:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Target Id",
            "type": "string"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": ["target_id", "order", "text", "text_sha256"],
        "title": "AnswerConsistencyTarget",
        "type": "object"
      },
      "AnswerEquivalenceAssertion": {
        "additionalProperties": false,
        "properties": {
          "assertion_id": {
            "pattern": "^answer-equivalence:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Assertion Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "relation": {
            "enum": ["equivalent", "distinct", "overlap", "unknown"],
            "title": "Relation",
            "type": "string"
          },
          "response_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Response Ids",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": ["assertion_id", "relation", "response_ids", "evidence", "uncertainty"],
        "title": "AnswerEquivalenceAssertion",
        "type": "object"
      },
      "AnswerEvidenceBundle": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "items": {
              "$ref": "#/components/schemas/AnswerVerificationAssumption"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Assumptions",
            "type": "array"
          },
          "interpretations": {
            "items": {
              "$ref": "#/components/schemas/AnswerInterpretationEvidence"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Interpretations",
            "type": "array"
          },
          "option_assessments": {
            "items": {
              "$ref": "#/components/schemas/AnswerOptionAssessment"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Option Assessments",
            "type": "array"
          },
          "rubric": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerRubricEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_positions": {
            "items": {
              "$ref": "#/components/schemas/AnswerSourcePosition"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Source Positions",
            "type": "array"
          },
          "tolerances": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AnswerVerificationTolerance"
            },
            "maxItems": 32,
            "title": "Tolerances",
            "type": "array"
          }
        },
        "required": ["assumptions", "option_assessments", "source_positions", "interpretations"],
        "title": "AnswerEvidenceBundle",
        "type": "object"
      },
      "AnswerFindingDecision": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["confirm", "resolve", "false_positive"],
            "title": "Decision",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^answer-ambiguity-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "resolution_evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Resolution Evidence",
            "type": "array"
          }
        },
        "required": ["finding_id", "decision", "rationale"],
        "title": "AnswerFindingDecision",
        "type": "object"
      },
      "AnswerInterpretationEvidence": {
        "additionalProperties": false,
        "properties": {
          "cultural_context": {
            "maxLength": 255,
            "minLength": 2,
            "title": "Cultural Context",
            "type": "string"
          },
          "defensible_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Defensible Option Ids",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "interpretation": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Interpretation",
            "type": "string"
          },
          "interpretation_id": {
            "pattern": "^answer-interpretation:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Interpretation Id",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "missing_context": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Missing Context",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "interpretation_id",
          "locale",
          "cultural_context",
          "interpretation",
          "defensible_option_ids",
          "evidence",
          "uncertainty"
        ],
        "title": "AnswerInterpretationEvidence",
        "type": "object"
      },
      "AnswerLeakageCoverageManifest": {
        "additionalProperties": false,
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/LeakageCoverageEntry"
            },
            "maxItems": 64,
            "minItems": 22,
            "title": "Entries",
            "type": "array"
          },
          "manifest_id": {
            "const": "metis.answer-leakage.channels",
            "default": "metis.answer-leakage.channels",
            "title": "Manifest Id",
            "type": "string"
          },
          "manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          },
          "manifest_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Manifest Version",
            "type": "string"
          },
          "protected_kinds": {
            "items": {
              "enum": [
                "key_option_identity",
                "key_option_text",
                "correct_rationale",
                "distractor_rationale",
                "misconception",
                "response_rule",
                "test_field"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Protected Kinds",
            "type": "array"
          }
        },
        "required": ["manifest_sha256", "entries", "protected_kinds"],
        "title": "AnswerLeakageCoverageManifest",
        "type": "object"
      },
      "AnswerLeakageCoverageResult": {
        "additionalProperties": false,
        "properties": {
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "encryption_cases": {
            "minimum": 0.0,
            "title": "Encryption Cases",
            "type": "integer"
          },
          "missing_channels": {
            "items": {
              "enum": [
                "ui",
                "api",
                "renderer",
                "search",
                "cache",
                "event",
                "analytics",
                "export",
                "qti",
                "lti",
                "scorm",
                "xapi",
                "course_package",
                "preview",
                "deep_link",
                "url",
                "client_bundle",
                "client_state",
                "error",
                "log",
                "trace",
                "support_export"
              ],
              "type": "string"
            },
            "title": "Missing Channels",
            "type": "array"
          },
          "missing_locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "title": "Missing Locales",
            "type": "array"
          },
          "missing_roles": {
            "items": {
              "enum": ["learner", "anonymous"],
              "type": "string"
            },
            "title": "Missing Roles",
            "type": "array"
          },
          "missing_surfaces": {
            "items": {
              "type": "string"
            },
            "title": "Missing Surfaces",
            "type": "array"
          },
          "randomization_cases": {
            "minimum": 0.0,
            "title": "Randomization Cases",
            "type": "integer"
          },
          "required_channels": {
            "items": {
              "enum": [
                "ui",
                "api",
                "renderer",
                "search",
                "cache",
                "event",
                "analytics",
                "export",
                "qti",
                "lti",
                "scorm",
                "xapi",
                "course_package",
                "preview",
                "deep_link",
                "url",
                "client_bundle",
                "client_state",
                "error",
                "log",
                "trace",
                "support_export"
              ],
              "type": "string"
            },
            "maxItems": 22,
            "minItems": 22,
            "title": "Required Channels",
            "type": "array"
          },
          "required_locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "title": "Required Locales",
            "type": "array"
          },
          "required_roles": {
            "default": ["learner", "anonymous"],
            "items": {
              "enum": ["learner", "anonymous"],
              "type": "string"
            },
            "title": "Required Roles",
            "type": "array"
          },
          "scanned_channels": {
            "items": {
              "enum": [
                "ui",
                "api",
                "renderer",
                "search",
                "cache",
                "event",
                "analytics",
                "export",
                "qti",
                "lti",
                "scorm",
                "xapi",
                "course_package",
                "preview",
                "deep_link",
                "url",
                "client_bundle",
                "client_state",
                "error",
                "log",
                "trace",
                "support_export"
              ],
              "type": "string"
            },
            "title": "Scanned Channels",
            "type": "array"
          },
          "scanned_locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "title": "Scanned Locales",
            "type": "array"
          },
          "scanned_roles": {
            "items": {
              "enum": ["learner", "anonymous"],
              "type": "string"
            },
            "title": "Scanned Roles",
            "type": "array"
          }
        },
        "required": [
          "required_channels",
          "scanned_channels",
          "missing_channels",
          "missing_surfaces",
          "required_locales",
          "scanned_locales",
          "missing_locales",
          "scanned_roles",
          "missing_roles",
          "randomization_cases",
          "encryption_cases",
          "complete"
        ],
        "title": "AnswerLeakageCoverageResult",
        "type": "object"
      },
      "AnswerLeakageFinding": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Id"
          },
          "channel": {
            "anyOf": [
              {
                "enum": [
                  "ui",
                  "api",
                  "renderer",
                  "search",
                  "cache",
                  "event",
                  "analytics",
                  "export",
                  "qti",
                  "lti",
                  "scorm",
                  "xapi",
                  "course_package",
                  "preview",
                  "deep_link",
                  "url",
                  "client_bundle",
                  "client_state",
                  "error",
                  "log",
                  "trace",
                  "support_export"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Channel"
          },
          "detection_kind": {
            "enum": [
              "exact",
              "normalized",
              "encoded",
              "indirect",
              "positional",
              "client_decryptable",
              "scanner_unavailable",
              "channel_missing",
              "surface_missing",
              "locale_missing",
              "role_missing",
              "randomization_unsafe"
            ],
            "title": "Detection Kind",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "exception_eligible": {
            "const": false,
            "default": false,
            "title": "Exception Eligible",
            "type": "boolean"
          },
          "finding_id": {
            "pattern": "^answer-leakage-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "protected_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protected Id"
          },
          "scanner_observation_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Scanner Observation Ids",
            "type": "array"
          },
          "severity": {
            "const": "block",
            "default": "block",
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "surface_kind": {
            "anyOf": [
              {
                "enum": [
                  "stem",
                  "option",
                  "learner_feedback",
                  "hint",
                  "metadata",
                  "filename",
                  "identifier",
                  "accessibility_text",
                  "image_pixels",
                  "audio",
                  "transcript",
                  "caption",
                  "description",
                  "document",
                  "code",
                  "runtime_output",
                  "interactive_state",
                  "hidden_metadata",
                  "package_payload",
                  "client_bundle",
                  "client_state",
                  "error_message",
                  "log_entry",
                  "trace_payload",
                  "url",
                  "support_payload"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Surface Kind"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "detection_kind",
          "channel",
          "surface_kind",
          "artifact_id",
          "protected_id",
          "statement",
          "evidence",
          "uncertainty"
        ],
        "title": "AnswerLeakageFinding",
        "type": "object"
      },
      "AnswerLeakageFindingDecision": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["confirm", "resolve", "false_positive"],
            "title": "Decision",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^answer-leakage-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "resolution_evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Resolution Evidence",
            "type": "array"
          }
        },
        "required": ["finding_id", "decision", "rationale"],
        "title": "AnswerLeakageFindingDecision",
        "type": "object"
      },
      "AnswerLeakageFreshness": {
        "additionalProperties": false,
        "properties": {
          "current_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Selected Response Revision Sha256",
            "type": "string"
          },
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "scanned_selected_response_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scanned Selected Response Revision Sha256"
          },
          "stale_reasons": {
            "items": {
              "enum": [
                "scan_missing",
                "review_missing",
                "gate_missing",
                "item_revision_changed",
                "scan_changed",
                "review_changed"
              ],
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          }
        },
        "required": [
          "review_required",
          "stale_reasons",
          "current_selected_response_revision_sha256",
          "scanned_selected_response_revision_sha256"
        ],
        "title": "AnswerLeakageFreshness",
        "type": "object"
      },
      "AnswerLeakageHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageReleaseGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageReviewResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "scans": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageScanResponse"
            },
            "title": "Scans",
            "type": "array"
          },
          "schema_version": {
            "const": "4.13.0",
            "default": "4.13.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "scans", "reviews", "gates"],
        "title": "AnswerLeakageHistoryResponse",
        "type": "object"
      },
      "AnswerLeakagePreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerLeakageReleaseGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerLeakageReviewResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_scan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerLeakageScanResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/AnswerLeakageFreshness"
          },
          "manifest": {
            "$ref": "#/components/schemas/AnswerLeakageCoverageManifest"
          },
          "schema_version": {
            "const": "4.13.0",
            "default": "4.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/AnswerLeakageSourceSnapshot"
          }
        },
        "required": [
          "source",
          "manifest",
          "current_scan",
          "current_review",
          "current_gate",
          "freshness"
        ],
        "title": "AnswerLeakagePreparationResponse",
        "type": "object"
      },
      "AnswerLeakageReleaseGateContent": {
        "additionalProperties": false,
        "properties": {
          "blocking_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Blocking Reasons",
            "type": "array"
          },
          "coverage_complete": {
            "title": "Coverage Complete",
            "type": "boolean"
          },
          "exception_allowed": {
            "const": false,
            "default": false,
            "title": "Exception Allowed",
            "type": "boolean"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Revision Sha256",
            "type": "string"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "unresolved_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Finding Ids",
            "type": "array"
          }
        },
        "required": [
          "scan_revision_sha256",
          "review_revision_sha256",
          "selected_response_revision_sha256",
          "status",
          "release_allowed",
          "coverage_complete",
          "raw_findings",
          "unresolved_finding_ids",
          "blocking_reasons"
        ],
        "title": "AnswerLeakageReleaseGateContent",
        "type": "object"
      },
      "AnswerLeakageReleaseGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_review_revision": {
            "minimum": 1.0,
            "title": "Expected Review Revision",
            "type": "integer"
          },
          "expected_review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Review Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_review_revision",
          "expected_review_revision_sha256",
          "reason"
        ],
        "title": "AnswerLeakageReleaseGateRequest",
        "type": "object"
      },
      "AnswerLeakageReleaseGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerLeakageReleaseGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^answer-leakage-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.13.0",
            "default": "4.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerLeakageReleaseGateResponse",
        "type": "object"
      },
      "AnswerLeakageReviewContent": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageFindingDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "exception_allowed": {
            "const": false,
            "default": false,
            "title": "Exception Allowed",
            "type": "boolean"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "reviewer_state": {
            "const": "completed",
            "default": "completed",
            "title": "Reviewer State",
            "type": "string"
          },
          "reviewer_verdict": {
            "enum": ["clear", "exposure", "incomplete"],
            "title": "Reviewer Verdict",
            "type": "string"
          },
          "scan_id": {
            "title": "Scan Id",
            "type": "string"
          },
          "scan_revision": {
            "minimum": 1.0,
            "title": "Scan Revision",
            "type": "integer"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "unresolved_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Finding Ids",
            "type": "array"
          }
        },
        "required": [
          "scan_id",
          "scan_revision",
          "scan_revision_sha256",
          "selected_response_revision_sha256",
          "raw_findings",
          "decisions",
          "reviewer_verdict",
          "unresolved_finding_ids"
        ],
        "title": "AnswerLeakageReviewContent",
        "type": "object"
      },
      "AnswerLeakageReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageFindingDecision"
            },
            "maxItems": 2000,
            "title": "Decisions",
            "type": "array"
          },
          "expected_review_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision"
          },
          "expected_review_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision Sha256"
          },
          "expected_scan_revision": {
            "minimum": 1.0,
            "title": "Expected Scan Revision",
            "type": "integer"
          },
          "expected_scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Scan Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reviewer_verdict": {
            "enum": ["clear", "exposure", "incomplete"],
            "title": "Reviewer Verdict",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_scan_revision",
          "expected_scan_revision_sha256",
          "reviewer_verdict",
          "decisions",
          "reason"
        ],
        "title": "AnswerLeakageReviewRequest",
        "type": "object"
      },
      "AnswerLeakageReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerLeakageReviewContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^answer-leakage-review-[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.13.0",
            "default": "4.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerLeakageReviewResponse",
        "type": "object"
      },
      "AnswerLeakageScanContent": {
        "additionalProperties": false,
        "properties": {
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/LearnerVisibleLeakageArtifact"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Artifacts",
            "type": "array"
          },
          "coverage": {
            "$ref": "#/components/schemas/AnswerLeakageCoverageResult"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerLeakageFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "human_review_required": {
            "const": true,
            "default": true,
            "title": "Human Review Required",
            "type": "boolean"
          },
          "manifest": {
            "$ref": "#/components/schemas/AnswerLeakageCoverageManifest"
          },
          "presentations": {
            "items": {
              "$ref": "#/components/schemas/LeakagePresentationCase"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Presentations",
            "type": "array"
          },
          "raw_findings_preserved": {
            "const": true,
            "default": true,
            "title": "Raw Findings Preserved",
            "type": "boolean"
          },
          "source": {
            "$ref": "#/components/schemas/AnswerLeakageSourceSnapshot"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          },
          "verdict": {
            "enum": ["clear_candidate", "leak_detected", "incomplete"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": [
          "source",
          "manifest",
          "artifacts",
          "presentations",
          "coverage",
          "findings",
          "verdict",
          "uncertainty"
        ],
        "title": "AnswerLeakageScanContent",
        "type": "object"
      },
      "AnswerLeakageScanRequest": {
        "additionalProperties": false,
        "properties": {
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/LearnerVisibleLeakageArtifact"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Artifacts",
            "type": "array"
          },
          "expected_scan_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision"
          },
          "expected_scan_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision Sha256"
          },
          "expected_selected_response_revision": {
            "minimum": 1.0,
            "title": "Expected Selected Response Revision",
            "type": "integer"
          },
          "expected_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Selected Response Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "presentations": {
            "items": {
              "$ref": "#/components/schemas/LeakagePresentationCase"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Presentations",
            "type": "array"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_selected_response_revision",
          "expected_selected_response_revision_sha256",
          "artifacts",
          "presentations",
          "reason"
        ],
        "title": "AnswerLeakageScanRequest",
        "type": "object"
      },
      "AnswerLeakageScanResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerLeakageScanContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "scan_id": {
            "pattern": "^answer-leakage-scan-[a-f0-9]{40}$",
            "title": "Scan Id",
            "type": "string"
          },
          "schema_version": {
            "const": "4.13.0",
            "default": "4.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "scan_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerLeakageScanResponse",
        "type": "object"
      },
      "AnswerLeakageSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "item_kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Item Kind",
            "type": "string"
          },
          "locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Option Ids",
            "type": "array"
          },
          "protected_material": {
            "items": {
              "$ref": "#/components/schemas/LeakageProtectedMaterialDescriptor"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Protected Material",
            "type": "array"
          },
          "selected_response_id": {
            "pattern": "^selected-response-[a-f0-9]{40}$",
            "title": "Selected Response Id",
            "type": "string"
          },
          "selected_response_revision": {
            "minimum": 1.0,
            "title": "Selected Response Revision",
            "type": "integer"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "draft_id",
          "selected_response_id",
          "selected_response_revision",
          "selected_response_revision_sha256",
          "item_kind",
          "locales",
          "option_ids",
          "protected_material",
          "source_sha256"
        ],
        "title": "AnswerLeakageSourceSnapshot",
        "type": "object"
      },
      "AnswerOptionAssessment": {
        "additionalProperties": false,
        "properties": {
          "assumption_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Assumption Ids",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "prompt_status": {
            "enum": ["satisfies", "fails", "uncertain"],
            "title": "Prompt Status",
            "type": "string"
          },
          "response_rule_status": {
            "enum": ["satisfies", "fails", "uncertain"],
            "title": "Response Rule Status",
            "type": "string"
          },
          "source_status": {
            "enum": ["supports", "rejects", "conflicts", "unknown"],
            "title": "Source Status",
            "type": "string"
          },
          "tolerance_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Tolerance Ids",
            "type": "array"
          }
        },
        "required": [
          "option_id",
          "prompt_status",
          "source_status",
          "response_rule_status",
          "evidence",
          "assumption_ids"
        ],
        "title": "AnswerOptionAssessment",
        "type": "object"
      },
      "AnswerOptionCorrectnessAssessment": {
        "additionalProperties": false,
        "properties": {
          "assumption_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Assumption Ids",
            "type": "array"
          },
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "response_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Response Id",
            "type": "string"
          },
          "status": {
            "enum": ["satisfies", "fails", "unsupported", "manual_review", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "tolerance_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Tolerance Ids",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": ["response_id", "status", "evidence", "uncertainty"],
        "title": "AnswerOptionCorrectnessAssessment",
        "type": "object"
      },
      "AnswerPublicationGateContent": {
        "additionalProperties": false,
        "properties": {
          "blocking_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Blocking Reasons",
            "type": "array"
          },
          "exception": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerVerificationException"
              },
              {
                "type": "null"
              }
            ]
          },
          "exception_limit": {
            "const": "one checker-unavailable finding; admin; maximum 30 days; one use",
            "default": "one checker-unavailable finding; admin; maximum 30 days; one use",
            "title": "Exception Limit",
            "type": "string"
          },
          "publication_allowed": {
            "title": "Publication Allowed",
            "type": "boolean"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerAmbiguityFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          },
          "review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Revision Sha256",
            "type": "string"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "unresolved_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Finding Ids",
            "type": "array"
          },
          "verification_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verification Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "verification_revision_sha256",
          "review_revision_sha256",
          "selected_response_revision_sha256",
          "requested_action",
          "status",
          "publication_allowed",
          "raw_findings",
          "unresolved_finding_ids",
          "blocking_reasons"
        ],
        "title": "AnswerPublicationGateContent",
        "type": "object"
      },
      "AnswerPublicationGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_review_revision": {
            "minimum": 1.0,
            "title": "Expected Review Revision",
            "type": "integer"
          },
          "expected_review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Review Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_review_revision",
          "expected_review_revision_sha256",
          "requested_action",
          "reason"
        ],
        "title": "AnswerPublicationGateRequest",
        "type": "object"
      },
      "AnswerPublicationGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerPublicationGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^answer-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.12.0",
            "default": "4.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerPublicationGateResponse",
        "type": "object"
      },
      "AnswerReviewContent": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/AnswerFindingDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "exception": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerVerificationException"
              },
              {
                "type": "null"
              }
            ]
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerAmbiguityFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "reviewer_state": {
            "const": "completed",
            "default": "completed",
            "title": "Reviewer State",
            "type": "string"
          },
          "reviewer_verdict": {
            "enum": ["unique", "ambiguous", "not_applicable"],
            "title": "Reviewer Verdict",
            "type": "string"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "unresolved_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Finding Ids",
            "type": "array"
          },
          "verification_id": {
            "title": "Verification Id",
            "type": "string"
          },
          "verification_revision": {
            "minimum": 1.0,
            "title": "Verification Revision",
            "type": "integer"
          },
          "verification_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verification Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "verification_id",
          "verification_revision",
          "verification_revision_sha256",
          "selected_response_revision_sha256",
          "raw_findings",
          "decisions",
          "reviewer_verdict",
          "unresolved_finding_ids"
        ],
        "title": "AnswerReviewContent",
        "type": "object"
      },
      "AnswerReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/AnswerFindingDecision"
            },
            "maxItems": 100,
            "title": "Decisions",
            "type": "array"
          },
          "exception": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerVerificationException"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_review_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision"
          },
          "expected_review_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision Sha256"
          },
          "expected_verification_revision": {
            "minimum": 1.0,
            "title": "Expected Verification Revision",
            "type": "integer"
          },
          "expected_verification_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Verification Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reviewer_verdict": {
            "enum": ["unique", "ambiguous", "not_applicable"],
            "title": "Reviewer Verdict",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_verification_revision",
          "expected_verification_revision_sha256",
          "reviewer_verdict",
          "reason",
          "decisions"
        ],
        "title": "AnswerReviewRequest",
        "type": "object"
      },
      "AnswerReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerReviewContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^answer-review-[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.12.0",
            "default": "4.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerReviewResponse",
        "type": "object"
      },
      "AnswerRubricEvidence": {
        "additionalProperties": false,
        "properties": {
          "allowed_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Allowed Option Ids",
            "type": "array"
          },
          "criterion": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Criterion",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "fully_determines_single_answer": {
            "title": "Fully Determines Single Answer",
            "type": "boolean"
          },
          "rubric_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Revision Id",
            "type": "string"
          },
          "rubric_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Revision Sha256",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "rubric_revision_id",
          "rubric_revision_sha256",
          "criterion",
          "allowed_option_ids",
          "fully_determines_single_answer",
          "evidence",
          "uncertainty"
        ],
        "title": "AnswerRubricEvidence",
        "type": "object"
      },
      "AnswerSourcePosition": {
        "additionalProperties": false,
        "properties": {
          "assertion": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Assertion",
            "type": "string"
          },
          "position_id": {
            "pattern": "^answer-source-position:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Position Id",
            "type": "string"
          },
          "rejected_option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Rejected Option Ids",
            "type": "array"
          },
          "source_reference": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Reference",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Source Version",
            "type": "string"
          },
          "supported_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Supported Option Ids",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "position_id",
          "source_reference",
          "source_version",
          "source_sha256",
          "assertion",
          "supported_option_ids",
          "uncertainty"
        ],
        "title": "AnswerSourcePosition",
        "type": "object"
      },
      "AnswerSurfaceConsistencyAssessment": {
        "additionalProperties": false,
        "properties": {
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "response_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Response Ids",
            "type": "array"
          },
          "status": {
            "enum": ["agrees", "disagrees", "unsupported", "manual_review", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "surface_id": {
            "pattern": "^answer-surface:[a-f0-9]{40}$",
            "title": "Surface Id",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": ["surface_id", "status", "evidence", "uncertainty"],
        "title": "AnswerSurfaceConsistencyAssessment",
        "type": "object"
      },
      "AnswerToleranceBand": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "inclusive": {
            "title": "Inclusive",
            "type": "boolean"
          },
          "lower_bound": {
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
            "title": "Lower Bound",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "response_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Response Id",
            "type": "string"
          },
          "tolerance_id": {
            "pattern": "^answer-tolerance:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Tolerance Id",
            "type": "string"
          },
          "unit": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "upper_bound": {
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
            "title": "Upper Bound",
            "type": "string"
          }
        },
        "required": [
          "tolerance_id",
          "response_id",
          "dimension",
          "lower_bound",
          "upper_bound",
          "unit",
          "inclusive",
          "rationale"
        ],
        "title": "AnswerToleranceBand",
        "type": "object"
      },
      "AnswerVerificationApplicability": {
        "additionalProperties": false,
        "properties": {
          "claim_kind": {
            "const": "single_correct_answer",
            "default": "single_correct_answer",
            "title": "Claim Kind",
            "type": "string"
          },
          "item_kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Item Kind",
            "type": "string"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Reasons",
            "type": "array"
          },
          "response_kind": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Kind",
            "type": "string"
          },
          "scoring_kind": {
            "enum": ["exact", "partial"],
            "title": "Scoring Kind",
            "type": "string"
          },
          "status": {
            "enum": ["applicable", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "verifier_profile_id": {
            "const": "metis.single-correct-ambiguity",
            "default": "metis.single-correct-ambiguity",
            "title": "Verifier Profile Id",
            "type": "string"
          },
          "verifier_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verifier Profile Sha256",
            "type": "string"
          },
          "verifier_profile_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Verifier Profile Version",
            "type": "string"
          }
        },
        "required": [
          "item_kind",
          "response_kind",
          "scoring_kind",
          "status",
          "reasons",
          "verifier_profile_sha256"
        ],
        "title": "AnswerVerificationApplicability",
        "type": "object"
      },
      "AnswerVerificationAssumption": {
        "additionalProperties": false,
        "properties": {
          "assumption_id": {
            "pattern": "^answer-assumption:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Assumption Id",
            "type": "string"
          },
          "falsifiable": {
            "const": true,
            "default": true,
            "title": "Falsifiable",
            "type": "boolean"
          },
          "scope": {
            "enum": ["prompt", "source", "locale", "culture", "scoring", "tolerance"],
            "title": "Scope",
            "type": "string"
          },
          "source_reference": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Reference"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["assumption_id", "scope", "statement"],
        "title": "AnswerVerificationAssumption",
        "type": "object"
      },
      "AnswerVerificationContent": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/AnswerVerificationApplicability"
          },
          "automated_verdict": {
            "enum": ["unique_candidate", "ambiguous", "inconclusive", "not_applicable"],
            "title": "Automated Verdict",
            "type": "string"
          },
          "checker_evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AnswerCheckerSubmission"
            },
            "maxItems": 32,
            "title": "Checker Evidence",
            "type": "array"
          },
          "every_nonkey_fails": {
            "title": "Every Nonkey Fails",
            "type": "boolean"
          },
          "evidence_bundle": {
            "$ref": "#/components/schemas/AnswerEvidenceBundle"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/AnswerAmbiguityFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "human_review_required": {
            "const": true,
            "default": true,
            "title": "Human Review Required",
            "type": "boolean"
          },
          "keyed_response_satisfies_prompt": {
            "title": "Keyed Response Satisfies Prompt",
            "type": "boolean"
          },
          "source": {
            "$ref": "#/components/schemas/AnswerVerificationItemSnapshot"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "source",
          "applicability",
          "evidence_bundle",
          "findings",
          "automated_verdict",
          "keyed_response_satisfies_prompt",
          "every_nonkey_fails",
          "uncertainty"
        ],
        "title": "AnswerVerificationContent",
        "type": "object"
      },
      "AnswerVerificationException": {
        "additionalProperties": false,
        "properties": {
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^answer-ambiguity-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "justification": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Justification",
            "type": "string"
          },
          "maximum_uses": {
            "const": 1,
            "default": 1,
            "title": "Maximum Uses",
            "type": "integer"
          },
          "scope": {
            "const": "checker_unavailable_only",
            "default": "checker_unavailable_only",
            "title": "Scope",
            "type": "string"
          }
        },
        "required": ["finding_id", "justification", "expires_at"],
        "title": "AnswerVerificationException",
        "type": "object"
      },
      "AnswerVerificationFreshness": {
        "additionalProperties": false,
        "properties": {
          "current_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Selected Response Revision Sha256",
            "type": "string"
          },
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "stale_reasons": {
            "items": {
              "enum": [
                "verification_missing",
                "review_missing",
                "gate_missing",
                "item_revision_changed",
                "verification_changed",
                "review_changed",
                "exception_expired"
              ],
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          },
          "verified_selected_response_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified Selected Response Revision Sha256"
          }
        },
        "required": [
          "review_required",
          "stale_reasons",
          "current_selected_response_revision_sha256",
          "verified_selected_response_revision_sha256"
        ],
        "title": "AnswerVerificationFreshness",
        "type": "object"
      },
      "AnswerVerificationHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/AnswerPublicationGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/AnswerReviewResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "schema_version": {
            "const": "4.12.0",
            "default": "4.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "verifications": {
            "items": {
              "$ref": "#/components/schemas/AnswerVerificationResponse"
            },
            "title": "Verifications",
            "type": "array"
          }
        },
        "required": ["draft_id", "verifications", "reviews", "gates"],
        "title": "AnswerVerificationHistoryResponse",
        "type": "object"
      },
      "AnswerVerificationItemSnapshot": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "item_kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Item Kind",
            "type": "string"
          },
          "keyed_option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Keyed Option Ids",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "nonkey_option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Nonkey Option Ids",
            "type": "array"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/AnswerVerificationOptionSnapshot"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Options",
            "type": "array"
          },
          "response_kind": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Kind",
            "type": "string"
          },
          "response_rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Rule Sha256",
            "type": "string"
          },
          "scoring_kind": {
            "enum": ["exact", "partial"],
            "title": "Scoring Kind",
            "type": "string"
          },
          "selected_response_id": {
            "pattern": "^selected-response-[a-f0-9]{40}$",
            "title": "Selected Response Id",
            "type": "string"
          },
          "selected_response_revision": {
            "minimum": 1.0,
            "title": "Selected Response Revision",
            "type": "integer"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "source_draft_revision": {
            "minimum": 1.0,
            "title": "Source Draft Revision",
            "type": "integer"
          },
          "source_draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Draft Revision Sha256",
            "type": "string"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "draft_id",
          "selected_response_id",
          "selected_response_revision",
          "selected_response_revision_sha256",
          "source_draft_revision",
          "source_draft_revision_sha256",
          "item_kind",
          "response_kind",
          "scoring_kind",
          "locale",
          "stem",
          "options",
          "response_rule_sha256",
          "source_sha256"
        ],
        "title": "AnswerVerificationItemSnapshot",
        "type": "object"
      },
      "AnswerVerificationOptionSnapshot": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "keyed": {
            "title": "Keyed",
            "type": "boolean"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "option_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Option Sha256",
            "type": "string"
          },
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["option_id", "order", "text", "accessible_text", "keyed", "option_sha256"],
        "title": "AnswerVerificationOptionSnapshot",
        "type": "object"
      },
      "AnswerVerificationPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/AnswerVerificationApplicability"
          },
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerPublicationGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerReviewResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_verification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnswerVerificationResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/AnswerVerificationFreshness"
          },
          "schema_version": {
            "const": "4.12.0",
            "default": "4.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/AnswerVerificationItemSnapshot"
          }
        },
        "required": [
          "source",
          "applicability",
          "current_verification",
          "current_review",
          "current_gate",
          "freshness"
        ],
        "title": "AnswerVerificationPreparationResponse",
        "type": "object"
      },
      "AnswerVerificationRequest": {
        "additionalProperties": false,
        "properties": {
          "checker_evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AnswerCheckerSubmission"
            },
            "maxItems": 32,
            "title": "Checker Evidence",
            "type": "array"
          },
          "evidence_bundle": {
            "$ref": "#/components/schemas/AnswerEvidenceBundle"
          },
          "expected_selected_response_revision": {
            "minimum": 1.0,
            "title": "Expected Selected Response Revision",
            "type": "integer"
          },
          "expected_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Selected Response Revision Sha256",
            "type": "string"
          },
          "expected_verification_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Verification Revision"
          },
          "expected_verification_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Verification Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_selected_response_revision",
          "expected_selected_response_revision_sha256",
          "locale",
          "reason",
          "evidence_bundle"
        ],
        "title": "AnswerVerificationRequest",
        "type": "object"
      },
      "AnswerVerificationResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/AnswerVerificationContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.12.0",
            "default": "4.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "verification_id": {
            "pattern": "^answer-verification-[a-f0-9]{40}$",
            "title": "Verification Id",
            "type": "string"
          }
        },
        "required": [
          "verification_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "AnswerVerificationResponse",
        "type": "object"
      },
      "AnswerVerificationTolerance": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "maxLength": 255,
            "minLength": 2,
            "title": "Dimension",
            "type": "string"
          },
          "inclusive": {
            "title": "Inclusive",
            "type": "boolean"
          },
          "lower_bound": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Lower Bound",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "tolerance_id": {
            "pattern": "^answer-tolerance:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Tolerance Id",
            "type": "string"
          },
          "unit": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "upper_bound": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Upper Bound",
            "type": "string"
          }
        },
        "required": [
          "tolerance_id",
          "dimension",
          "lower_bound",
          "upper_bound",
          "unit",
          "inclusive",
          "rationale"
        ],
        "title": "AnswerVerificationTolerance",
        "type": "object"
      },
      "AppealOutcomeRecord": {
        "additionalProperties": false,
        "properties": {
          "appeal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Appeal Id",
            "type": "string"
          },
          "decided_by_digests": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Decided By Digests",
            "type": "array"
          },
          "outcome": {
            "enum": ["affirm", "modify", "overturn", "remand", "withdraw", "expire"],
            "title": "Outcome",
            "type": "string"
          },
          "outcome_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Outcome Id",
            "type": "string"
          },
          "outcome_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outcome Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "substituted_remedy": {
            "anyOf": [
              {
                "enum": [
                  "none",
                  "educator_review",
                  "learner_warning",
                  "score_hold",
                  "submission_reject",
                  "institution_escalation"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Substituted Remedy"
          }
        },
        "required": [
          "outcome_id",
          "appeal_id",
          "outcome",
          "rationale",
          "decided_by_digests",
          "recorded_at",
          "outcome_sha256"
        ],
        "title": "AppealOutcomeRecord",
        "type": "object"
      },
      "AppealRecord": {
        "additionalProperties": false,
        "properties": {
          "appeal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Appeal Id",
            "type": "string"
          },
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "filed_as": {
            "enum": ["learner", "representative"],
            "title": "Filed As",
            "type": "string"
          },
          "filed_at": {
            "format": "date-time",
            "title": "Filed At",
            "type": "string"
          },
          "filed_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Filed By Digest",
            "type": "string"
          },
          "grounds": {
            "items": {
              "enum": [
                "procedural_defect",
                "new_evidence",
                "disproportionate_remedy",
                "factual_error"
              ],
              "type": "string"
            },
            "title": "Grounds",
            "type": "array"
          },
          "new_evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/NewEvidenceLink"
            },
            "title": "New Evidence",
            "type": "array"
          },
          "quorum_signatories": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 10,
            "title": "Quorum Signatories",
            "type": "array"
          },
          "restriction": {
            "enum": ["standard", "restricted"],
            "title": "Restriction",
            "type": "string"
          },
          "schema_version": {
            "const": "7.4.0",
            "default": "7.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": [
              "filed",
              "accepted",
              "under_review",
              "stayed",
              "decided",
              "withdrawn",
              "expired"
            ],
            "title": "State",
            "type": "string"
          },
          "stays": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Stay"
            },
            "maxItems": 20,
            "title": "Stays",
            "type": "array"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "appeal_id",
          "case_id",
          "decision_id",
          "filed_by_digest",
          "filed_as",
          "grounds",
          "restriction",
          "state",
          "version",
          "filed_at",
          "due_at"
        ],
        "title": "AppealRecord",
        "type": "object"
      },
      "AppealSubstance": {
        "additionalProperties": false,
        "properties": {
          "appeal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Appeal Id",
            "type": "string"
          },
          "outcome": {
            "anyOf": [
              {
                "enum": ["affirm", "modify", "overturn", "remand", "withdraw", "expire"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome"
          },
          "restriction": {
            "enum": ["standard", "restricted"],
            "title": "Restriction",
            "type": "string"
          },
          "substituted_remedy": {
            "anyOf": [
              {
                "enum": [
                  "none",
                  "educator_review",
                  "learner_warning",
                  "score_hold",
                  "submission_reject",
                  "institution_escalation"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Substituted Remedy"
          }
        },
        "required": ["appeal_id", "restriction"],
        "title": "AppealSubstance",
        "type": "object"
      },
      "AppendRequest": {
        "additionalProperties": false,
        "description": "An event as the system of record reports it. The tenant is the caller's.",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/Actor"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "authority": {
            "$ref": "#/components/schemas/Authority"
          },
          "kind": {
            "enum": [
              "collection",
              "access",
              "change",
              "signal",
              "case",
              "evidence",
              "decision",
              "appeal",
              "notification",
              "correction"
            ],
            "title": "Kind",
            "type": "string"
          },
          "opened_from_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opened From Sha256"
          },
          "payload": {
            "$ref": "#/components/schemas/AuditPayload"
          },
          "subject": {
            "$ref": "#/components/schemas/Subject"
          }
        },
        "required": ["kind", "subject", "actor", "authority", "at", "payload"],
        "title": "AppendRequest",
        "type": "object"
      },
      "Applicability": {
        "additionalProperties": false,
        "description": "Exactly what this configuration applies to, pinned to revisions.",
        "properties": {
          "config_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Revision Sha256",
            "type": "string"
          },
          "course_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Course Id",
            "type": "string"
          },
          "course_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Course Revision Sha256",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "source_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "course_id",
          "course_revision_sha256",
          "objective_ids",
          "source_ids",
          "source_revision_sha256",
          "config_revision_sha256"
        ],
        "title": "Applicability",
        "type": "object"
      },
      "AppliedConstraintRecord": {
        "additionalProperties": false,
        "properties": {
          "binding_overlay_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Binding Overlay Id"
          },
          "binding_overlay_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Binding Overlay Version"
          },
          "binding_scope": {
            "anyOf": [
              {
                "enum": [
                  "platform",
                  "region",
                  "institution",
                  "program",
                  "course",
                  "learner_support"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Binding Scope"
          },
          "combination": {
            "enum": ["single_declaration", "combined_declarations"],
            "title": "Combination",
            "type": "string"
          },
          "declaring_overlay_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Declaring Overlay Ids",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "safety.required_safety_gates",
              "safety.max_autonomous_advance_steps",
              "privacy.max_learner_signal_retention_days",
              "privacy.allowed_signal_kinds",
              "accessibility.required_learner_supports",
              "accessibility.allowed_delivery_modes",
              "integrity.required_integrity_checks",
              "exposure.max_item_exposure_rate_basis_points",
              "rights.allowed_licence_classes",
              "prerequisite.min_prerequisite_mastery_basis_points",
              "assessment.max_attempts_per_item",
              "human_authority.require_human_review_before_activation",
              "mastery.min_mastery_to_advance_basis_points",
              "mastery.required_mastery_evidence_kinds",
              "pacing.max_items_per_session",
              "pacing.min_spacing_days_between_repeats",
              "difficulty.max_difficulty_centilogits",
              "difficulty.allowed_difficulty_bands"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "flag_value": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Flag Value"
          },
          "kind": {
            "enum": [
              "numeric_ceiling",
              "numeric_floor",
              "allowed_set",
              "required_set",
              "required_flag"
            ],
            "title": "Kind",
            "type": "string"
          },
          "numeric_value": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Numeric Value"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "set_values": {
            "anyOf": [
              {
                "items": {
                  "maxLength": 80,
                  "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Set Values"
          }
        },
        "required": [
          "dimension",
          "kind",
          "numeric_value",
          "set_values",
          "flag_value",
          "combination",
          "binding_overlay_id",
          "binding_overlay_version",
          "binding_scope",
          "declaring_overlay_ids",
          "rationale"
        ],
        "title": "AppliedConstraintRecord",
        "type": "object"
      },
      "ApplyOutcome": {
        "additionalProperties": false,
        "description": "What happened when the remediation was applied.",
        "properties": {
          "action": {
            "enum": ["attach", "replace", "corroborate", "edit", "abstain", "request_review"],
            "title": "Action",
            "type": "string"
          },
          "claim_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "current_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Revision"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "preview": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BlastPreview"
              },
              {
                "type": "null"
              }
            ]
          },
          "revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revision"
          },
          "schema_version": {
            "const": "9.4.3",
            "default": "9.4.3",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": ["applied", "stale_base", "stale_preview", "forbidden", "refused"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["state", "action", "claim_id", "decided_at"],
        "title": "ApplyOutcome",
        "type": "object"
      },
      "Approval": {
        "additionalProperties": false,
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "kind": {
            "enum": ["institutional", "legal", "ethics"],
            "title": "Kind",
            "type": "string"
          },
          "reference": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reference",
            "type": "string"
          }
        },
        "required": ["kind", "reference", "approved_by", "approved_at"],
        "title": "Approval",
        "type": "object"
      },
      "ApprovalBody": {
        "description": "One signature. The approver is the signed-in actor, not a field.",
        "properties": {
          "conditions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ApprovalCondition"
            },
            "title": "Conditions",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "content",
              "build",
              "standards",
              "locale",
              "accessibility",
              "gates",
              "reviews",
              "rights",
              "integration"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "interest": {
            "$ref": "#/components/schemas/DeclaredInterest"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "role": {
            "enum": [
              "author",
              "editor",
              "subject_expert",
              "accessibility_specialist",
              "rights_officer",
              "integration_engineer",
              "publisher"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["dimension", "role", "interest"],
        "title": "ApprovalBody",
        "type": "object"
      },
      "ApprovalCondition": {
        "additionalProperties": false,
        "description": "Something that has to be true before an approval counts.",
        "properties": {
          "condition_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Condition Id",
            "type": "string"
          },
          "discharged_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharged At"
          },
          "discharged_by": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discharged By"
          },
          "text": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["condition_id", "text"],
        "title": "ApprovalCondition",
        "type": "object"
      },
      "ApprovalLedger": {
        "additionalProperties": false,
        "description": "Every dimension's outcome for one candidate digest.",
        "properties": {
          "candidate_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Digest",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "outcomes": {
            "items": {
              "$ref": "#/components/schemas/ApprovalOutcome"
            },
            "title": "Outcomes",
            "type": "array"
          }
        },
        "required": ["candidate_digest", "outcomes", "evaluated_at"],
        "title": "ApprovalLedger",
        "type": "object"
      },
      "ApprovalOutcome": {
        "additionalProperties": false,
        "description": "What one dimension's approvals add up to, and why.",
        "properties": {
          "counted": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Counted",
            "type": "array"
          },
          "detail": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "content",
              "build",
              "standards",
              "locale",
              "accessibility",
              "gates",
              "reviews",
              "rights",
              "integration"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "discounted": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Discounted",
            "type": "array"
          },
          "verdict": {
            "enum": [
              "satisfied",
              "unsigned",
              "short_of_quorum",
              "stale",
              "conditional",
              "out_of_role",
              "conflicted"
            ],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["dimension", "verdict", "detail"],
        "title": "ApprovalOutcome",
        "type": "object"
      },
      "ApprovalPoint": {
        "additionalProperties": false,
        "description": "A human decision the plan cannot proceed past.\n\n``after_step`` names where it sits. The approver role is separate from the\nauthor role by construction: `AgentPlan` refuses an approval point whose\nrole equals the plan's authoring role.",
        "properties": {
          "after_step": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "After Step",
            "type": "string"
          },
          "approval_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Approval Id",
            "type": "string"
          },
          "approver_role": {
            "enum": [
              "curriculum_lead",
              "assessment_lead",
              "accessibility_lead",
              "integrity_lead",
              "course_owner"
            ],
            "title": "Approver Role",
            "type": "string"
          },
          "blocks_downstream": {
            "const": true,
            "default": true,
            "title": "Blocks Downstream",
            "type": "boolean"
          },
          "decides": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Decides",
            "type": "string"
          }
        },
        "required": ["approval_id", "after_step", "approver_role", "decides"],
        "title": "ApprovalPoint",
        "type": "object"
      },
      "ApprovalRequest": {
        "additionalProperties": false,
        "description": "What an approving party may say: which evaluation, and in what role.\n\nThere is no field naming who approved. A caller records its own approval or\nnone; inventing a second party is not available in the shape.",
        "properties": {
          "approved_by_role": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Approved By Role",
            "type": "string"
          },
          "lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lock Sha256",
            "type": "string"
          }
        },
        "required": ["lock_sha256", "approved_by_role"],
        "title": "ApprovalRequest",
        "type": "object"
      },
      "ApprovalSignoff": {
        "additionalProperties": false,
        "description": "One party's recorded sign-off against one evaluation.\n\nA quorum counts parties. Approvals are held apart from the issuer's own\ndecision so the count is a count of people rather than of signatures, and\neach names the lock it approved: approving one evaluation is not approving\nthe next one.",
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "approved_by_role": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Approved By Role",
            "type": "string"
          },
          "lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lock Sha256",
            "type": "string"
          }
        },
        "required": ["lock_sha256", "approved_by", "approved_by_role", "approved_at"],
        "title": "ApprovalSignoff",
        "type": "object"
      },
      "ArchiveBody": {
        "additionalProperties": false,
        "description": "Archiving is a shelf, not a lifecycle decision.\n\nA withdrawn aggregate stays withdrawn \u2014 that is terminal and deliberate \u2014\nbut it can still be taken off the shelf and put back, which is why this is\na separate flag rather than another state.",
        "properties": {
          "archived_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Archived At"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["expected_revision", "reason"],
        "title": "ArchiveBody",
        "type": "object"
      },
      "ArrivalBody": {
        "properties": {
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ImportEvidence"
            },
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "manifest_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Digest",
            "type": "string"
          }
        },
        "required": ["manifest_digest", "evidence"],
        "title": "ArrivalBody",
        "type": "object"
      },
      "ArrivalReport": {
        "additionalProperties": false,
        "description": "What each target holds, against what was sent.",
        "properties": {
          "arrived_whole": {
            "title": "Arrived Whole",
            "type": "boolean"
          },
          "findings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "manifest_digest": {
            "title": "Manifest Digest",
            "type": "string"
          }
        },
        "required": ["manifest_digest", "arrived_whole"],
        "title": "ArrivalReport",
        "type": "object"
      },
      "AssemblyRequest": {
        "additionalProperties": false,
        "description": "Assemble this tenant's admitted records for one purpose.",
        "properties": {
          "candidate_id": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Candidate Id",
            "type": "string"
          },
          "licence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Licence Ids",
            "type": "array"
          },
          "policy": {
            "$ref": "#/components/schemas/TenantDataPolicy"
          },
          "purpose": {
            "enum": ["model_training", "model_evaluation", "quality_monitoring"],
            "title": "Purpose",
            "type": "string"
          }
        },
        "required": ["candidate_id", "purpose", "licence_ids", "policy"],
        "title": "AssemblyRequest",
        "type": "object"
      },
      "AssertionMintRequest": {
        "additionalProperties": false,
        "description": "Issue a signed context for one attempt.\n\nMinting is the privileged half of this plane: it is what *grants* an\nassessment context, so it is administrator-gated and it fails loud when no\nsigning key is configured. Verification, the unprivileged half, fails closed\ninstead.",
        "properties": {
          "actor_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "allowed": {
            "$ref": "#/components/schemas/AllowedAids"
          },
          "assertion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assertion Id",
            "type": "string"
          },
          "assessment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "attempt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Attempt Id",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "institution_policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Institution Policy Id",
            "type": "string"
          },
          "institution_policy_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Institution Policy Revision Sha256",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "mode": {
            "enum": [
              "practice",
              "homework",
              "quiz",
              "graded",
              "exam",
              "proctored",
              "accommodation",
              "review"
            ],
            "title": "Mode",
            "type": "string"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "window": {
            "$ref": "#/components/schemas/AssessmentWindow"
          }
        },
        "required": [
          "assertion_id",
          "assessment_id",
          "item_id",
          "attempt_id",
          "mode",
          "allowed",
          "window",
          "institution_policy_id",
          "institution_policy_revision_sha256",
          "actor_id",
          "session_id",
          "issued_at",
          "expires_at"
        ],
        "title": "AssertionMintRequest",
        "type": "object"
      },
      "AssessmentCalibrationResponse": {
        "description": "Persisted assessment calibration report.",
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_title": {
            "title": "Assessment Title",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "questions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/QuestionCalibrationResponse"
            },
            "title": "Questions",
            "type": "array"
          },
          "recalibrated_from_live_data": {
            "title": "Recalibrated From Live Data",
            "type": "boolean"
          },
          "sample_size": {
            "minimum": 0.0,
            "title": "Sample Size",
            "type": "integer"
          },
          "threshold": {
            "$ref": "#/components/schemas/MasteryThresholdCalibrationResponse"
          },
          "usable_submission_count": {
            "minimum": 0.0,
            "title": "Usable Submission Count",
            "type": "integer"
          }
        },
        "required": [
          "assessment_id",
          "assessment_title",
          "generated_at",
          "sample_size",
          "usable_submission_count",
          "recalibrated_from_live_data",
          "threshold"
        ],
        "title": "AssessmentCalibrationResponse",
        "type": "object"
      },
      "AssessmentContext": {
        "additionalProperties": false,
        "description": "What the turn is happening inside. ``answer_key`` may be absent.",
        "properties": {
          "answer_key": {
            "anyOf": [
              {
                "maxLength": 2000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Answer Key"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "mode": {
            "enum": ["practice", "homework", "quiz", "graded", "exam"],
            "title": "Mode",
            "type": "string"
          },
          "tool_ids_used": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Tool Ids Used",
            "type": "array"
          }
        },
        "required": ["item_id", "mode"],
        "title": "AssessmentContext",
        "type": "object"
      },
      "AssessmentContextAssertion": {
        "additionalProperties": false,
        "description": "A signed statement of what this attempt is, and what it may use.\n\n``payload_sha256`` is recomputed here from every field above it, so an\nassertion whose hash does not bind its own body is unconstructible. The\nsignature covers that hash and is checked by the engine, which holds the key.",
        "properties": {
          "actor_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "allowed": {
            "$ref": "#/components/schemas/AllowedAids"
          },
          "assertion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assertion Id",
            "type": "string"
          },
          "assessment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "attempt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Attempt Id",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "institution_policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Institution Policy Id",
            "type": "string"
          },
          "institution_policy_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Institution Policy Revision Sha256",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "mode": {
            "enum": [
              "practice",
              "homework",
              "quiz",
              "graded",
              "exam",
              "proctored",
              "accommodation",
              "review"
            ],
            "title": "Mode",
            "type": "string"
          },
          "payload_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Payload Sha256",
            "type": "string"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          },
          "window": {
            "$ref": "#/components/schemas/AssessmentWindow"
          }
        },
        "required": [
          "assertion_id",
          "assessment_id",
          "item_id",
          "attempt_id",
          "mode",
          "allowed",
          "window",
          "institution_policy_id",
          "institution_policy_revision_sha256",
          "actor_id",
          "session_id",
          "issued_at",
          "expires_at",
          "payload_sha256",
          "signature"
        ],
        "title": "AssessmentContextAssertion",
        "type": "object"
      },
      "AssessmentCreate": {
        "description": "Schema for creating a new assessment.",
        "properties": {
          "assessment_type": {
            "default": "quiz",
            "pattern": "^(quiz|exam|assignment|practice)$",
            "title": "Assessment Type",
            "type": "string"
          },
          "available_from": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available From"
          },
          "available_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available Until"
          },
          "course_id": {
            "format": "uuid",
            "title": "Course Id",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "is_published": {
            "default": false,
            "title": "Is Published",
            "type": "boolean"
          },
          "max_attempts": {
            "default": 3,
            "minimum": 0.0,
            "title": "Max Attempts",
            "type": "integer"
          },
          "passing_score": {
            "default": 70.0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Passing Score",
            "type": "number"
          },
          "show_correct_answers": {
            "default": true,
            "title": "Show Correct Answers",
            "type": "boolean"
          },
          "shuffle_questions": {
            "default": false,
            "title": "Shuffle Questions",
            "type": "boolean"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["title", "course_id"],
        "title": "AssessmentCreate",
        "type": "object"
      },
      "AssessmentFairnessReviewResponse": {
        "description": "Persisted fairness and DIF review report.",
        "properties": {
          "adaptation_reviews": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AdaptationParityReviewResponse"
            },
            "title": "Adaptation Reviews",
            "type": "array"
          },
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_title": {
            "title": "Assessment Title",
            "type": "string"
          },
          "cohorts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FairnessCohortSummaryResponse"
            },
            "title": "Cohorts",
            "type": "array"
          },
          "dif_thresholds": {
            "additionalProperties": {
              "type": "number"
            },
            "default": {},
            "title": "Dif Thresholds",
            "type": "object"
          },
          "discipline_id": {
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "item_dif_reviews": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemDIFReviewResponse"
            },
            "title": "Item Dif Reviews",
            "type": "array"
          },
          "limitations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Limitations",
            "type": "array"
          },
          "reviewed_dimensions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Reviewed Dimensions",
            "type": "array"
          },
          "sample_size": {
            "minimum": 0.0,
            "title": "Sample Size",
            "type": "integer"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "assessment_title",
          "discipline_id",
          "discipline_title",
          "generated_at",
          "sample_size",
          "status"
        ],
        "title": "AssessmentFairnessReviewResponse",
        "type": "object"
      },
      "AssessmentResponse": {
        "description": "Assessment data returned in API responses, including nested questions.",
        "properties": {
          "assessment_type": {
            "title": "Assessment Type",
            "type": "string"
          },
          "available_from": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available From"
          },
          "available_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available Until"
          },
          "course_id": {
            "format": "uuid",
            "title": "Course Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "evidence_bundle": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EvidenceBundleResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "is_published": {
            "title": "Is Published",
            "type": "boolean"
          },
          "max_attempts": {
            "title": "Max Attempts",
            "type": "integer"
          },
          "passing_score": {
            "title": "Passing Score",
            "type": "number"
          },
          "questions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/QuestionResponse"
            },
            "title": "Questions",
            "type": "array"
          },
          "show_correct_answers": {
            "title": "Show Correct Answers",
            "type": "boolean"
          },
          "shuffle_questions": {
            "title": "Shuffle Questions",
            "type": "boolean"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "assessment_type",
          "passing_score",
          "max_attempts",
          "is_published",
          "shuffle_questions",
          "show_correct_answers",
          "course_id",
          "created_at",
          "updated_at"
        ],
        "title": "AssessmentResponse",
        "type": "object"
      },
      "AssessmentUpdate": {
        "description": "Schema for updating assessment fields.",
        "properties": {
          "assessment_type": {
            "anyOf": [
              {
                "pattern": "^(quiz|exam|assignment|practice)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Type"
          },
          "available_from": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available From"
          },
          "available_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available Until"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "is_published": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Published"
          },
          "max_attempts": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Attempts"
          },
          "passing_score": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Passing Score"
          },
          "show_correct_answers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Show Correct Answers"
          },
          "shuffle_questions": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shuffle Questions"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "AssessmentUpdate",
        "type": "object"
      },
      "AssessmentWindow": {
        "additionalProperties": false,
        "properties": {
          "closes_at": {
            "format": "date-time",
            "title": "Closes At",
            "type": "string"
          },
          "opens_at": {
            "format": "date-time",
            "title": "Opens At",
            "type": "string"
          }
        },
        "required": ["opens_at", "closes_at"],
        "title": "AssessmentWindow",
        "type": "object"
      },
      "AssignRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "policy": {
            "$ref": "#/components/schemas/SlaPolicy"
          },
          "reviewers": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Reviewer"
            },
            "maxItems": 200,
            "title": "Reviewers",
            "type": "array"
          },
          "task": {
            "$ref": "#/components/schemas/ReviewTask"
          },
          "tasks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewTask"
            },
            "maxItems": 500,
            "title": "Tasks",
            "type": "array"
          }
        },
        "required": ["policy", "task"],
        "title": "AssignRequest",
        "type": "object"
      },
      "AssignResponse": {
        "additionalProperties": false,
        "properties": {
          "assignment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Assignment"
              },
              {
                "type": "null"
              }
            ]
          },
          "refusal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AssignmentRefusal"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "AssignResponse",
        "type": "object"
      },
      "Assignment": {
        "additionalProperties": false,
        "description": "Who a task went to, and why them. Fairness is a stated rule, not a shuffle.",
        "properties": {
          "assigned_at": {
            "format": "date-time",
            "title": "Assigned At",
            "type": "string"
          },
          "basis": {
            "const": "lowest_load_then_digest",
            "default": "lowest_load_then_digest",
            "title": "Basis",
            "type": "string"
          },
          "considered": {
            "minimum": 1.0,
            "title": "Considered",
            "type": "integer"
          },
          "load_at_assignment": {
            "minimum": 0.0,
            "title": "Load At Assignment",
            "type": "integer"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          }
        },
        "required": [
          "task_id",
          "reviewer_digest",
          "assigned_at",
          "load_at_assignment",
          "considered"
        ],
        "title": "Assignment",
        "type": "object"
      },
      "AssignmentRecord": {
        "additionalProperties": false,
        "description": "One subject's arm, recorded without naming the subject.\n\n``subject_digest`` is a salted hash. There is no subject identifier field, so\nan assignment log cannot become a roster of who was experimented on.",
        "properties": {
          "excluded": {
            "anyOf": [
              {
                "enum": [
                  "outside_eligible_population",
                  "opted_out",
                  "no_consent_on_record",
                  "already_assigned_elsewhere",
                  "outside_ramp"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excluded"
          },
          "ramp_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Ramp Basis Points",
            "type": "integer"
          },
          "subject_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Digest",
            "type": "string"
          },
          "variant_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Variant Id"
          }
        },
        "required": ["subject_digest", "variant_id", "ramp_basis_points"],
        "title": "AssignmentRecord",
        "type": "object"
      },
      "AssignmentRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "no_qualified_reviewer",
              "all_at_capacity",
              "locale_unmatched",
              "already_assigned",
              "task_not_assignable"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "AssignmentRefusal",
        "type": "object"
      },
      "AtomicClaimRecord": {
        "additionalProperties": false,
        "properties": {
          "claim_id": {
            "pattern": "^atomicclaim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "current_revision_id": {
            "pattern": "^atomicrev_[a-f0-9]{40}$",
            "title": "Current Revision Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/AtomicClaimRevision"
            },
            "maxItems": 1024,
            "minItems": 1,
            "title": "Revisions",
            "type": "array"
          },
          "run_id": {
            "pattern": "^claimdecomp_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": ["claim_id", "run_id", "current_revision_id", "revisions"],
        "title": "AtomicClaimRecord",
        "type": "object"
      },
      "AtomicClaimRevision": {
        "additionalProperties": false,
        "properties": {
          "claim_id": {
            "pattern": "^atomicclaim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "content_locator": {
            "$ref": "#/components/schemas/ClaimContentLocator"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Created By",
            "type": "string"
          },
          "decision_id": {
            "anyOf": [
              {
                "pattern": "^atomicdec_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision Id"
          },
          "modality": {
            "enum": [
              "asserted",
              "probable",
              "possible",
              "conditional",
              "imperative",
              "hypothetical",
              "interrogative",
              "not_applicable"
            ],
            "title": "Modality",
            "type": "string"
          },
          "normalized_proposition": {
            "anyOf": [
              {
                "maxLength": 8000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalized Proposition"
          },
          "previous_revision_id": {
            "anyOf": [
              {
                "pattern": "^atomicrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Id"
          },
          "qualifiers": {
            "items": {
              "$ref": "#/components/schemas/ClaimQualifier"
            },
            "maxItems": 64,
            "title": "Qualifiers",
            "type": "array"
          },
          "relationships": {
            "items": {
              "$ref": "#/components/schemas/ClaimSemanticRelationship"
            },
            "maxItems": 64,
            "title": "Relationships",
            "type": "array"
          },
          "revision_id": {
            "pattern": "^atomicrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "schema_version": {
            "const": "5.19.0",
            "default": "5.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ClaimScope"
              },
              {
                "type": "null"
              }
            ]
          },
          "segment_kind": {
            "enum": [
              "factual",
              "procedural",
              "normative",
              "interpretive",
              "mathematical",
              "attribution",
              "nonclaim"
            ],
            "title": "Segment Kind",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "semantic_features": {
            "items": {
              "enum": [
                "compound_relationship",
                "coreference_context",
                "equation_or_expression",
                "condition",
                "negation",
                "example",
                "quotation",
                "pedagogical_scaffolding"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "title": "Semantic Features",
            "type": "array"
          },
          "semantic_triple": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ClaimSemanticTriple"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_links": {
            "items": {
              "$ref": "#/components/schemas/ClaimSourceLink"
            },
            "maxItems": 32,
            "title": "Source Links",
            "type": "array"
          },
          "status": {
            "enum": ["proposed", "confirmed", "rejected", "deferred", "stale"],
            "title": "Status",
            "type": "string"
          },
          "status_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Status Reason",
            "type": "string"
          }
        },
        "required": [
          "claim_id",
          "revision_id",
          "revision_number",
          "segment_kind",
          "modality",
          "content_locator",
          "status",
          "status_reason",
          "created_at",
          "created_by",
          "self_sha256"
        ],
        "title": "AtomicClaimRevision",
        "type": "object"
      },
      "AttritionReport": {
        "additionalProperties": false,
        "description": "How many assigned subjects the outcome metric actually saw.\n\n``measured_on`` is required because attrition is a property of a metric, not\nof an experiment: a run that observed 1,000 subjects on a click counter and\n400 on its registered outcome has 60% attrition, and a report that did not\nsay which metric it counted could present the first number as the second.",
        "properties": {
          "assigned": {
            "minimum": 0.0,
            "title": "Assigned",
            "type": "integer"
          },
          "measured_on": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Measured On",
            "type": "string"
          },
          "missing": {
            "minimum": 0.0,
            "title": "Missing",
            "type": "integer"
          },
          "observed": {
            "minimum": 0.0,
            "title": "Observed",
            "type": "integer"
          }
        },
        "required": ["measured_on", "assigned", "observed", "missing"],
        "title": "AttritionReport",
        "type": "object"
      },
      "AudienceMatrixCell": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["author", "reviewer", "operator", "auditor", "learner_support"],
            "title": "Audience",
            "type": "string"
          },
          "functions": {
            "default": [],
            "items": {
              "enum": ["read", "search", "stream", "export", "act"],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Functions",
            "type": "array"
          },
          "view_object": {
            "enum": [
              "request",
              "plan",
              "step",
              "queue",
              "run",
              "attempt",
              "tool_call",
              "budget",
              "evidence",
              "output",
              "decision",
              "lineage"
            ],
            "title": "View Object",
            "type": "string"
          }
        },
        "required": ["audience", "view_object"],
        "title": "AudienceMatrixCell",
        "type": "object"
      },
      "AudienceReviewRule": {
        "additionalProperties": false,
        "properties": {
          "additional_reviewers": {
            "maximum": 2.0,
            "minimum": 0.0,
            "title": "Additional Reviewers",
            "type": "integer"
          },
          "audience": {
            "enum": ["general_adult", "youth", "professional", "high_stakes"],
            "title": "Audience",
            "type": "string"
          },
          "discipline_qualification_required": {
            "title": "Discipline Qualification Required",
            "type": "boolean"
          }
        },
        "required": ["audience", "additional_reviewers", "discipline_qualification_required"],
        "title": "AudienceReviewRule",
        "type": "object"
      },
      "AuditEntryResponse": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "title": "Actor",
            "type": "string"
          },
          "details": {
            "title": "Details",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          }
        },
        "required": ["id", "action", "actor", "timestamp", "details"],
        "title": "AuditEntryResponse",
        "type": "object"
      },
      "AuditEvent": {
        "additionalProperties": false,
        "description": "One link. The digest covers the header and the payload's digest, not the payload.\n\nThat is what lets retention drop a payload: the purged event keeps its header\nand ``payload_sha256`` and still re-derives ``event_sha256``, so the chain is\nwhole and the purge is itself an event in it.",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/Actor"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "authority": {
            "$ref": "#/components/schemas/Authority"
          },
          "event_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Event Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "collection",
              "access",
              "change",
              "signal",
              "case",
              "evidence",
              "decision",
              "appeal",
              "notification",
              "correction"
            ],
            "title": "Kind",
            "type": "string"
          },
          "opened_from_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opened From Sha256"
          },
          "payload": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuditPayload"
              },
              {
                "type": "null"
              }
            ]
          },
          "payload_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Payload Sha256",
            "type": "string"
          },
          "previous_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Previous Sha256",
            "type": "string"
          },
          "purged_at_sequence": {
            "anyOf": [
              {
                "minimum": 2.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Purged At Sequence"
          },
          "schema_version": {
            "const": "7.5.0",
            "default": "7.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "subject": {
            "$ref": "#/components/schemas/Subject"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "sequence",
          "kind",
          "tenant_id",
          "subject",
          "actor",
          "authority",
          "at",
          "payload",
          "payload_sha256",
          "previous_sha256",
          "event_sha256"
        ],
        "title": "AuditEvent",
        "type": "object"
      },
      "AuditExport": {
        "additionalProperties": false,
        "description": "A subject's chain as one audience may hold it, with its verification and its corrections.",
        "properties": {
          "audience": {
            "enum": [
              "learner",
              "representative",
              "reviewer",
              "decider",
              "integrity_lead",
              "forensic"
            ],
            "title": "Audience",
            "type": "string"
          },
          "correction_history": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CorrectionApplied"
            },
            "maxItems": 1000,
            "title": "Correction History",
            "type": "array"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/RedactedEvent"
            },
            "maxItems": 100000,
            "title": "Events",
            "type": "array"
          },
          "export_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Export Id",
            "type": "string"
          },
          "export_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Export Sha256",
            "type": "string"
          },
          "exported_at": {
            "format": "date-time",
            "title": "Exported At",
            "type": "string"
          },
          "exported_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exported By Digest",
            "type": "string"
          },
          "schema_version": {
            "const": "7.5.0",
            "default": "7.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sections_withheld": {
            "items": {
              "enum": [
                "subject_refs",
                "narrative",
                "decision_substance",
                "raw_evidence",
                "classifier_features",
                "other_learner_refs",
                "staff_identity",
                "security_method"
              ],
              "type": "string"
            },
            "title": "Sections Withheld",
            "type": "array"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["signal", "case"],
            "title": "Subject Kind",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "verification": {
            "$ref": "#/components/schemas/ChainVerification"
          }
        },
        "required": [
          "export_id",
          "tenant_id",
          "subject_kind",
          "subject_id",
          "audience",
          "exported_by_digest",
          "exported_at",
          "verification",
          "events",
          "sections_withheld",
          "export_sha256"
        ],
        "title": "AuditExport",
        "type": "object"
      },
      "AuditPayload": {
        "additionalProperties": false,
        "properties": {
          "appeal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AppealSubstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifier_features": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FeatureValue"
            },
            "maxItems": 500,
            "title": "Classifier Features",
            "type": "array"
          },
          "correction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CorrectionApplied"
              },
              {
                "type": "null"
              }
            ]
          },
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DecisionSubstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "narrative": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Narrative",
            "type": "string"
          },
          "other_learner_refs": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Other Learner Refs",
            "type": "array"
          },
          "raw_evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RawEvidenceRef"
            },
            "maxItems": 200,
            "title": "Raw Evidence",
            "type": "array"
          },
          "refs": {
            "$ref": "#/components/schemas/SubjectRefs"
          },
          "security_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SecurityMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "staff": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/StaffRef"
            },
            "maxItems": 20,
            "title": "Staff",
            "type": "array"
          }
        },
        "required": ["refs", "narrative"],
        "title": "AuditPayload",
        "type": "object"
      },
      "AuthorAnalyticsProjection": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "report": {
            "$ref": "#/components/schemas/AuthorAnalyticsReport"
          },
          "report_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Report Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["report_id", "tenant_id", "created_at", "record_sha256", "report"],
        "title": "AuthorAnalyticsProjection",
        "type": "object"
      },
      "AuthorAnalyticsReport": {
        "additionalProperties": false,
        "properties": {
          "catalog": {
            "$ref": "#/components/schemas/MetricCatalog"
          },
          "comparisons": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MetricComparison"
            },
            "maxItems": 20,
            "title": "Comparisons",
            "type": "array"
          },
          "completion": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LevelAggregate"
            },
            "maxItems": 200,
            "title": "Completion",
            "type": "array"
          },
          "drop_off": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LevelAggregate"
            },
            "maxItems": 200,
            "title": "Drop Off",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemPerformance"
            },
            "maxItems": 400,
            "title": "Items",
            "type": "array"
          },
          "mastery": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ObjectiveMasteryAggregate"
            },
            "maxItems": 400,
            "title": "Mastery",
            "type": "array"
          },
          "misconceptions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MisconceptionAggregate"
            },
            "maxItems": 200,
            "title": "Misconceptions",
            "type": "array"
          },
          "observations_examined": {
            "minimum": 1.0,
            "title": "Observations Examined",
            "type": "integer"
          },
          "progression": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LevelAggregate"
            },
            "maxItems": 20,
            "title": "Progression",
            "type": "array"
          },
          "report_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Report Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.10.0",
            "default": "6.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "slice_table": {
            "$ref": "#/components/schemas/CohortTable"
          },
          "stale_metric_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Stale Metric Ids",
            "type": "array"
          },
          "trends": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MetricTrend"
            },
            "maxItems": 20,
            "title": "Trends",
            "type": "array"
          },
          "witness": {
            "$ref": "#/components/schemas/AuthorAnalyticsWitness"
          }
        },
        "required": [
          "report_id",
          "generated_at",
          "witness",
          "catalog",
          "observations_examined",
          "slice_table"
        ],
        "title": "AuthorAnalyticsReport",
        "type": "object"
      },
      "AuthorAnalyticsRequest": {
        "additionalProperties": false,
        "properties": {
          "current_content_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Content Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "minimum_cohort": {
            "default": 10,
            "maximum": 200.0,
            "minimum": 5.0,
            "title": "Minimum Cohort",
            "type": "integer"
          },
          "observations": {
            "items": {
              "$ref": "#/components/schemas/LearnerObservation"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Observations",
            "type": "array"
          },
          "slice_dimension": {
            "default": "region",
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Slice Dimension",
            "type": "string"
          },
          "slice_level": {
            "default": "lesson",
            "enum": ["course", "module", "lesson", "activity", "content_step", "item"],
            "title": "Slice Level",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "window": {
            "$ref": "#/components/schemas/AnalyticsWindow"
          }
        },
        "required": [
          "idempotency_key",
          "window",
          "source_id",
          "source_revision_sha256",
          "current_content_revision_sha256",
          "observations"
        ],
        "title": "AuthorAnalyticsRequest",
        "type": "object"
      },
      "AuthorAnalyticsWitness": {
        "additionalProperties": false,
        "properties": {
          "aggregation_method": {
            "const": "catalog-bound-count-over-declared-denominator-v1",
            "title": "Aggregation Method",
            "type": "string"
          },
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-author-analytics",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.10.0",
            "title": "Engine Version",
            "type": "string"
          },
          "inference_method": {
            "const": "no-attribute-is-derived-only-supplied-and-ratified-v1",
            "title": "Inference Method",
            "type": "string"
          },
          "privacy_method": {
            "const": "minimum-cohort-with-margin-withholding-v1",
            "title": "Privacy Method",
            "type": "string"
          },
          "schema_version": {
            "const": "6.10.0",
            "default": "6.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/AnalyticsToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "unsupported_behavior": {
            "const": "report_unknown_rather_than_zero",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "aggregation_method",
          "uncertainty_method",
          "privacy_method",
          "inference_method",
          "tools",
          "catalog_sha256",
          "unsupported_behavior"
        ],
        "title": "AuthorAnalyticsWitness",
        "type": "object"
      },
      "AuthoringCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "logical_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Logical Id",
            "type": "string"
          },
          "payload": {
            "additionalProperties": true,
            "title": "Payload",
            "type": "object"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["logical_id", "payload", "idempotency_key", "reason"],
        "title": "AuthoringCreateRequest",
        "type": "object"
      },
      "AuthoringEditRequest": {
        "additionalProperties": false,
        "description": "An edit. It names what it read, or it is not an edit.",
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "payload": {
            "additionalProperties": true,
            "title": "Payload",
            "type": "object"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["payload", "expected_revision", "idempotency_key", "reason"],
        "title": "AuthoringEditRequest",
        "type": "object"
      },
      "AuthoringHub": {
        "additionalProperties": false,
        "description": "The whole page, for one viewer, at one moment.",
        "properties": {
          "audience": {
            "enum": ["author", "reviewer", "course_admin", "operator"],
            "title": "Audience",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "regions": {
            "items": {
              "$ref": "#/components/schemas/HubRegion"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Regions",
            "type": "array"
          },
          "schema_version": {
            "const": "9.1.0",
            "default": "9.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "viewer_id": {
            "format": "uuid",
            "title": "Viewer Id",
            "type": "string"
          }
        },
        "required": ["audience", "viewer_id", "regions", "generated_at"],
        "title": "AuthoringHub",
        "type": "object"
      },
      "AuthoringOutcome": {
        "additionalProperties": false,
        "description": "Every answer this surface gives, in one published shape.",
        "properties": {
          "aggregate_state": {
            "anyOf": [
              {
                "enum": ["draft", "in_review", "approved", "published", "withdrawn"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aggregate State"
          },
          "archived": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Archived"
          },
          "conflict": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConflictBody"
              },
              {
                "type": "null"
              }
            ]
          },
          "detail": {
            "anyOf": [
              {
                "maxLength": 600,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "etag": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Etag"
          },
          "kind": {
            "enum": [
              "course",
              "lesson",
              "item",
              "rubric",
              "source",
              "objective",
              "standard",
              "review",
              "release"
            ],
            "title": "Kind",
            "type": "string"
          },
          "logical_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Logical Id",
            "type": "string"
          },
          "operation": {
            "enum": [
              "create",
              "read",
              "list",
              "edit",
              "new_revision",
              "transition",
              "archive",
              "restore"
            ],
            "title": "Operation",
            "type": "string"
          },
          "problems": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ValidationProblem"
            },
            "maxItems": 100,
            "title": "Problems",
            "type": "array"
          },
          "revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revision"
          },
          "schema_version": {
            "const": "8.6.0",
            "default": "8.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": [
              "success",
              "validation_failed",
              "conflict",
              "stale",
              "forbidden",
              "not_found",
              "redacted",
              "duplicate_key"
            ],
            "title": "State",
            "type": "string"
          },
          "view": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RedactedPayloadView"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["state", "kind", "logical_id", "operation"],
        "title": "AuthoringOutcome",
        "type": "object"
      },
      "AuthoriseRequest": {
        "additionalProperties": false,
        "properties": {
          "request": {
            "$ref": "#/components/schemas/ExportRequest"
          }
        },
        "required": ["request"],
        "title": "AuthoriseRequest",
        "type": "object"
      },
      "Authority": {
        "additionalProperties": false,
        "description": "What the actor acted under. A grant or an authorization is named, not assumed.",
        "properties": {
          "basis": {
            "enum": [
              "case_role",
              "learner_self",
              "representative_grant",
              "forensic_authorization",
              "system_policy"
            ],
            "title": "Basis",
            "type": "string"
          },
          "reference_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference Id"
          }
        },
        "required": ["basis"],
        "title": "Authority",
        "type": "object"
      },
      "AuthorityBypassProbe": {
        "additionalProperties": false,
        "description": "One attempt to get a credential without an authorised decision.",
        "properties": {
          "actor": {
            "enum": ["course_completion", "author_action", "unauthorized_role"],
            "title": "Actor",
            "type": "string"
          },
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "mechanism": {
            "enum": ["absent_field", "lock_binding", "state_machine", "role_check"],
            "title": "Mechanism",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "verb": {
            "enum": ["mint", "backdate", "replace", "revoke", "verify"],
            "title": "Verb",
            "type": "string"
          }
        },
        "required": ["probe_id", "attempted", "refused", "verb", "actor", "mechanism", "detail"],
        "title": "AuthorityBypassProbe",
        "type": "object"
      },
      "AuthorityDecision": {
        "additionalProperties": false,
        "description": "What an author decided about one queue item, and what it produced.",
        "properties": {
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Decided By",
            "type": "string"
          },
          "decision": {
            "enum": ["accept", "reject", "defer", "request_research"],
            "title": "Decision",
            "type": "string"
          },
          "proposal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DraftRevisionProposal"
              },
              {
                "type": "null"
              }
            ]
          },
          "queue_item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Queue Item Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          },
          "resulting_status": {
            "enum": ["new", "triaged", "accepted", "rejected", "deferred", "research_requested"],
            "title": "Resulting Status",
            "type": "string"
          }
        },
        "required": [
          "queue_item_id",
          "decision",
          "decided_by",
          "decided_at",
          "rationale",
          "resulting_status"
        ],
        "title": "AuthorityDecision",
        "type": "object"
      },
      "AuthorityGrant": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["approved", "rejected", "changes_requested"],
            "title": "Decision",
            "type": "string"
          },
          "grant_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grant Id",
            "type": "string"
          },
          "granted_at": {
            "format": "date-time",
            "title": "Granted At",
            "type": "string"
          },
          "granted_config_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Granted Config Revision Sha256",
            "type": "string"
          },
          "grantor_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Grantor Id",
            "type": "string"
          },
          "grantor_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Grantor Name",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "grant_id",
          "grantor_id",
          "grantor_name",
          "decision",
          "granted_config_revision_sha256",
          "granted_at",
          "rationale"
        ],
        "title": "AuthorityGrant",
        "type": "object"
      },
      "AuthorityProbe": {
        "additionalProperties": false,
        "description": "One attempt to make a result do something an agent may not.",
        "properties": {
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "authority": {
            "enum": [
              "change_a_grade",
              "decide_an_appeal",
              "waive_a_gate",
              "publish_content",
              "issue_a_credential",
              "expose_an_answer_key"
            ],
            "title": "Authority",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "mechanism": {
            "enum": ["absent_field", "allowlist", "scan", "state_machine"],
            "title": "Mechanism",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          }
        },
        "required": ["probe_id", "attempted", "refused", "authority", "mechanism", "detail"],
        "title": "AuthorityProbe",
        "type": "object"
      },
      "AutoEditProbe": {
        "additionalProperties": false,
        "description": "One attempt to make the queue change published content, and its refusal.",
        "properties": {
          "attempted": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          }
        },
        "required": ["probe_id", "attempted", "refused", "detail"],
        "title": "AutoEditProbe",
        "type": "object"
      },
      "AvatarTeacherIncidentRecordResponse": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "enum": ["open", "mitigating", "resolved"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "workspace_href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workspace Href"
          }
        },
        "required": [
          "id",
          "status",
          "severity",
          "title",
          "summary",
          "owner",
          "created_at",
          "updated_at"
        ],
        "title": "AvatarTeacherIncidentRecordResponse",
        "type": "object"
      },
      "AvatarTeacherWorkflowActionOptionResponse": {
        "properties": {
          "action": {
            "enum": [
              "approve_release",
              "restrict_runtime",
              "route_to_incident",
              "begin_retirement",
              "confirm_retirement",
              "return_to_release_review"
            ],
            "title": "Action",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "tone": {
            "default": "neutral",
            "enum": ["neutral", "positive", "warning", "critical"],
            "title": "Tone",
            "type": "string"
          }
        },
        "required": ["action", "label", "description"],
        "title": "AvatarTeacherWorkflowActionOptionResponse",
        "type": "object"
      },
      "AvatarTeacherWorkflowActionRecordResponse": {
        "properties": {
          "acted_at": {
            "format": "date-time",
            "title": "Acted At",
            "type": "string"
          },
          "action": {
            "enum": [
              "approve_release",
              "restrict_runtime",
              "route_to_incident",
              "begin_retirement",
              "confirm_retirement",
              "return_to_release_review"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "reviewer": {
            "title": "Reviewer",
            "type": "string"
          }
        },
        "required": ["action", "comment", "reviewer", "acted_at"],
        "title": "AvatarTeacherWorkflowActionRecordResponse",
        "type": "object"
      },
      "AvatarTeacherWorkflowActionRequest": {
        "properties": {
          "action": {
            "enum": [
              "approve_release",
              "restrict_runtime",
              "route_to_incident",
              "begin_retirement",
              "confirm_retirement",
              "return_to_release_review"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "default": "",
            "maxLength": 4000,
            "title": "Comment",
            "type": "string"
          }
        },
        "required": ["action"],
        "title": "AvatarTeacherWorkflowActionRequest",
        "type": "object"
      },
      "AvatarTeacherWorkflowActionResponse": {
        "properties": {
          "item": {
            "$ref": "#/components/schemas/ReviewQueueDetailResponse"
          },
          "workflow_action": {
            "$ref": "#/components/schemas/AvatarTeacherWorkflowActionRecordResponse"
          }
        },
        "required": ["item", "workflow_action"],
        "title": "AvatarTeacherWorkflowActionResponse",
        "type": "object"
      },
      "AvatarTeacherWorkflowDependencyResponse": {
        "properties": {
          "href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Href"
          },
          "item_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Id"
          },
          "key": {
            "title": "Key",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "queue_type": {
            "anyOf": [
              {
                "enum": [
                  "source_bundle",
                  "grounded_build",
                  "publication_package",
                  "tutor_persona",
                  "prompt_change",
                  "model_routing_policy_change",
                  "avatar_teacher_profile",
                  "voice_pack",
                  "likeness_consent_record"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Queue Type"
          },
          "status": {
            "enum": ["ready", "pending", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["key", "label", "status", "summary"],
        "title": "AvatarTeacherWorkflowDependencyResponse",
        "type": "object"
      },
      "AvatarTeacherWorkflowResponse": {
        "properties": {
          "allowed_actions": {
            "items": {
              "$ref": "#/components/schemas/AvatarTeacherWorkflowActionOptionResponse"
            },
            "title": "Allowed Actions",
            "type": "array"
          },
          "dependencies": {
            "items": {
              "$ref": "#/components/schemas/AvatarTeacherWorkflowDependencyResponse"
            },
            "title": "Dependencies",
            "type": "array"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/AvatarTeacherWorkflowActionRecordResponse"
            },
            "title": "History",
            "type": "array"
          },
          "open_incidents": {
            "items": {
              "$ref": "#/components/schemas/AvatarTeacherIncidentRecordResponse"
            },
            "title": "Open Incidents",
            "type": "array"
          },
          "profile_id": {
            "title": "Profile Id",
            "type": "string"
          },
          "release_readiness_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Release Readiness Percent",
            "type": "integer"
          },
          "retirement_summary": {
            "title": "Retirement Summary",
            "type": "string"
          },
          "runtime_posture_summary": {
            "title": "Runtime Posture Summary",
            "type": "string"
          },
          "stage": {
            "enum": [
              "release_review",
              "approved_live_release",
              "restricted_runtime",
              "incident_response",
              "retirement_review",
              "retired"
            ],
            "title": "Stage",
            "type": "string"
          },
          "stage_label": {
            "title": "Stage Label",
            "type": "string"
          }
        },
        "required": [
          "profile_id",
          "stage",
          "stage_label",
          "release_readiness_percent",
          "runtime_posture_summary",
          "retirement_summary"
        ],
        "title": "AvatarTeacherWorkflowResponse",
        "type": "object"
      },
      "BandWindow": {
        "additionalProperties": false,
        "description": "The difficulty window a mastery band may be served from.",
        "properties": {
          "band": {
            "enum": ["novice", "developing", "proficient", "advanced"],
            "title": "Band",
            "type": "string"
          },
          "maximum_difficulty_centilogits": {
            "maximum": 500.0,
            "minimum": -500.0,
            "title": "Maximum Difficulty Centilogits",
            "type": "integer"
          },
          "minimum_difficulty_centilogits": {
            "maximum": 500.0,
            "minimum": -500.0,
            "title": "Minimum Difficulty Centilogits",
            "type": "integer"
          }
        },
        "required": ["band", "minimum_difficulty_centilogits", "maximum_difficulty_centilogits"],
        "title": "BandWindow",
        "type": "object"
      },
      "BenchmarkOverlap": {
        "additionalProperties": false,
        "description": "One benchmark this candidate was compared against, at an exact revision.\n\nNaming the benchmark without its revision would let a benchmark change\nunderneath a contamination clearance that still reads as current.",
        "properties": {
          "benchmark_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Benchmark Id",
            "type": "string"
          },
          "benchmark_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Benchmark Revision Sha256",
            "type": "string"
          },
          "compared_records": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Compared Records",
            "type": "integer"
          },
          "overlapping_records": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Overlapping Records",
            "type": "integer"
          }
        },
        "required": [
          "benchmark_id",
          "benchmark_revision_sha256",
          "compared_records",
          "overlapping_records"
        ],
        "title": "BenchmarkOverlap",
        "type": "object"
      },
      "BestOfNCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "workflow_contract",
              "generation_lineage",
              "complete_evaluation",
              "ranking_and_bias",
              "educator_decision",
              "accepted_revision"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "BestOfNCorpusMetric",
        "type": "object"
      },
      "BestOfNDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "accept_with_edit", "reject_all", "regenerate"],
            "title": "Action",
            "type": "string"
          },
          "candidate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Id"
          },
          "edited_output_text": {
            "anyOf": [
              {
                "maxLength": 200000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Output Text"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_run_sha256", "action", "rationale"],
        "title": "BestOfNDecisionRequest",
        "type": "object"
      },
      "BestOfNEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "bias_method": {
            "const": "kendall-tau-b-over-generation-position-and-output-length-v1",
            "title": "Bias Method",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-best-of-n",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "5.25.0",
            "title": "Engine Version",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.25.0",
            "default": "5.25.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selection_method": {
            "const": "declared-weighted-rule-with-preserved-rejections-v1",
            "title": "Selection Method",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/BestOfNToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_educator_selection_required",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "selection_method",
          "bias_method",
          "tools",
          "rules_sha256",
          "unsupported_behavior"
        ],
        "title": "BestOfNEngineWitness",
        "type": "object"
      },
      "BestOfNEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "BestOfNEvaluationCaseResult",
        "type": "object"
      },
      "BestOfNEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/BestOfNEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m5.25-best-of-n-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/BestOfNCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "limitations"
        ],
        "title": "BestOfNEvaluationReport",
        "type": "object"
      },
      "BestOfNProjection": {
        "additionalProperties": false,
        "properties": {
          "accepted_revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AcceptedArtifactRevision"
              },
              {
                "type": "null"
              }
            ]
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/EducatorDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/BestOfNRunResponse"
          }
        },
        "required": ["run", "decisions", "accepted_revision"],
        "title": "BestOfNProjection",
        "type": "object"
      },
      "BestOfNRunRequest": {
        "additionalProperties": false,
        "properties": {
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/GeneratedCandidate"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Candidates",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "plan": {
            "$ref": "#/components/schemas/VerifierPlan"
          },
          "risk": {
            "default": "general",
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "schema_version": {
            "const": "5.25.0",
            "default": "5.25.0",
            "title": "Schema Version",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/CandidateSetSpec"
          },
          "spent_cents": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Spent Cents",
            "type": "integer"
          },
          "stop_reason": {
            "enum": [
              "count_reached",
              "budget_exhausted",
              "deadline_reached",
              "generator_refused",
              "diversity_unmet"
            ],
            "title": "Stop Reason",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["lesson_explanation", "item_rationale", "worked_solution", "tutor_reply"],
            "title": "Target Kind",
            "type": "string"
          },
          "verifier_results": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CandidateVerifierResult"
            },
            "maxItems": 2000,
            "title": "Verifier Results",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "target_id",
          "target_kind",
          "spec",
          "plan",
          "candidates",
          "stop_reason",
          "spent_cents"
        ],
        "title": "BestOfNRunRequest",
        "type": "object"
      },
      "BestOfNRunResponse": {
        "additionalProperties": false,
        "properties": {
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/GeneratedCandidate"
            },
            "title": "Candidates",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/BestOfNEngineWitness"
          },
          "evaluation": {
            "$ref": "#/components/schemas/EvaluationReport"
          },
          "generation": {
            "$ref": "#/components/schemas/GenerationReport"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "plan": {
            "$ref": "#/components/schemas/VerifierPlan"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "risk": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.25.0",
            "default": "5.25.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selection": {
            "$ref": "#/components/schemas/SelectionResult"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/CandidateSetSpec"
          },
          "spent_cents": {
            "title": "Spent Cents",
            "type": "integer"
          },
          "stop_reason": {
            "enum": [
              "count_reached",
              "budget_exhausted",
              "deadline_reached",
              "generator_refused",
              "diversity_unmet"
            ],
            "title": "Stop Reason",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["lesson_explanation", "item_rationale", "worked_solution", "tutor_reply"],
            "title": "Target Kind",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "verifier_results": {
            "items": {
              "$ref": "#/components/schemas/CandidateVerifierResult"
            },
            "title": "Verifier Results",
            "type": "array"
          }
        },
        "required": [
          "run_id",
          "idempotency_key",
          "target_id",
          "target_kind",
          "spec",
          "plan",
          "candidates",
          "verifier_results",
          "stop_reason",
          "spent_cents",
          "risk",
          "generation",
          "evaluation",
          "selection",
          "engine",
          "request_sha256",
          "requested_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "BestOfNRunResponse",
        "type": "object"
      },
      "BestOfNToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "BestOfNToolWitness",
        "type": "object"
      },
      "BestOfNWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/BestOfNEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/BestOfNProjection"
            },
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "5.25.0",
            "default": "5.25.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/BestOfNWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "runs"],
        "title": "BestOfNWorkspaceResponse",
        "type": "object"
      },
      "BestOfNWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "minimum": 0.0,
            "title": "Accepted",
            "type": "integer"
          },
          "all_rejected": {
            "minimum": 0.0,
            "title": "All Rejected",
            "type": "integer"
          },
          "candidates_retained": {
            "minimum": 0.0,
            "title": "Candidates Retained",
            "type": "integer"
          },
          "pending_educator": {
            "minimum": 0.0,
            "title": "Pending Educator",
            "type": "integer"
          },
          "regenerated": {
            "minimum": 0.0,
            "title": "Regenerated",
            "type": "integer"
          },
          "runs": {
            "minimum": 0.0,
            "title": "Runs",
            "type": "integer"
          },
          "tied": {
            "minimum": 0.0,
            "title": "Tied",
            "type": "integer"
          }
        },
        "required": [
          "runs",
          "pending_educator",
          "tied",
          "all_rejected",
          "accepted",
          "regenerated",
          "candidates_retained"
        ],
        "title": "BestOfNWorkspaceSummary",
        "type": "object"
      },
      "BiasFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "bestofn.bias.position-correlated",
              "bestofn.bias.length-correlated",
              "bestofn.bias.single-generator-shortlist"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "statistic_milli": {
            "maximum": 1000.0,
            "minimum": -1000.0,
            "title": "Statistic Milli",
            "type": "integer"
          }
        },
        "required": ["code", "detail", "statistic_milli"],
        "title": "BiasFinding",
        "type": "object"
      },
      "BindingActivationBlocker": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "binding.activation.material-does-not-resolve",
              "binding.activation.incompatible-configuration",
              "binding.activation.no-approved-grant",
              "binding.activation.grantor-is-the-author",
              "binding.activation.grant-pins-another-revision",
              "binding.activation.lifecycle-not-approved"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          }
        },
        "required": ["code", "detail"],
        "title": "BindingActivationBlocker",
        "type": "object"
      },
      "BindingActivationDecision": {
        "additionalProperties": false,
        "properties": {
          "activatable": {
            "title": "Activatable",
            "type": "boolean"
          },
          "blockers": {
            "items": {
              "$ref": "#/components/schemas/BindingActivationBlocker"
            },
            "maxItems": 32,
            "title": "Blockers",
            "type": "array"
          },
          "config_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Config Id",
            "type": "string"
          },
          "grant_pins_this_revision": {
            "title": "Grant Pins This Revision",
            "type": "boolean"
          },
          "grant_present": {
            "title": "Grant Present",
            "type": "boolean"
          },
          "grantor_distinct_from_author": {
            "title": "Grantor Distinct From Author",
            "type": "boolean"
          },
          "state": {
            "enum": ["activatable", "blocked"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "config_id",
          "state",
          "activatable",
          "blockers",
          "grant_present",
          "grant_pins_this_revision",
          "grantor_distinct_from_author"
        ],
        "title": "BindingActivationDecision",
        "type": "object"
      },
      "BindingCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "binding_contract",
              "material_resolution",
              "compatibility_and_grants",
              "session_material",
              "lifecycle_and_migration"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "BindingCorpusMetric",
        "type": "object"
      },
      "BindingEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis-tutor-configuration-binding",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.7.0",
            "title": "Engine Version",
            "type": "string"
          },
          "resolution_method": {
            "const": "revision-pinned-catalogue-resolution-v1",
            "title": "Resolution Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.7.0",
            "default": "6.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session_method": {
            "const": "resolve-again-at-every-session-start-v1",
            "title": "Session Method",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/BindingToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "refuse_the_session_rather_than_substitute_a_revision",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "resolution_method",
          "session_method",
          "tools",
          "rules_sha256",
          "unsupported_behavior"
        ],
        "title": "BindingEngineWitness",
        "type": "object"
      },
      "BindingEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "BindingEvaluationCaseResult",
        "type": "object"
      },
      "BindingEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/BindingEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.7-tutor-binding-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/BindingCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "stale_material": {
            "$ref": "#/components/schemas/StaleMaterialSweep"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "stale_material",
          "limitations"
        ],
        "title": "BindingEvaluationReport",
        "type": "object"
      },
      "BindingToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "BindingToolWitness",
        "type": "object"
      },
      "BindingWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "activatable": {
            "minimum": 0.0,
            "title": "Activatable",
            "type": "integer"
          },
          "bindings": {
            "minimum": 0.0,
            "title": "Bindings",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "historical_sessions_rewritten": {
            "const": 0,
            "default": 0,
            "title": "Historical Sessions Rewritten",
            "type": "integer"
          },
          "sessions_refused": {
            "minimum": 0.0,
            "title": "Sessions Refused",
            "type": "integer"
          },
          "sessions_started": {
            "minimum": 0.0,
            "title": "Sessions Started",
            "type": "integer"
          }
        },
        "required": ["bindings", "activatable", "blocked", "sessions_started", "sessions_refused"],
        "title": "BindingWorkspaceSummary",
        "type": "object"
      },
      "BktInput": {
        "additionalProperties": false,
        "properties": {
          "minimum_observations": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Minimum Observations",
            "type": "integer"
          },
          "observations": {
            "default": [],
            "items": {
              "enum": ["correct", "incorrect"],
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Observations",
            "type": "array"
          },
          "parameters": {
            "$ref": "#/components/schemas/BktParameters"
          },
          "readiness_threshold_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Readiness Threshold Basis Points",
            "type": "integer"
          }
        },
        "required": ["parameters", "readiness_threshold_basis_points", "minimum_observations"],
        "title": "BktInput",
        "type": "object"
      },
      "BktParameters": {
        "additionalProperties": false,
        "properties": {
          "guess_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Guess Basis Points",
            "type": "integer"
          },
          "learn_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Learn Basis Points",
            "type": "integer"
          },
          "prior_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Prior Basis Points",
            "type": "integer"
          },
          "slip_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Slip Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "prior_basis_points",
          "learn_basis_points",
          "guess_basis_points",
          "slip_basis_points"
        ],
        "title": "BktParameters",
        "type": "object"
      },
      "BktResult": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/ModelApplicability"
          },
          "identity": {
            "$ref": "#/components/schemas/ModelRunIdentity"
          },
          "p_known_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "P Known Basis Points",
            "type": "integer"
          },
          "parameters": {
            "$ref": "#/components/schemas/BktParameters"
          },
          "readiness_threshold_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Readiness Threshold Basis Points",
            "type": "integer"
          },
          "ready": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready"
          },
          "uncertainty": {
            "$ref": "#/components/schemas/UncertaintyInterval"
          },
          "updates": {
            "items": {
              "$ref": "#/components/schemas/BktUpdateStep"
            },
            "maxItems": 1000,
            "title": "Updates",
            "type": "array"
          }
        },
        "required": [
          "identity",
          "applicability",
          "parameters",
          "p_known_basis_points",
          "uncertainty",
          "updates",
          "readiness_threshold_basis_points",
          "ready"
        ],
        "title": "BktResult",
        "type": "object"
      },
      "BktUpdateStep": {
        "additionalProperties": false,
        "properties": {
          "observation": {
            "enum": ["correct", "incorrect"],
            "title": "Observation",
            "type": "string"
          },
          "ordinal": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "p_known_after_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "P Known After Basis Points",
            "type": "integer"
          },
          "p_known_before_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "P Known Before Basis Points",
            "type": "integer"
          },
          "posterior_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Posterior Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "ordinal",
          "observation",
          "p_known_before_basis_points",
          "posterior_basis_points",
          "p_known_after_basis_points"
        ],
        "title": "BktUpdateStep",
        "type": "object"
      },
      "BlastPreview": {
        "additionalProperties": false,
        "description": "What an action would touch, computed before anything is done.",
        "properties": {
          "action": {
            "enum": ["attach", "replace", "corroborate", "edit", "abstain", "request_review"],
            "title": "Action",
            "type": "string"
          },
          "base_revision": {
            "minimum": 1.0,
            "title": "Base Revision",
            "type": "integer"
          },
          "changes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PreviewedChange"
            },
            "maxItems": 1000,
            "title": "Changes",
            "type": "array"
          },
          "claim_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "unreachable": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Unreachable",
            "type": "array"
          }
        },
        "required": ["action", "claim_id", "base_revision", "preview_sha256", "computed_at"],
        "title": "BlastPreview",
        "type": "object"
      },
      "BlastRadius": {
        "additionalProperties": false,
        "description": "What a kill would stop. Counted from what is running, not estimated.",
        "properties": {
          "affected_admission_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Affected Admission Ids",
            "type": "array"
          },
          "courses": {
            "minimum": 0.0,
            "title": "Courses",
            "type": "integer"
          },
          "jobs": {
            "minimum": 0.0,
            "title": "Jobs",
            "type": "integer"
          },
          "sessions": {
            "minimum": 0.0,
            "title": "Sessions",
            "type": "integer"
          },
          "tenants": {
            "minimum": 0.0,
            "title": "Tenants",
            "type": "integer"
          }
        },
        "required": ["sessions", "jobs", "tenants", "courses"],
        "title": "BlastRadius",
        "type": "object"
      },
      "BlastRadiusEntry": {
        "additionalProperties": false,
        "properties": {
          "affected_config_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Affected Config Ids",
            "type": "array"
          },
          "affected_session_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 2000,
            "title": "Affected Session Ids",
            "type": "array"
          },
          "change": {
            "$ref": "#/components/schemas/MaterialChange"
          },
          "outcome_if_unchanged": {
            "enum": [
              "resolved",
              "stale",
              "not_approved",
              "not_published",
              "retracted",
              "rights_revoked",
              "substituted",
              "unresolvable"
            ],
            "title": "Outcome If Unchanged",
            "type": "string"
          }
        },
        "required": [
          "change",
          "affected_config_ids",
          "affected_session_ids",
          "outcome_if_unchanged"
        ],
        "title": "BlastRadiusEntry",
        "type": "object"
      },
      "BlastRadiusReport": {
        "additionalProperties": false,
        "properties": {
          "affected_configs": {
            "minimum": 0.0,
            "title": "Affected Configs",
            "type": "integer"
          },
          "affected_sessions": {
            "minimum": 0.0,
            "title": "Affected Sessions",
            "type": "integer"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/BlastRadiusEntry"
            },
            "maxItems": 64,
            "title": "Entries",
            "type": "array"
          }
        },
        "required": ["entries", "affected_configs", "affected_sessions"],
        "title": "BlastRadiusReport",
        "type": "object"
      },
      "BlastRadiusRequest": {
        "additionalProperties": false,
        "properties": {
          "admissions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AdmissionRecord"
            },
            "maxItems": 500,
            "title": "Admissions",
            "type": "array"
          },
          "candidates": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ModelCandidate"
            },
            "maxItems": 500,
            "title": "Candidates",
            "type": "array"
          },
          "live_jobs": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "maxItems": 1000,
            "title": "Live Jobs",
            "type": "array"
          },
          "live_sessions": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "maxItems": 1000,
            "title": "Live Sessions",
            "type": "array"
          },
          "scope": {
            "enum": ["candidate", "tenant", "provider", "platform"],
            "title": "Scope",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["scope", "target_id"],
        "title": "BlastRadiusRequest",
        "type": "object"
      },
      "BoardEntityKind": {
        "enum": ["course", "module"],
        "title": "BoardEntityKind",
        "type": "string"
      },
      "BoardGateCheck": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "pattern": "^[a-z][a-z0-9_]{2,79}$",
            "title": "Code",
            "type": "string"
          },
          "evidence": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Evidence",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "satisfied": {
            "title": "Satisfied",
            "type": "boolean"
          }
        },
        "required": ["code", "label", "satisfied", "evidence"],
        "title": "BoardGateCheck",
        "type": "object"
      },
      "BoardGroupMode": {
        "enum": ["none", "board_group"],
        "title": "BoardGroupMode",
        "type": "string"
      },
      "BoardScope": {
        "enum": ["courses", "modules"],
        "title": "BoardScope",
        "type": "string"
      },
      "Body_quarantine_multipart_source_upload_api_source_ingestion_multipart_post": {
        "properties": {
          "expectedSize": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expectedsize"
          },
          "file": {
            "contentMediaType": "application/octet-stream",
            "title": "File",
            "type": "string"
          }
        },
        "required": ["file"],
        "title": "Body_quarantine_multipart_source_upload_api_source_ingestion_multipart_post",
        "type": "object"
      },
      "BoolValue": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "bool",
            "default": "bool",
            "title": "Kind",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "boolean"
          }
        },
        "required": ["value"],
        "title": "BoolValue",
        "type": "object"
      },
      "BoundaryProbe": {
        "additionalProperties": false,
        "description": "One attempt to get a real learner, or an unmarked turn, into a preview.",
        "properties": {
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "mechanism": {
            "enum": ["absent_field", "marker_check", "matrix_cell", "intersection"],
            "title": "Mechanism",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          }
        },
        "required": ["probe_id", "attempted", "refused", "mechanism", "detail"],
        "title": "BoundaryProbe",
        "type": "object"
      },
      "BoundaryProbeResult": {
        "additionalProperties": false,
        "description": "One dimension probed on both sides of its exact boundary.",
        "properties": {
          "dimension": {
            "enum": [
              "objective_coverage",
              "difficulty_mastery_band",
              "exposure_compromise",
              "locale",
              "pnp_support",
              "delivery",
              "integrity_state"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "inside_eligible": {
            "title": "Inside Eligible",
            "type": "boolean"
          },
          "outside_eligible": {
            "title": "Outside Eligible",
            "type": "boolean"
          },
          "outside_reason": {
            "enum": [
              "pool.excluded.revision-evidence-stale",
              "pool.excluded.revision-evidence-blocked",
              "pool.excluded.exposure-evidence-not-current",
              "pool.excluded.platform-incompatible",
              "pool.excluded.mandatory-gate-unresolved",
              "pool.excluded.mandatory-gate-blocked",
              "pool.excluded.not-approved",
              "pool.excluded.unavailable",
              "pool.excluded.quarantined",
              "pool.excluded.compromised",
              "pool.excluded.overexposed",
              "pool.excluded.seen-too-recently",
              "pool.excluded.objective-not-covered",
              "pool.excluded.objective-forbidden",
              "pool.excluded.outside-mastery-band",
              "pool.excluded.locale-unavailable",
              "pool.excluded.pnp-support-missing",
              "pool.excluded.pnp-feature-forbidden",
              "pool.excluded.delivery-mode-incompatible",
              "pool.excluded.integrity-mode-incompatible"
            ],
            "title": "Outside Reason",
            "type": "string"
          },
          "separates": {
            "title": "Separates",
            "type": "boolean"
          }
        },
        "required": [
          "dimension",
          "inside_eligible",
          "outside_eligible",
          "outside_reason",
          "separates"
        ],
        "title": "BoundaryProbeResult",
        "type": "object"
      },
      "BoundarySweepReport": {
        "additionalProperties": false,
        "properties": {
          "every_dimension_separates": {
            "title": "Every Dimension Separates",
            "type": "boolean"
          },
          "method": {
            "const": "two-sided-boundary-probe-per-dimension-v1",
            "title": "Method",
            "type": "string"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/BoundaryProbeResult"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Probes",
            "type": "array"
          }
        },
        "required": ["method", "probes", "every_dimension_separates"],
        "title": "BoundarySweepReport",
        "type": "object"
      },
      "BoundedAttribute": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "enum": [
              "stage",
              "tier",
              "outcome",
              "degraded_from",
              "cache",
              "pool_size_bucket",
              "model_calls_bucket",
              "timeout_source"
            ],
            "title": "Key",
            "type": "string"
          },
          "value": {
            "maxLength": 32,
            "pattern": "^[a-z][a-z0-9._-]{0,31}$",
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["key", "value"],
        "title": "BoundedAttribute",
        "type": "object"
      },
      "BudgetBreach": {
        "additionalProperties": false,
        "properties": {
          "budget_micros": {
            "maximum": 60000000.0,
            "minimum": 1.0,
            "title": "Budget Micros",
            "type": "integer"
          },
          "exceeded_by_micros": {
            "maximum": 60000000.0,
            "minimum": 1.0,
            "title": "Exceeded By Micros",
            "type": "integer"
          },
          "observed_micros": {
            "maximum": 60000000.0,
            "minimum": 0.0,
            "title": "Observed Micros",
            "type": "integer"
          },
          "percentile": {
            "enum": ["p50", "p95", "p99"],
            "title": "Percentile",
            "type": "string"
          },
          "tier": {
            "enum": ["desktop_broadband", "laptop_wifi", "tablet_4g", "phone_3g"],
            "title": "Tier",
            "type": "string"
          }
        },
        "required": [
          "tier",
          "percentile",
          "budget_micros",
          "observed_micros",
          "exceeded_by_micros"
        ],
        "title": "BudgetBreach",
        "type": "object"
      },
      "BudgetKillCommand": {
        "additionalProperties": false,
        "description": "Stop before the next spend, once the ceiling is reached.",
        "properties": {
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "issued_by_role": {
            "enum": ["run_owner", "course_owner", "operator", "budget_holder"],
            "title": "Issued By Role",
            "type": "string"
          },
          "kind": {
            "const": "budget_kill",
            "default": "budget_kill",
            "title": "Kind",
            "type": "string"
          },
          "observed_committed_minor_units": {
            "minimum": 0.0,
            "title": "Observed Committed Minor Units",
            "type": "integer"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "stops_before_next_spend": {
            "const": true,
            "default": true,
            "title": "Stops Before Next Spend",
            "type": "boolean"
          }
        },
        "required": [
          "command_id",
          "idempotency_key",
          "run_id",
          "expected_version",
          "issued_by",
          "issued_by_role",
          "reason",
          "issued_at",
          "observed_committed_minor_units"
        ],
        "title": "BudgetKillCommand",
        "type": "object"
      },
      "BudgetLedgerView": {
        "additionalProperties": false,
        "properties": {
          "lines": {
            "items": {
              "$ref": "#/components/schemas/BudgetLine"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Lines",
            "type": "array"
          },
          "overspent": {
            "title": "Overspent",
            "type": "boolean"
          }
        },
        "required": ["lines", "overspent"],
        "title": "BudgetLedgerView",
        "type": "object"
      },
      "BudgetLine": {
        "additionalProperties": false,
        "description": "One resource: what was allocated, what was spent, what is left.\n\n``remaining`` is checked against `allocated - consumed` rather than taken on\ntrust. A ledger that carries three independent numbers can report a remainder\nthat no longer follows from the other two.",
        "properties": {
          "allocated": {
            "minimum": 0.0,
            "title": "Allocated",
            "type": "integer"
          },
          "consumed": {
            "minimum": 0.0,
            "title": "Consumed",
            "type": "integer"
          },
          "remaining": {
            "title": "Remaining",
            "type": "integer"
          },
          "resource": {
            "enum": ["input_tokens", "output_tokens", "tool_calls", "compute_ms", "cost"],
            "title": "Resource",
            "type": "string"
          },
          "unit": {
            "enum": ["tokens", "calls", "milliseconds", "minor_units"],
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["resource", "allocated", "consumed", "remaining", "unit"],
        "title": "BudgetLine",
        "type": "object"
      },
      "BudgetState": {
        "additionalProperties": false,
        "properties": {
          "engine_calls_used": {
            "minimum": 0.0,
            "title": "Engine Calls Used",
            "type": "integer"
          },
          "exhausted_bound": {
            "enum": ["none", "max_steps_per_learner", "max_simulated_days", "max_engine_calls"],
            "title": "Exhausted Bound",
            "type": "string"
          },
          "simulated_days_used": {
            "minimum": 0.0,
            "title": "Simulated Days Used",
            "type": "integer"
          },
          "steps_used": {
            "minimum": 0.0,
            "title": "Steps Used",
            "type": "integer"
          }
        },
        "required": ["steps_used", "simulated_days_used", "engine_calls_used", "exhausted_bound"],
        "title": "BudgetState",
        "type": "object"
      },
      "BuildExportRequest": {
        "additionalProperties": false,
        "description": "The request and the records to draw from. The actor is not a field.",
        "properties": {
          "records": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExportRecord"
            },
            "maxItems": 5000,
            "title": "Records",
            "type": "array"
          },
          "request": {
            "$ref": "#/components/schemas/ExportRequest"
          }
        },
        "required": ["request"],
        "title": "BuildExportRequest",
        "type": "object"
      },
      "BuildExportResponse": {
        "additionalProperties": false,
        "properties": {
          "manifest": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExportManifest"
              },
              {
                "type": "null"
              }
            ]
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExportRefusal"
            },
            "title": "Refusals",
            "type": "array"
          },
          "signature": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ManifestSignature"
              },
              {
                "type": "null"
              }
            ]
          },
          "wire": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Wire",
            "type": "object"
          }
        },
        "title": "BuildExportResponse",
        "type": "object"
      },
      "BundleApproval": {
        "additionalProperties": false,
        "description": "A person approving one exact manifest.\n\nBound to the hash, not the bundle id: a bundle that changed after approval\nis a different catalogue, and the release path compares the two.",
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "bundle_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Bundle Id",
            "type": "string"
          },
          "dimensions": {
            "items": {
              "enum": ["content", "rights", "accessibility", "ordering", "targets"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Dimensions",
            "type": "array"
          },
          "manifest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": ["bundle_id", "manifest", "approved_by", "approved_at", "dimensions"],
        "title": "BundleApproval",
        "type": "object"
      },
      "BusinessCalendar": {
        "additionalProperties": false,
        "description": "When work happens. A deadline is walked through these hours, not added to a clock.",
        "properties": {
          "calendar_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Calendar Id",
            "type": "string"
          },
          "closes_at": {
            "format": "time",
            "title": "Closes At",
            "type": "string"
          },
          "holidays": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Holidays",
            "type": "array"
          },
          "opens_at": {
            "format": "time",
            "title": "Opens At",
            "type": "string"
          },
          "timezone": {
            "maxLength": 60,
            "minLength": 3,
            "title": "Timezone",
            "type": "string"
          },
          "working_days": {
            "items": {
              "type": "integer"
            },
            "maxItems": 7,
            "minItems": 1,
            "title": "Working Days",
            "type": "array"
          }
        },
        "required": ["calendar_id", "timezone", "working_days", "opens_at", "closes_at"],
        "title": "BusinessCalendar",
        "type": "object"
      },
      "BypassProbe": {
        "additionalProperties": false,
        "description": "One attempt to reach a denied operation by a different path.",
        "properties": {
          "baseline_disposition": {
            "enum": ["allow", "deny", "scaffold_only", "require_aid_grant"],
            "title": "Baseline Disposition",
            "type": "string"
          },
          "baseline_outcome": {
            "enum": ["allowed", "refused", "scaffold_offered", "escalated"],
            "title": "Baseline Outcome",
            "type": "string"
          },
          "bypass_class": {
            "enum": [
              "direct_route",
              "alternate_modality",
              "cached_session",
              "prompt_injection",
              "tool_alias",
              "graph_media",
              "accessibility_channel"
            ],
            "title": "Bypass Class",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "invariant": {
            "title": "Invariant",
            "type": "boolean"
          },
          "observed_disposition": {
            "enum": ["allow", "deny", "scaffold_only", "require_aid_grant"],
            "title": "Observed Disposition",
            "type": "string"
          },
          "observed_outcome": {
            "enum": ["allowed", "refused", "scaffold_offered", "escalated"],
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "bypass_class",
          "baseline_disposition",
          "observed_disposition",
          "baseline_outcome",
          "observed_outcome",
          "invariant",
          "detail"
        ],
        "title": "BypassProbe",
        "type": "object"
      },
      "CadenceRule": {
        "additionalProperties": false,
        "properties": {
          "cadence_kind": {
            "enum": ["fixed_dates", "rolling_enrollment", "self_paced"],
            "title": "Cadence Kind",
            "type": "string"
          },
          "deadline_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deadline On"
          },
          "timezone": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Timezone",
            "type": "string"
          },
          "window_closes_on": {
            "format": "date",
            "title": "Window Closes On",
            "type": "string"
          },
          "window_opens_on": {
            "format": "date",
            "title": "Window Opens On",
            "type": "string"
          }
        },
        "required": ["cadence_kind", "timezone", "window_opens_on", "window_closes_on"],
        "title": "CadenceRule",
        "type": "object"
      },
      "CalendarEvent": {
        "additionalProperties": false,
        "description": "One thing on the calendar.",
        "properties": {
          "effective_from": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective From"
          },
          "embargo_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Embargo Until"
          },
          "event_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Event Id",
            "type": "string"
          },
          "owner": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "recurrence": {
            "$ref": "#/components/schemas/Recurrence",
            "default": {
              "count": 1,
              "rule": "none"
            }
          },
          "schema_version": {
            "const": "9.8.0",
            "default": "9.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stale_after": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stale After"
          },
          "state": {
            "enum": ["draft", "planned", "committed", "in_progress", "done", "cancelled"],
            "title": "State",
            "type": "string"
          },
          "title": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "type": {
            "enum": [
              "course_launch",
              "assessment_window",
              "standard_update",
              "item_refresh",
              "review_capacity"
            ],
            "title": "Type",
            "type": "string"
          },
          "visibility": {
            "enum": ["team", "institution", "public"],
            "title": "Visibility",
            "type": "string"
          },
          "window": {
            "$ref": "#/components/schemas/LocalWindow"
          }
        },
        "required": ["event_id", "type", "title", "owner", "state", "window", "visibility"],
        "title": "CalendarEvent",
        "type": "object"
      },
      "CalendarView": {
        "additionalProperties": false,
        "description": "One arrangement of the calendar, for one audience.",
        "properties": {
          "audience": {
            "title": "Audience",
            "type": "string"
          },
          "by_type": {
            "additionalProperties": {
              "type": "integer"
            },
            "default": {},
            "title": "By Type",
            "type": "object"
          },
          "events": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EventOnView"
            },
            "title": "Events",
            "type": "array"
          },
          "from_date": {
            "format": "date",
            "title": "From Date",
            "type": "string"
          },
          "to_date": {
            "format": "date",
            "title": "To Date",
            "type": "string"
          },
          "total": {
            "default": 0,
            "title": "Total",
            "type": "integer"
          },
          "unresolvable": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Unresolvable",
            "type": "array"
          },
          "view": {
            "title": "View",
            "type": "string"
          }
        },
        "required": ["view", "from_date", "to_date", "audience"],
        "title": "CalendarView",
        "type": "object"
      },
      "CalibrationAttemptRevision": {
        "additionalProperties": false,
        "properties": {
          "administration_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Administration Revision Sha256",
            "type": "string"
          },
          "attempt_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Attempt Revision Sha256",
            "type": "string"
          },
          "base_eligible": {
            "title": "Base Eligible",
            "type": "boolean"
          },
          "coverage_tokens": {
            "items": {
              "$ref": "#/components/schemas/CalibrationCoverageToken"
            },
            "maxItems": 4,
            "minItems": 2,
            "title": "Coverage Tokens",
            "type": "array"
          },
          "exclusion_reasons": {
            "default": [],
            "items": {
              "enum": [
                "population_filter",
                "consent_unavailable",
                "duplicate_attempt",
                "invalid_response",
                "item_revision_mismatch",
                "outside_window",
                "quality_rule"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "title": "Exclusion Reasons",
            "type": "array"
          },
          "institution_token_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Institution Token Sha256",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "learner_token_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Token Sha256",
            "type": "string"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "response_state": {
            "enum": ["submitted", "omitted", "not_reached", "invalid"],
            "title": "Response State",
            "type": "string"
          },
          "score_category": {
            "enum": ["correct", "incorrect", "not_scored"],
            "title": "Score Category",
            "type": "string"
          },
          "weight": {
            "exclusiveMinimum": 0.0,
            "maximum": 20.0,
            "title": "Weight",
            "type": "number"
          }
        },
        "required": [
          "attempt_revision_sha256",
          "learner_token_sha256",
          "item_revision_sha256",
          "administration_revision_sha256",
          "institution_token_sha256",
          "occurred_at",
          "base_eligible",
          "response_state",
          "score_category",
          "weight",
          "coverage_tokens"
        ],
        "title": "CalibrationAttemptRevision",
        "type": "object"
      },
      "CalibrationBand": {
        "additionalProperties": false,
        "properties": {
          "band_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Band Id",
            "type": "string"
          },
          "disposition": {
            "enum": ["advisory_auto", "manual_review", "reject"],
            "title": "Disposition",
            "type": "string"
          },
          "lower_confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Lower Confidence Basis Points",
            "type": "integer"
          },
          "upper_confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Upper Confidence Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "band_id",
          "lower_confidence_basis_points",
          "upper_confidence_basis_points",
          "disposition"
        ],
        "title": "CalibrationBand",
        "type": "object"
      },
      "CalibrationCoverageSummary": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": ["administration", "institution", "delivery_mode", "locale"],
            "title": "Dimension",
            "type": "string"
          },
          "distinct_cell_count": {
            "minimum": 0.0,
            "title": "Distinct Cell Count",
            "type": "integer"
          },
          "minimum_released_cell_size": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Released Cell Size"
          },
          "released_cell_count": {
            "minimum": 0.0,
            "title": "Released Cell Count",
            "type": "integer"
          },
          "suppressed_cell_count": {
            "minimum": 0.0,
            "title": "Suppressed Cell Count",
            "type": "integer"
          }
        },
        "required": [
          "dimension",
          "distinct_cell_count",
          "released_cell_count",
          "suppressed_cell_count"
        ],
        "title": "CalibrationCoverageSummary",
        "type": "object"
      },
      "CalibrationCoverageToken": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": ["administration", "institution", "delivery_mode", "locale"],
            "title": "Dimension",
            "type": "string"
          },
          "value_token_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Value Token Sha256",
            "type": "string"
          }
        },
        "required": ["dimension", "value_token_sha256"],
        "title": "CalibrationCoverageToken",
        "type": "object"
      },
      "CalibrationEligibilityCheck": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "exact_revisions",
              "effective_sample",
              "response_distribution",
              "administration_diversity",
              "data_quality",
              "missingness",
              "standard_error_confidence",
              "convergence_fit",
              "freshness",
              "privacy_coverage"
            ],
            "title": "Category",
            "type": "string"
          },
          "check_id": {
            "pattern": "^calibration-eligibility-check:[a-z0-9-]{3,100}$",
            "title": "Check Id",
            "type": "string"
          },
          "criterion": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Criterion",
            "type": "string"
          },
          "evidence_paths": {
            "items": {
              "type": "string"
            },
            "maxItems": 30,
            "minItems": 1,
            "title": "Evidence Paths",
            "type": "array"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "observed": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Observed",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "fail", "insufficient", "conflict", "stale"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "check_id",
          "category",
          "status",
          "observed",
          "criterion",
          "evidence_paths",
          "message"
        ],
        "title": "CalibrationEligibilityCheck",
        "type": "object"
      },
      "CalibrationEligibilityProfile": {
        "additionalProperties": false,
        "properties": {
          "intended_use": {
            "enum": ["pilot", "operational", "research"],
            "title": "Intended Use",
            "type": "string"
          },
          "maximum_evidence_age_days": {
            "minimum": 1.0,
            "title": "Maximum Evidence Age Days",
            "type": "integer"
          },
          "maximum_invalid_rate": {
            "exclusiveMaximum": 1.0,
            "minimum": 0.0,
            "title": "Maximum Invalid Rate",
            "type": "number"
          },
          "maximum_missing_rate": {
            "exclusiveMaximum": 1.0,
            "minimum": 0.0,
            "title": "Maximum Missing Rate",
            "type": "number"
          },
          "maximum_weight_ratio": {
            "minimum": 1.0,
            "title": "Maximum Weight Ratio",
            "type": "number"
          },
          "minimum_administration_count": {
            "minimum": 1.0,
            "title": "Minimum Administration Count",
            "type": "integer"
          },
          "minimum_coverage_rate": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Minimum Coverage Rate",
            "type": "number"
          },
          "minimum_distinct_learners": {
            "minimum": 1.0,
            "title": "Minimum Distinct Learners",
            "type": "integer"
          },
          "minimum_effective_sample_size": {
            "exclusiveMinimum": 0.0,
            "title": "Minimum Effective Sample Size",
            "type": "number"
          },
          "minimum_included_attempts": {
            "minimum": 1.0,
            "title": "Minimum Included Attempts",
            "type": "integer"
          },
          "minimum_institution_count": {
            "minimum": 1.0,
            "title": "Minimum Institution Count",
            "type": "integer"
          },
          "minimum_privacy_cell_size": {
            "minimum": 3.0,
            "title": "Minimum Privacy Cell Size",
            "type": "integer"
          },
          "minimum_response_category_count": {
            "minimum": 1.0,
            "title": "Minimum Response Category Count",
            "type": "integer"
          },
          "minimum_response_category_rate": {
            "exclusiveMaximum": 0.5,
            "exclusiveMinimum": 0.0,
            "title": "Minimum Response Category Rate",
            "type": "number"
          },
          "model_family": {
            "enum": ["1PL", "2PL", "3PL"],
            "title": "Model Family",
            "type": "string"
          },
          "standard_error_limits": {
            "items": {
              "$ref": "#/components/schemas/CalibrationStandardErrorLimit"
            },
            "minItems": 2,
            "title": "Standard Error Limits",
            "type": "array"
          }
        },
        "required": [
          "model_family",
          "intended_use",
          "minimum_included_attempts",
          "minimum_effective_sample_size",
          "minimum_distinct_learners",
          "minimum_response_category_count",
          "minimum_response_category_rate",
          "minimum_administration_count",
          "minimum_institution_count",
          "minimum_coverage_rate",
          "maximum_missing_rate",
          "maximum_invalid_rate",
          "maximum_weight_ratio",
          "minimum_privacy_cell_size",
          "maximum_evidence_age_days",
          "standard_error_limits"
        ],
        "title": "CalibrationEligibilityProfile",
        "type": "object"
      },
      "CalibrationExclusionCount": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "minimum": 0.0,
            "title": "Count",
            "type": "integer"
          },
          "reason": {
            "enum": [
              "population_filter",
              "consent_unavailable",
              "duplicate_attempt",
              "invalid_response",
              "item_revision_mismatch",
              "outside_window",
              "quality_rule"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "count"],
        "title": "CalibrationExclusionCount",
        "type": "object"
      },
      "CalibrationPolicy": {
        "additionalProperties": false,
        "properties": {
          "bands": {
            "items": {
              "$ref": "#/components/schemas/CalibrationBand"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Bands",
            "type": "array"
          },
          "gold_set_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gold Set Id",
            "type": "string"
          },
          "gold_set_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gold Set Revision Id",
            "type": "string"
          },
          "maximum_expected_calibration_error_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Maximum Expected Calibration Error Basis Points",
            "type": "integer"
          },
          "minimum_accuracy_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Minimum Accuracy Basis Points",
            "type": "integer"
          },
          "minimum_samples": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Minimum Samples",
            "type": "integer"
          }
        },
        "required": [
          "gold_set_id",
          "gold_set_revision_id",
          "minimum_samples",
          "minimum_accuracy_basis_points",
          "maximum_expected_calibration_error_basis_points",
          "bands"
        ],
        "title": "CalibrationPolicy",
        "type": "object"
      },
      "CalibrationPromotionAssessment": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "assessment_id": {
            "pattern": "^calibration-promotion-assessment-[a-f0-9]{40}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Assessment Sha256",
            "type": "string"
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/CalibrationEligibilityCheck"
            },
            "maxItems": 10,
            "minItems": 10,
            "title": "Checks",
            "type": "array"
          },
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "eligible_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eligible Until"
          },
          "idempotency_key": {
            "maxLength": 180,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "input_id": {
            "pattern": "^calibration-promotion-input-[a-f0-9]{40}$",
            "title": "Input Id",
            "type": "string"
          },
          "intended_use": {
            "enum": ["pilot", "operational", "research"],
            "title": "Intended Use",
            "type": "string"
          },
          "irt_verdict_id": {
            "title": "Irt Verdict Id",
            "type": "string"
          },
          "irt_verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Irt Verdict Sha256",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_revision": {
            "minimum": 1.0,
            "title": "Item Revision",
            "type": "integer"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "model_family": {
            "enum": ["1PL", "2PL", "3PL"],
            "title": "Model Family",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.calibration-promotion-eligibility",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "promotion_allowed": {
            "title": "Promotion Allowed",
            "type": "boolean"
          },
          "promotion_applied": {
            "const": false,
            "default": false,
            "title": "Promotion Applied",
            "type": "boolean"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "route": {
            "enum": [
              "calibration_ratification",
              "collect_field_test_data",
              "psychometric_manual_review"
            ],
            "title": "Route",
            "type": "string"
          },
          "sample": {
            "$ref": "#/components/schemas/CalibrationSampleSummary"
          },
          "schema_version": {
            "const": "5.11.0",
            "default": "5.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["eligible_for_ratification", "field_test", "manual_review"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "input_id",
          "tenant_id",
          "item_id",
          "item_revision",
          "item_revision_sha256",
          "context_revision_sha256",
          "irt_verdict_id",
          "irt_verdict_sha256",
          "model_family",
          "intended_use",
          "policy_id",
          "policy_version",
          "policy_sha256",
          "sample",
          "checks",
          "status",
          "route",
          "promotion_allowed",
          "actor_id",
          "actor_role",
          "reason",
          "idempotency_key",
          "request_sha256",
          "assessment_sha256",
          "created_at",
          "eligible_until"
        ],
        "title": "CalibrationPromotionAssessment",
        "type": "object"
      },
      "CalibrationPromotionCatalog": {
        "additionalProperties": false,
        "properties": {
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/CalibrationPromotionSummary"
            },
            "maxItems": 1000,
            "title": "Assessments",
            "type": "array"
          },
          "schema_version": {
            "const": "5.11.0",
            "default": "5.11.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["assessments"],
        "title": "CalibrationPromotionCatalog",
        "type": "object"
      },
      "CalibrationPromotionEvidence": {
        "additionalProperties": false,
        "properties": {
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "current_state": {
            "enum": ["field_test", "calibrating", "manual_review"],
            "title": "Current State",
            "type": "string"
          },
          "irt_verdict_id": {
            "pattern": "^irt-diagnostic-verdict-[a-f0-9]{40}$",
            "title": "Irt Verdict Id",
            "type": "string"
          },
          "irt_verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Irt Verdict Sha256",
            "type": "string"
          },
          "sample": {
            "$ref": "#/components/schemas/CalibrationSampleEvidence"
          },
          "statistics": {
            "items": {
              "$ref": "#/components/schemas/CalibrationStatisticUncertainty"
            },
            "maxItems": 3,
            "title": "Statistics",
            "type": "array"
          }
        },
        "required": [
          "irt_verdict_id",
          "irt_verdict_sha256",
          "context_revision_sha256",
          "current_state",
          "sample",
          "statistics"
        ],
        "title": "CalibrationPromotionEvidence",
        "type": "object"
      },
      "CalibrationPromotionPolicy": {
        "additionalProperties": false,
        "properties": {
          "automatic_promotion": {
            "const": false,
            "default": false,
            "title": "Automatic Promotion",
            "type": "boolean"
          },
          "eligible_route": {
            "const": "calibration_ratification",
            "default": "calibration_ratification",
            "title": "Eligible Route",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "low_evidence_route": {
            "const": "collect_field_test_data",
            "default": "collect_field_test_data",
            "title": "Low Evidence Route",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.calibration-promotion-eligibility",
            "default": "metis.calibration-promotion-eligibility",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "profiles": {
            "items": {
              "$ref": "#/components/schemas/CalibrationEligibilityProfile"
            },
            "maxItems": 9,
            "minItems": 9,
            "title": "Profiles",
            "type": "array"
          },
          "schema_version": {
            "const": "5.11.0",
            "default": "5.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sources": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sources",
            "type": "array"
          },
          "stale_or_conflicting_route": {
            "const": "psychometric_manual_review",
            "default": "psychometric_manual_review",
            "title": "Stale Or Conflicting Route",
            "type": "string"
          }
        },
        "required": ["profiles", "sources", "limitations", "policy_sha256"],
        "title": "CalibrationPromotionPolicy",
        "type": "object"
      },
      "CalibrationPromotionReceipt": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "pattern": "^calibration-promotion-assessment-[a-f0-9]{40}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Assessment Sha256",
            "type": "string"
          },
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "effective_sample_size": {
            "exclusiveMinimum": 0.0,
            "title": "Effective Sample Size",
            "type": "number"
          },
          "eligible_at": {
            "format": "date-time",
            "title": "Eligible At",
            "type": "string"
          },
          "eligible_until": {
            "format": "date-time",
            "title": "Eligible Until",
            "type": "string"
          },
          "included_attempt_count": {
            "minimum": 1.0,
            "title": "Included Attempt Count",
            "type": "integer"
          },
          "irt_verdict_id": {
            "title": "Irt Verdict Id",
            "type": "string"
          },
          "irt_verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Irt Verdict Sha256",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.calibration-promotion-eligibility",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "promotion_applied": {
            "const": false,
            "default": false,
            "title": "Promotion Applied",
            "type": "boolean"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "route": {
            "const": "calibration_ratification",
            "default": "calibration_ratification",
            "title": "Route",
            "type": "string"
          },
          "sample_id": {
            "title": "Sample Id",
            "type": "string"
          },
          "sample_revision": {
            "minimum": 1.0,
            "title": "Sample Revision",
            "type": "integer"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.11.0",
            "default": "5.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "const": "eligible_for_ratification",
            "default": "eligible_for_ratification",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "assessment_sha256",
          "item_revision_sha256",
          "context_revision_sha256",
          "irt_verdict_id",
          "irt_verdict_sha256",
          "policy_id",
          "policy_version",
          "policy_sha256",
          "sample_id",
          "sample_revision",
          "sample_sha256",
          "included_attempt_count",
          "effective_sample_size",
          "eligible_at",
          "eligible_until",
          "receipt_sha256"
        ],
        "title": "CalibrationPromotionReceipt",
        "type": "object"
      },
      "CalibrationPromotionRunRequest": {
        "additionalProperties": false,
        "properties": {
          "evidence": {
            "$ref": "#/components/schemas/CalibrationPromotionEvidence"
          },
          "expected_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Policy Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 180,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.11.0",
            "default": "5.11.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "reason", "expected_policy_sha256", "evidence"],
        "title": "CalibrationPromotionRunRequest",
        "type": "object"
      },
      "CalibrationPromotionSummary": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "effective_sample_size": {
            "minimum": 0.0,
            "title": "Effective Sample Size",
            "type": "number"
          },
          "included_attempt_count": {
            "minimum": 0.0,
            "title": "Included Attempt Count",
            "type": "integer"
          },
          "intended_use": {
            "enum": ["pilot", "operational", "research"],
            "title": "Intended Use",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_revision": {
            "minimum": 1.0,
            "title": "Item Revision",
            "type": "integer"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "model_family": {
            "enum": ["1PL", "2PL", "3PL"],
            "title": "Model Family",
            "type": "string"
          },
          "route": {
            "enum": [
              "calibration_ratification",
              "collect_field_test_data",
              "psychometric_manual_review"
            ],
            "title": "Route",
            "type": "string"
          },
          "schema_version": {
            "const": "5.11.0",
            "default": "5.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["eligible_for_ratification", "field_test", "manual_review"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "item_id",
          "item_revision",
          "item_revision_sha256",
          "model_family",
          "intended_use",
          "status",
          "route",
          "included_attempt_count",
          "effective_sample_size",
          "created_at"
        ],
        "title": "CalibrationPromotionSummary",
        "type": "object"
      },
      "CalibrationPromotionWorkspace": {
        "additionalProperties": false,
        "properties": {
          "assessment": {
            "$ref": "#/components/schemas/CalibrationPromotionAssessment"
          },
          "receipt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CalibrationPromotionReceipt"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "5.11.0",
            "default": "5.11.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["assessment", "receipt"],
        "title": "CalibrationPromotionWorkspace",
        "type": "object"
      },
      "CalibrationReport": {
        "additionalProperties": false,
        "properties": {
          "calibrated_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Calibrated Evaluator Ids",
            "type": "array"
          },
          "evaluators": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorCalibration"
            },
            "maxItems": 50,
            "title": "Evaluators",
            "type": "array"
          },
          "gold_set_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Gold Set Revision Sha256",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/CalibrationPolicy"
          },
          "uncalibrated_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Uncalibrated Evaluator Ids",
            "type": "array"
          }
        },
        "required": [
          "policy",
          "gold_set_revision_sha256",
          "evaluators",
          "calibrated_evaluator_ids",
          "uncalibrated_evaluator_ids"
        ],
        "title": "CalibrationReport",
        "type": "object"
      },
      "CalibrationSampleEvidence": {
        "additionalProperties": false,
        "properties": {
          "attempts": {
            "items": {
              "$ref": "#/components/schemas/CalibrationAttemptRevision"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Attempts",
            "type": "array"
          },
          "exclusion_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exclusion Policy Sha256",
            "type": "string"
          },
          "inclusion_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Inclusion Policy Sha256",
            "type": "string"
          },
          "population_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Population Id",
            "type": "string"
          },
          "population_revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Population Revision",
            "type": "string"
          },
          "population_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Population Sha256",
            "type": "string"
          },
          "sample_id": {
            "pattern": "^calibration-sample:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Sample Id",
            "type": "string"
          },
          "sample_revision": {
            "minimum": 1.0,
            "title": "Sample Revision",
            "type": "integer"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "window_end": {
            "format": "date-time",
            "title": "Window End",
            "type": "string"
          },
          "window_start": {
            "format": "date-time",
            "title": "Window Start",
            "type": "string"
          }
        },
        "required": [
          "sample_id",
          "sample_revision",
          "sample_sha256",
          "population_id",
          "population_revision",
          "population_sha256",
          "inclusion_policy_sha256",
          "exclusion_policy_sha256",
          "window_start",
          "window_end",
          "attempts"
        ],
        "title": "CalibrationSampleEvidence",
        "type": "object"
      },
      "CalibrationSampleSummary": {
        "additionalProperties": false,
        "properties": {
          "administration_count": {
            "minimum": 0.0,
            "title": "Administration Count",
            "type": "integer"
          },
          "base_eligible_count": {
            "minimum": 0.0,
            "title": "Base Eligible Count",
            "type": "integer"
          },
          "correct_count": {
            "minimum": 0.0,
            "title": "Correct Count",
            "type": "integer"
          },
          "coverage": {
            "items": {
              "$ref": "#/components/schemas/CalibrationCoverageSummary"
            },
            "title": "Coverage",
            "type": "array"
          },
          "coverage_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Coverage Rate",
            "type": "number"
          },
          "distinct_learner_count": {
            "minimum": 0.0,
            "title": "Distinct Learner Count",
            "type": "integer"
          },
          "effective_sample_size": {
            "minimum": 0.0,
            "title": "Effective Sample Size",
            "type": "number"
          },
          "excluded_attempt_count": {
            "minimum": 0.0,
            "title": "Excluded Attempt Count",
            "type": "integer"
          },
          "exclusion_counts": {
            "items": {
              "$ref": "#/components/schemas/CalibrationExclusionCount"
            },
            "title": "Exclusion Counts",
            "type": "array"
          },
          "included_attempt_count": {
            "minimum": 0.0,
            "title": "Included Attempt Count",
            "type": "integer"
          },
          "incorrect_count": {
            "minimum": 0.0,
            "title": "Incorrect Count",
            "type": "integer"
          },
          "institution_count": {
            "minimum": 0.0,
            "title": "Institution Count",
            "type": "integer"
          },
          "invalid_count": {
            "minimum": 0.0,
            "title": "Invalid Count",
            "type": "integer"
          },
          "invalid_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Invalid Rate",
            "type": "number"
          },
          "maximum_weight": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Weight"
          },
          "minimum_weight": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Weight"
          },
          "missing_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Missing Rate",
            "type": "number"
          },
          "not_reached_count": {
            "minimum": 0.0,
            "title": "Not Reached Count",
            "type": "integer"
          },
          "omitted_count": {
            "minimum": 0.0,
            "title": "Omitted Count",
            "type": "integer"
          },
          "sample_id": {
            "title": "Sample Id",
            "type": "string"
          },
          "sample_revision": {
            "minimum": 1.0,
            "title": "Sample Revision",
            "type": "integer"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "sum_of_squared_weights": {
            "minimum": 0.0,
            "title": "Sum Of Squared Weights",
            "type": "number"
          },
          "sum_of_weights": {
            "minimum": 0.0,
            "title": "Sum Of Weights",
            "type": "number"
          },
          "total_attempt_count": {
            "minimum": 0.0,
            "title": "Total Attempt Count",
            "type": "integer"
          }
        },
        "required": [
          "sample_id",
          "sample_revision",
          "sample_sha256",
          "total_attempt_count",
          "base_eligible_count",
          "included_attempt_count",
          "excluded_attempt_count",
          "correct_count",
          "incorrect_count",
          "omitted_count",
          "not_reached_count",
          "invalid_count",
          "distinct_learner_count",
          "administration_count",
          "institution_count",
          "sum_of_weights",
          "sum_of_squared_weights",
          "effective_sample_size",
          "coverage_rate",
          "missing_rate",
          "invalid_rate",
          "exclusion_counts",
          "coverage"
        ],
        "title": "CalibrationSampleSummary",
        "type": "object"
      },
      "CalibrationStandardErrorLimit": {
        "additionalProperties": false,
        "properties": {
          "evidence_kind": {
            "enum": ["parameter", "statistic"],
            "title": "Evidence Kind",
            "type": "string"
          },
          "maximum_interval_width": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Interval Width",
            "type": "number"
          },
          "maximum_standard_error": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Standard Error",
            "type": "number"
          },
          "minimum_confidence_level": {
            "exclusiveMaximum": 1.0,
            "minimum": 0.9,
            "title": "Minimum Confidence Level",
            "type": "number"
          },
          "name": {
            "anyOf": [
              {
                "enum": ["difficulty", "discrimination", "guessing", "scaling_constant"],
                "type": "string"
              },
              {
                "enum": ["facility", "point_biserial", "score_information"],
                "type": "string"
              }
            ],
            "title": "Name"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          }
        },
        "required": [
          "evidence_kind",
          "name",
          "required",
          "maximum_standard_error",
          "minimum_confidence_level",
          "maximum_interval_width"
        ],
        "title": "CalibrationStandardErrorLimit",
        "type": "object"
      },
      "CalibrationStatisticUncertainty": {
        "additionalProperties": false,
        "properties": {
          "interval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IrtUncertaintyInterval"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "standard_error": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Error"
          },
          "statistic": {
            "enum": ["facility", "point_biserial", "score_information"],
            "title": "Statistic",
            "type": "string"
          },
          "status": {
            "enum": ["reported", "not_reported", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["statistic", "status", "value", "interval"],
        "title": "CalibrationStatisticUncertainty",
        "type": "object"
      },
      "CaliperDeliveryAcknowledgement": {
        "description": "M10.7.d: a consumer saying how far it has got.\n\nExport is a query by cursor, and without this a consumer that asks and\nreceives an empty page CANNOT TELL A GAP FROM BEING CAUGHT UP. Both look\nidentical from the outside: no events came back. One means there is\nnothing new; the other means something went missing between here and\nthere.",
        "properties": {
          "consumer": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Consumer",
            "type": "string"
          },
          "through_sequence": {
            "minimum": 0.0,
            "title": "Through Sequence",
            "type": "integer"
          }
        },
        "required": ["consumer", "through_sequence"],
        "title": "CaliperDeliveryAcknowledgement",
        "type": "object"
      },
      "CaliperDeliveryState": {
        "description": "What the estate knows about one consumer's progress.",
        "properties": {
          "acknowledged_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acknowledged At"
          },
          "acknowledged_through": {
            "minimum": 0.0,
            "title": "Acknowledged Through",
            "type": "integer"
          },
          "consumer": {
            "title": "Consumer",
            "type": "string"
          },
          "highest_sequence": {
            "minimum": 0.0,
            "title": "Highest Sequence",
            "type": "integer"
          },
          "outstanding": {
            "minimum": 0.0,
            "title": "Outstanding",
            "type": "integer"
          }
        },
        "required": ["consumer", "acknowledged_through", "outstanding", "highest_sequence"],
        "title": "CaliperDeliveryState",
        "type": "object"
      },
      "CaliperEntity": {
        "properties": {
          "extensions": {
            "additionalProperties": true,
            "title": "Extensions",
            "type": "object"
          },
          "id": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["id", "type"],
        "title": "CaliperEntity",
        "type": "object"
      },
      "CaliperEnvelopeResponse": {
        "properties": {
          "data": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Data",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "send_time": {
            "format": "date-time",
            "title": "Send Time",
            "type": "string"
          },
          "sensor": {
            "title": "Sensor",
            "type": "string"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["sensor", "send_time", "data", "total"],
        "title": "CaliperEnvelopeResponse",
        "type": "object"
      },
      "CaliperEventCreateRequest": {
        "properties": {
          "action": {
            "enum": [
              "NavigatedTo",
              "Started",
              "Submitted",
              "Completed",
              "Graded",
              "Viewed",
              "Used",
              "LoggedIn",
              "LoggedOut"
            ],
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "$ref": "#/components/schemas/CaliperEntity"
          },
          "event_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Id"
          },
          "event_time": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event Time"
          },
          "extensions": {
            "additionalProperties": true,
            "title": "Extensions",
            "type": "object"
          },
          "generated": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CaliperEntity"
              },
              {
                "type": "null"
              }
            ]
          },
          "group": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CaliperEntity"
              },
              {
                "type": "null"
              }
            ]
          },
          "membership": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CaliperEntity"
              },
              {
                "type": "null"
              }
            ]
          },
          "object": {
            "$ref": "#/components/schemas/CaliperEntity"
          },
          "type": {
            "enum": [
              "NavigationEvent",
              "AssessmentEvent",
              "AssignableEvent",
              "GradeEvent",
              "SessionEvent",
              "ToolUseEvent",
              "ViewEvent"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["type", "action", "actor", "object"],
        "title": "CaliperEventCreateRequest",
        "type": "object"
      },
      "CaliperEventListResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/CaliperEventResponse"
            },
            "title": "Events",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["events", "total"],
        "title": "CaliperEventListResponse",
        "type": "object"
      },
      "CaliperEventResponse": {
        "properties": {
          "action": {
            "enum": [
              "NavigatedTo",
              "Started",
              "Submitted",
              "Completed",
              "Graded",
              "Viewed",
              "Used",
              "LoggedIn",
              "LoggedOut"
            ],
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "$ref": "#/components/schemas/CaliperEntity"
          },
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "event_time": {
            "format": "date-time",
            "title": "Event Time",
            "type": "string"
          },
          "extensions": {
            "additionalProperties": true,
            "title": "Extensions",
            "type": "object"
          },
          "fields_not_carried": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Fields Not Carried",
            "type": "array"
          },
          "generated": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CaliperEntity"
              },
              {
                "type": "null"
              }
            ]
          },
          "group": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CaliperEntity"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "membership": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CaliperEntity"
              },
              {
                "type": "null"
              }
            ]
          },
          "object": {
            "$ref": "#/components/schemas/CaliperEntity"
          },
          "payload": {
            "additionalProperties": true,
            "title": "Payload",
            "type": "object"
          },
          "profile": {
            "title": "Profile",
            "type": "string"
          },
          "sensor": {
            "title": "Sensor",
            "type": "string"
          },
          "sequence": {
            "title": "Sequence",
            "type": "integer"
          },
          "stored_at": {
            "format": "date-time",
            "title": "Stored At",
            "type": "string"
          },
          "type": {
            "enum": [
              "NavigationEvent",
              "AssessmentEvent",
              "AssignableEvent",
              "GradeEvent",
              "SessionEvent",
              "ToolUseEvent",
              "ViewEvent"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "sequence",
          "type",
          "action",
          "profile",
          "actor",
          "object",
          "event_time",
          "stored_at",
          "sensor",
          "extensions",
          "payload"
        ],
        "title": "CaliperEventResponse",
        "type": "object"
      },
      "CancelCommand": {
        "additionalProperties": false,
        "description": "End the run. Downstream work stops and late results are fenced out.",
        "properties": {
          "cancel_downstream": {
            "const": true,
            "default": true,
            "title": "Cancel Downstream",
            "type": "boolean"
          },
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "issued_by_role": {
            "enum": ["run_owner", "course_owner", "operator", "budget_holder"],
            "title": "Issued By Role",
            "type": "string"
          },
          "kind": {
            "const": "cancel",
            "default": "cancel",
            "title": "Kind",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "retains_partial_evidence": {
            "const": true,
            "default": true,
            "title": "Retains Partial Evidence",
            "type": "boolean"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "command_id",
          "idempotency_key",
          "run_id",
          "expected_version",
          "issued_by",
          "issued_by_role",
          "reason",
          "issued_at"
        ],
        "title": "CancelCommand",
        "type": "object"
      },
      "CandidateCost": {
        "additionalProperties": false,
        "properties": {
          "cost_cents": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Cost Cents",
            "type": "integer"
          },
          "input_tokens": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "latency_millis": {
            "maximum": 3600000.0,
            "minimum": 0.0,
            "title": "Latency Millis",
            "type": "integer"
          },
          "output_tokens": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          }
        },
        "required": ["input_tokens", "output_tokens", "cost_cents", "latency_millis"],
        "title": "CandidateCost",
        "type": "object"
      },
      "CandidateDetail": {
        "additionalProperties": false,
        "properties": {
          "candidate": {
            "$ref": "#/components/schemas/PublicationCandidate"
          },
          "ledger": {
            "$ref": "#/components/schemas/ApprovalLedger"
          },
          "stale_bindings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Stale Bindings",
            "type": "array"
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicationStatusView"
              },
              {
                "type": "null"
              }
            ]
          },
          "versions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CandidateSummary"
            },
            "title": "Versions",
            "type": "array"
          }
        },
        "required": ["candidate", "ledger"],
        "title": "CandidateDetail",
        "type": "object"
      },
      "CandidateEligibilityView": {
        "additionalProperties": false,
        "description": "One candidate, as the queue and the detail page show them.",
        "properties": {
          "approvals": {
            "default": 0,
            "title": "Approvals",
            "type": "integer"
          },
          "blocking": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Blocking",
            "type": "array"
          },
          "candidate_id": {
            "title": "Candidate Id",
            "type": "string"
          },
          "criteria": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CriterionStateView"
            },
            "title": "Criteria",
            "type": "array"
          },
          "current_reviews": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Current Reviews",
            "type": "array"
          },
          "discounted_reviews": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Discounted Reviews",
            "type": "array"
          },
          "eligible": {
            "default": false,
            "title": "Eligible",
            "type": "boolean"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "quorum": {
            "default": 1,
            "title": "Quorum",
            "type": "integer"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "title": "Requested By",
            "type": "string"
          },
          "requested_by_role": {
            "title": "Requested By Role",
            "type": "string"
          },
          "stale_reviews": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Stale Reviews",
            "type": "array"
          },
          "subject": {
            "$ref": "#/components/schemas/CandidateSubject"
          },
          "template_id": {
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "title": "Template Version",
            "type": "integer"
          }
        },
        "required": [
          "candidate_id",
          "subject",
          "template_id",
          "template_version",
          "requested_by",
          "requested_by_role",
          "requested_at",
          "evidence_sha256"
        ],
        "title": "CandidateEligibilityView",
        "type": "object"
      },
      "CandidateEvidence": {
        "additionalProperties": false,
        "description": "One piece of evidence, its clock, and who asserted it.",
        "properties": {
          "asserted_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asserted By",
            "type": "string"
          },
          "asserted_by_role": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Asserted By Role",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": ["assessment", "artifact", "observation", "attendance", "external_credential"],
            "title": "Kind",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "outcome": {
            "enum": ["met", "not_met"],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": [
          "evidence_id",
          "criterion_id",
          "kind",
          "outcome",
          "locator",
          "content_sha256",
          "observed_at",
          "asserted_by",
          "asserted_by_role"
        ],
        "title": "CandidateEvidence",
        "type": "object"
      },
      "CandidateExclusion": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "objective_coverage",
              "difficulty_mastery_band",
              "exposure_compromise",
              "locale",
              "pnp_support",
              "delivery",
              "integrity_state",
              "revision_prerequisites",
              "item_state"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "reason": {
            "enum": [
              "pool.excluded.revision-evidence-stale",
              "pool.excluded.revision-evidence-blocked",
              "pool.excluded.exposure-evidence-not-current",
              "pool.excluded.platform-incompatible",
              "pool.excluded.mandatory-gate-unresolved",
              "pool.excluded.mandatory-gate-blocked",
              "pool.excluded.not-approved",
              "pool.excluded.unavailable",
              "pool.excluded.quarantined",
              "pool.excluded.compromised",
              "pool.excluded.overexposed",
              "pool.excluded.seen-too-recently",
              "pool.excluded.objective-not-covered",
              "pool.excluded.objective-forbidden",
              "pool.excluded.outside-mastery-band",
              "pool.excluded.locale-unavailable",
              "pool.excluded.pnp-support-missing",
              "pool.excluded.pnp-feature-forbidden",
              "pool.excluded.delivery-mode-incompatible",
              "pool.excluded.integrity-mode-incompatible"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["dimension", "reason", "detail"],
        "title": "CandidateExclusion",
        "type": "object"
      },
      "CandidateGateEvidence": {
        "additionalProperties": false,
        "properties": {
          "computed_against_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Computed Against Item Revision Sha256",
            "type": "string"
          },
          "gate_id": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Gate Id",
            "type": "string"
          },
          "state": {
            "enum": ["passed", "blocked", "stale", "unknown"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["gate_id", "state", "computed_against_item_revision_sha256"],
        "title": "CandidateGateEvidence",
        "type": "object"
      },
      "CandidateLineage": {
        "additionalProperties": false,
        "properties": {
          "cost": {
            "$ref": "#/components/schemas/CandidateCost"
          },
          "generator": {
            "$ref": "#/components/schemas/GeneratorWitness"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source Ids",
            "type": "array"
          },
          "source_revision_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source Revision Sha256S",
            "type": "array"
          }
        },
        "required": ["generator", "prompt_sha256", "source_ids", "source_revision_sha256s", "cost"],
        "title": "CandidateLineage",
        "type": "object"
      },
      "CandidateOutcome": {
        "additionalProperties": false,
        "properties": {
          "admitted": {
            "title": "Admitted",
            "type": "boolean"
          },
          "applied_constraint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Applied Constraint Sha256",
            "type": "string"
          },
          "applied_overlay_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Applied Overlay Ids",
            "type": "array"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "overlay_exclusions": {
            "items": {
              "$ref": "#/components/schemas/ExcludedOverlay"
            },
            "maxItems": 64,
            "title": "Overlay Exclusions",
            "type": "array"
          },
          "refusal_codes": {
            "items": {
              "enum": [
                "sequencing.refused.safety-gate-not-cleared",
                "sequencing.refused.autonomous-advance-steps-exceeded",
                "sequencing.refused.signal-retention-exceeds-ceiling",
                "sequencing.refused.signal-kind-not-permitted",
                "sequencing.refused.learner-support-not-provided",
                "sequencing.refused.delivery-mode-not-permitted",
                "sequencing.refused.integrity-check-not-cleared",
                "sequencing.refused.item-exposure-above-ceiling",
                "sequencing.refused.licence-class-not-permitted",
                "sequencing.refused.prerequisite-mastery-below-floor",
                "sequencing.refused.attempts-exhausted",
                "sequencing.refused.human-review-not-recorded",
                "sequencing.refused.mastery-below-floor",
                "sequencing.refused.mastery-evidence-kind-missing",
                "sequencing.refused.session-item-ceiling-reached",
                "sequencing.refused.repeat-spacing-not-elapsed",
                "sequencing.refused.difficulty-above-ceiling",
                "sequencing.refused.difficulty-band-not-permitted"
              ],
              "type": "string"
            },
            "maxItems": 32,
            "title": "Refusal Codes",
            "type": "array"
          }
        },
        "required": [
          "candidate_id",
          "admitted",
          "refusal_codes",
          "applied_overlay_ids",
          "overlay_exclusions",
          "applied_constraint_sha256"
        ],
        "title": "CandidateOutcome",
        "type": "object"
      },
      "CandidateRequest": {
        "description": "Assemble a candidate from nine dimension readings.",
        "properties": {
          "candidate_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/DimensionVersion"
            },
            "minItems": 9,
            "title": "Dimensions",
            "type": "array"
          },
          "subject_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Revision",
            "type": "string"
          }
        },
        "required": ["candidate_id", "subject_id", "subject_revision", "dimensions"],
        "title": "CandidateRequest",
        "type": "object"
      },
      "CandidateRevisionEvidence": {
        "additionalProperties": false,
        "description": "A verdict, and the exact item revision the verdict was computed against.",
        "properties": {
          "computed_against_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Computed Against Item Revision Sha256",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "prerequisite": {
            "enum": ["estimate", "learning_link", "accessibility", "rights", "calibration"],
            "title": "Prerequisite",
            "type": "string"
          },
          "state": {
            "enum": ["passed", "blocked", "stale", "unknown"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "prerequisite",
          "state",
          "computed_against_item_revision_sha256",
          "evidence_sha256",
          "observed_at"
        ],
        "title": "CandidateRevisionEvidence",
        "type": "object"
      },
      "CandidateScore": {
        "additionalProperties": false,
        "properties": {
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "contributions": {
            "items": {
              "$ref": "#/components/schemas/VerifierContribution"
            },
            "maxItems": 20,
            "title": "Contributions",
            "type": "array"
          },
          "eligible_for_selection": {
            "title": "Eligible For Selection",
            "type": "boolean"
          },
          "ordinal": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "rank": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Rank",
            "type": "integer"
          },
          "rejection_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Rejection Codes",
            "type": "array"
          },
          "total_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Total Basis Points",
            "type": "integer"
          },
          "uncertainty_high_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Uncertainty High Basis Points",
            "type": "integer"
          },
          "uncertainty_low_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Uncertainty Low Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "candidate_id",
          "ordinal",
          "rank",
          "eligible_for_selection",
          "total_basis_points",
          "uncertainty_low_basis_points",
          "uncertainty_high_basis_points",
          "contributions",
          "rejection_codes"
        ],
        "title": "CandidateScore",
        "type": "object"
      },
      "CandidateSetSpec": {
        "additionalProperties": false,
        "properties": {
          "budget_cents": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Budget Cents",
            "type": "integer"
          },
          "deadline_millis": {
            "maximum": 3600000.0,
            "minimum": 1000.0,
            "title": "Deadline Millis",
            "type": "integer"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "diversity_rule": {
            "const": "distinct_output_sha256",
            "default": "distinct_output_sha256",
            "title": "Diversity Rule",
            "type": "string"
          },
          "maximum_output_tokens": {
            "maximum": 32000.0,
            "minimum": 1.0,
            "title": "Maximum Output Tokens",
            "type": "integer"
          },
          "minimum_unique_outputs": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Minimum Unique Outputs",
            "type": "integer"
          },
          "requested_count": {
            "maximum": 64.0,
            "minimum": 2.0,
            "title": "Requested Count",
            "type": "integer"
          }
        },
        "required": [
          "requested_count",
          "minimum_unique_outputs",
          "deterministic_seed",
          "budget_cents",
          "deadline_millis",
          "maximum_output_tokens"
        ],
        "title": "CandidateSetSpec",
        "type": "object"
      },
      "CandidateSubject": {
        "additionalProperties": false,
        "description": "Who the candidate is, as the queue is allowed to know them.\n\nThere is no name and no email here, and there is no route that adds one.\nA reviewer deciding whether the evidence meets the criteria does not need\nto know whose it is, and a queue that shows the name makes the decision\nabout the person.",
        "properties": {
          "cohort": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cohort"
          },
          "pseudonym": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Pseudonym",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["subject_id", "pseudonym"],
        "title": "CandidateSubject",
        "type": "object"
      },
      "CandidateSummary": {
        "additionalProperties": false,
        "properties": {
          "assembled_by": {
            "title": "Assembled By",
            "type": "string"
          },
          "candidate_id": {
            "title": "Candidate Id",
            "type": "string"
          },
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "digest": {
            "title": "Digest",
            "type": "string"
          },
          "observation_spread_seconds": {
            "title": "Observation Spread Seconds",
            "type": "number"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision": {
            "title": "Subject Revision",
            "type": "string"
          },
          "unreadable": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unreadable",
            "type": "array"
          }
        },
        "required": [
          "candidate_id",
          "subject_id",
          "subject_revision",
          "digest",
          "assembled_by",
          "complete",
          "observation_spread_seconds"
        ],
        "title": "CandidateSummary",
        "type": "object"
      },
      "CandidateVerdict": {
        "additionalProperties": false,
        "properties": {
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "dimensions_evaluated": {
            "items": {
              "enum": [
                "objective_coverage",
                "difficulty_mastery_band",
                "exposure_compromise",
                "locale",
                "pnp_support",
                "delivery",
                "integrity_state"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Dimensions Evaluated",
            "type": "array"
          },
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "exclusions": {
            "items": {
              "$ref": "#/components/schemas/CandidateExclusion"
            },
            "maxItems": 32,
            "title": "Exclusions",
            "type": "array"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "sort_key": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Sort Key",
            "type": "string"
          }
        },
        "required": [
          "candidate_id",
          "item_id",
          "eligible",
          "exclusions",
          "dimensions_evaluated",
          "sort_key"
        ],
        "title": "CandidateVerdict",
        "type": "object"
      },
      "CandidateVerifierResult": {
        "additionalProperties": false,
        "properties": {
          "attempt": {
            "const": 1,
            "default": 1,
            "title": "Attempt",
            "type": "integer"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "elapsed_millis": {
            "maximum": 3600000.0,
            "minimum": 0.0,
            "title": "Elapsed Millis",
            "type": "integer"
          },
          "evidence_ref": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail", "unavailable", "error", "abstained"],
            "title": "Outcome",
            "type": "string"
          },
          "score_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Basis Points"
          },
          "uncertainty_high_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Uncertainty High Basis Points"
          },
          "uncertainty_low_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Uncertainty Low Basis Points"
          },
          "verifier_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verifier Id",
            "type": "string"
          }
        },
        "required": [
          "candidate_id",
          "verifier_id",
          "outcome",
          "detail",
          "evidence_ref",
          "elapsed_millis"
        ],
        "title": "CandidateVerifierResult",
        "type": "object"
      },
      "CanonicalStandardRecord": {
        "additionalProperties": false,
        "description": "One authorized, versioned record in the canonical standards registry.",
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "framework_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Framework Id",
            "type": "string"
          },
          "framework_provider": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Framework Provider",
            "type": "string"
          },
          "framework_title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Framework Title",
            "type": "string"
          },
          "framework_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Framework Version",
            "type": "string"
          },
          "full_text_use_authorized": {
            "title": "Full Text Use Authorized",
            "type": "boolean"
          },
          "lifecycle_state": {
            "enum": ["current", "superseded", "archived"],
            "title": "Lifecycle State",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "record_id": {
            "pattern": "^stdrec_[a-f0-9]{40}$",
            "title": "Record Id",
            "type": "string"
          },
          "registry_id": {
            "const": "metis-canonical-standards",
            "default": "metis-canonical-standards",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Registry Version",
            "type": "string"
          },
          "retrieved_at": {
            "format": "date-time",
            "title": "Retrieved At",
            "type": "string"
          },
          "rights_basis": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rights Basis",
            "type": "string"
          },
          "rights_status": {
            "enum": ["permitted", "public_domain", "restricted", "unknown"],
            "title": "Rights Status",
            "type": "string"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_locator": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Source Locator",
            "type": "string"
          },
          "source_url": {
            "maxLength": 2048,
            "pattern": "^https://",
            "title": "Source Url",
            "type": "string"
          },
          "standard_code": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Standard Code",
            "type": "string"
          },
          "standard_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Standard Text",
            "type": "string"
          },
          "standard_title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Standard Title",
            "type": "string"
          },
          "text_kind": {
            "enum": ["exact_standard_text", "metadata_abstract"],
            "title": "Text Kind",
            "type": "string"
          }
        },
        "required": [
          "record_id",
          "registry_version",
          "framework_id",
          "framework_title",
          "framework_provider",
          "framework_version",
          "standard_code",
          "standard_title",
          "standard_text",
          "text_kind",
          "content_sha256",
          "source_url",
          "source_locator",
          "rights_status",
          "rights_basis",
          "full_text_use_authorized",
          "lifecycle_state",
          "retrieved_at",
          "limitations"
        ],
        "title": "CanonicalStandardRecord",
        "type": "object"
      },
      "CanonicalStandardsRegistryResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/CanonicalStandardRecord"
            },
            "maxItems": 10000,
            "title": "Records",
            "type": "array"
          },
          "registry_id": {
            "const": "metis-canonical-standards",
            "default": "metis-canonical-standards",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Registry Version",
            "type": "string"
          },
          "schema_version": {
            "const": "2.12.0",
            "default": "2.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["registry_version", "generated_at", "records"],
        "title": "CanonicalStandardsRegistryResponse",
        "type": "object"
      },
      "CanonicaliseRequest": {
        "additionalProperties": false,
        "description": "Making a claim canonical requires the decision, inline, every time.",
        "properties": {
          "claim": {
            "$ref": "#/components/schemas/Claim"
          },
          "decision": {
            "$ref": "#/components/schemas/HumanDecision"
          }
        },
        "required": ["claim", "decision"],
        "title": "CanonicaliseRequest",
        "type": "object"
      },
      "CapabilityProbe": {
        "additionalProperties": false,
        "description": "One capability, and when something last checked it was there.\n\n`probed_at` is required for any answer other than `unknown`. A capability\nasserted without a probe is a capability somebody read in a datasheet.",
        "properties": {
          "capability": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Capability",
            "type": "string"
          },
          "detail": {
            "default": "",
            "maxLength": 2000,
            "title": "Detail",
            "type": "string"
          },
          "probed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Probed At"
          },
          "state": {
            "enum": ["supported", "unsupported", "unknown"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["capability", "state"],
        "title": "CapabilityProbe",
        "type": "object"
      },
      "CapabilityView": {
        "additionalProperties": false,
        "properties": {
          "capability": {
            "title": "Capability",
            "type": "string"
          },
          "detail": {
            "default": "",
            "title": "Detail",
            "type": "string"
          },
          "probe_age_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Probe Age Days"
          },
          "probed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Probed At"
          },
          "state": {
            "enum": ["supported", "unsupported", "unknown"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["capability", "state"],
        "title": "CapabilityView",
        "type": "object"
      },
      "CaptionCue": {
        "additionalProperties": false,
        "description": "One timed caption line.",
        "properties": {
          "cue_id": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Cue Id",
            "type": "string"
          },
          "end_ms": {
            "minimum": 0.0,
            "title": "End Ms",
            "type": "integer"
          },
          "start_ms": {
            "minimum": 0.0,
            "title": "Start Ms",
            "type": "integer"
          },
          "text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["cue_id", "start_ms", "end_ms", "text"],
        "title": "CaptionCue",
        "type": "object"
      },
      "CaptureRequest": {
        "additionalProperties": false,
        "description": "What a quick-capture form may send.\n\nDeliberately smaller than `InboxItem`: no status, no scan, no conversion and\nno owner. A caller that could set its own status could send `ready`, and the\nwhole quarantine rule would be one request field away from being optional.",
        "properties": {
          "context_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context Id"
          },
          "external_ref": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Ref"
          },
          "kind": {
            "enum": ["source", "curriculum_brief", "lesson_idea", "item_idea", "feedback"],
            "title": "Kind",
            "type": "string"
          },
          "origin": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Origin",
            "type": "string"
          },
          "provenance": {
            "enum": [
              "typed_by_person",
              "pasted_by_person",
              "uploaded_file",
              "external_link",
              "ai_drafted",
              "bulk_import"
            ],
            "title": "Provenance",
            "type": "string"
          },
          "raw": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Raw",
            "type": "string"
          }
        },
        "required": ["kind", "raw", "provenance", "origin"],
        "title": "CaptureRequest",
        "type": "object"
      },
      "CaptureSource": {
        "additionalProperties": false,
        "description": "Where this came from, and enough to find it again.",
        "properties": {
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "external_ref": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Ref"
          },
          "origin": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Origin",
            "type": "string"
          },
          "provenance": {
            "enum": [
              "typed_by_person",
              "pasted_by_person",
              "uploaded_file",
              "external_link",
              "ai_drafted",
              "bulk_import"
            ],
            "title": "Provenance",
            "type": "string"
          }
        },
        "required": ["provenance", "origin", "captured_at"],
        "title": "CaptureSource",
        "type": "object"
      },
      "CarriedSignoff": {
        "additionalProperties": false,
        "description": "A signoff a change did not touch, re-bound to the new revision with its provenance.\n\nThe original is untouched; this record names it, the revisions and the change\nkinds, so a reader can see the approval was carried, not made again.",
        "properties": {
          "carried_at": {
            "format": "date-time",
            "title": "Carried At",
            "type": "string"
          },
          "carried_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Carried Id",
            "type": "string"
          },
          "change_kinds": {
            "items": {
              "enum": [
                "text_edit",
                "answer_key_change",
                "media_replaced",
                "alt_text_edit",
                "source_citation_change",
                "rights_metadata_change",
                "locale_change",
                "catalogue_metadata_change"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Change Kinds",
            "type": "array"
          },
          "content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Content Id",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "from_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "From Revision Sha256",
            "type": "string"
          },
          "original_signed_at": {
            "format": "date-time",
            "title": "Original Signed At",
            "type": "string"
          },
          "original_signoff_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Original Signoff Id",
            "type": "string"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          },
          "to_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "carried_id",
          "original_signoff_id",
          "dimension",
          "reviewer_digest",
          "content_id",
          "from_revision_sha256",
          "to_revision_sha256",
          "change_kinds",
          "template_id",
          "template_version",
          "original_signed_at",
          "carried_at"
        ],
        "title": "CarriedSignoff",
        "type": "object"
      },
      "CaseDecisionRecord": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "case_version": {
            "minimum": 1.0,
            "title": "Case Version",
            "type": "integer"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decided By Digest",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "guards_passed": {
            "items": {
              "enum": [
                "decider_role",
                "independence",
                "no_declared_conflict",
                "evidence_complete",
                "learner_heard",
                "version"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Guards Passed",
            "type": "array"
          },
          "outcome": {
            "enum": ["no_finding", "finding", "finding_with_remedy"],
            "title": "Outcome",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "remedy": {
            "enum": [
              "none",
              "educator_review",
              "learner_warning",
              "score_hold",
              "submission_reject",
              "institution_escalation"
            ],
            "title": "Remedy",
            "type": "string"
          },
          "standard": {
            "enum": ["balance_of_probabilities", "clear_and_convincing"],
            "title": "Standard",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "case_id",
          "decided_by_digest",
          "outcome",
          "remedy",
          "rationale",
          "standard",
          "decided_at",
          "case_version",
          "guards_passed"
        ],
        "title": "CaseDecisionRecord",
        "type": "object"
      },
      "CasePolicy": {
        "additionalProperties": false,
        "properties": {
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$|^\\d{4}\\.\\d{2}$",
            "title": "Policy Version",
            "type": "string"
          },
          "restricted_remedies": {
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Restricted Remedies",
            "type": "array"
          },
          "standard": {
            "enum": ["balance_of_probabilities", "clear_and_convincing"],
            "title": "Standard",
            "type": "string"
          }
        },
        "required": ["policy_id", "policy_version", "standard", "restricted_remedies"],
        "title": "CasePolicy",
        "type": "object"
      },
      "CatalogAffectedLink": {
        "additionalProperties": false,
        "description": "Something that points at an entry this release moves or removes.",
        "properties": {
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "link_kind": {
            "enum": [
              "collection",
              "credential_pathway",
              "prerequisite",
              "deep_link",
              "search_result",
              "lms_placement"
            ],
            "title": "Link Kind",
            "type": "string"
          },
          "source": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Source",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["link_kind", "source", "subject_id", "detail"],
        "title": "CatalogAffectedLink",
        "type": "object"
      },
      "CatalogApprovalRequest": {
        "properties": {
          "dimensions": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Dimensions",
            "type": "array"
          },
          "manifest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": ["manifest", "dimensions"],
        "title": "CatalogApprovalRequest",
        "type": "object"
      },
      "CatalogBoundaryReport": {
        "additionalProperties": false,
        "description": "The evidence M9.11.d asks for, computed rather than asserted.",
        "properties": {
          "clean": {
            "title": "Clean",
            "type": "boolean"
          },
          "files_scanned": {
            "items": {
              "type": "string"
            },
            "title": "Files Scanned",
            "type": "array"
          },
          "findings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "limitation": {
            "title": "Limitation",
            "type": "string"
          }
        },
        "required": ["files_scanned", "clean", "limitation"],
        "title": "CatalogBoundaryReport",
        "type": "object"
      },
      "CatalogBundle": {
        "additionalProperties": false,
        "description": "A versioned proposal to change what learners can find.",
        "properties": {
          "bundle_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Bundle Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "entries": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogEntry"
            },
            "title": "Entries",
            "type": "array"
          },
          "manifest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest",
            "type": "string"
          },
          "owner": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "schedule": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CatalogScheduleWindow"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "default": "draft",
            "enum": [
              "draft",
              "in_review",
              "approved",
              "released",
              "superseded",
              "unpublished",
              "recalled"
            ],
            "title": "State",
            "type": "string"
          },
          "supersedes": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes"
          },
          "targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogTarget"
            },
            "title": "Targets",
            "type": "array"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": ["bundle_id", "version", "owner", "manifest", "created_at"],
        "title": "CatalogBundle",
        "type": "object"
      },
      "CatalogBundleDetail": {
        "additionalProperties": false,
        "properties": {
          "approvals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/BundleApproval"
            },
            "title": "Approvals",
            "type": "array"
          },
          "bundle": {
            "$ref": "#/components/schemas/CatalogBundle"
          },
          "recalls": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogRecall"
            },
            "title": "Recalls",
            "type": "array"
          },
          "versions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogBundleSummary"
            },
            "title": "Versions",
            "type": "array"
          }
        },
        "required": ["bundle"],
        "title": "CatalogBundleDetail",
        "type": "object"
      },
      "CatalogBundleSummary": {
        "additionalProperties": false,
        "properties": {
          "bundle_id": {
            "title": "Bundle Id",
            "type": "string"
          },
          "entry_count": {
            "title": "Entry Count",
            "type": "integer"
          },
          "manifest": {
            "title": "Manifest",
            "type": "string"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "supersedes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": ["bundle_id", "version", "state", "owner", "manifest", "entry_count"],
        "title": "CatalogBundleSummary",
        "type": "object"
      },
      "CatalogDependencyBreak": {
        "additionalProperties": false,
        "description": "An entry whose prerequisite this release does not leave reachable.",
        "properties": {
          "audience": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Audience",
            "type": "string"
          },
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "locale": {
            "maxLength": 16,
            "minLength": 2,
            "title": "Locale",
            "type": "string"
          },
          "prerequisite_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Prerequisite Id",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["subject_id", "prerequisite_id", "audience", "locale", "detail"],
        "title": "CatalogDependencyBreak",
        "type": "object"
      },
      "CatalogEligibilityFinding": {
        "additionalProperties": false,
        "description": "One check's answer for one entry.",
        "properties": {
          "check": {
            "enum": [
              "revision_match",
              "rights",
              "gates",
              "reviews",
              "credential",
              "integration",
              "locale",
              "audience"
            ],
            "title": "Check",
            "type": "string"
          },
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "verdict": {
            "enum": ["pass", "fail", "unknown"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["subject_id", "check", "verdict", "detail"],
        "title": "CatalogEligibilityFinding",
        "type": "object"
      },
      "CatalogEligibilityReport": {
        "additionalProperties": false,
        "description": "Every check for every entry in a bundle.",
        "properties": {
          "bundle_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Bundle Id",
            "type": "string"
          },
          "findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogEligibilityFinding"
            },
            "title": "Findings",
            "type": "array"
          }
        },
        "required": ["bundle_id"],
        "title": "CatalogEligibilityReport",
        "type": "object"
      },
      "CatalogEligibilityRequest": {
        "properties": {
          "facts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogSubjectFacts"
            },
            "title": "Facts",
            "type": "array"
          }
        },
        "title": "CatalogEligibilityRequest",
        "type": "object"
      },
      "CatalogEntry": {
        "additionalProperties": false,
        "description": "One thing on the shelf, pinned to the revision it was reviewed at.",
        "properties": {
          "audiences": {
            "items": {
              "enum": ["learner", "educator", "administrator", "guest"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Audiences",
            "type": "array"
          },
          "build_revision": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Build Revision"
          },
          "collections": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Collections",
            "type": "array"
          },
          "featured": {
            "default": false,
            "title": "Featured",
            "type": "boolean"
          },
          "kind": {
            "enum": ["course", "item", "collection_only"],
            "title": "Kind",
            "type": "string"
          },
          "locales": {
            "items": {
              "maxLength": 16,
              "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "metadata": {
            "additionalProperties": {
              "additionalProperties": {
                "type": "string"
              },
              "type": "object"
            },
            "title": "Metadata",
            "type": "object"
          },
          "prerequisites": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Prerequisites",
            "type": "array"
          },
          "revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["kind", "subject_id", "revision", "audiences", "locales"],
        "title": "CatalogEntry",
        "type": "object"
      },
      "CatalogEntryChange": {
        "additionalProperties": false,
        "description": "One difference between what is published and what is proposed.",
        "properties": {
          "after": {
            "anyOf": [
              {
                "maxLength": 800,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "After"
          },
          "before": {
            "anyOf": [
              {
                "maxLength": 800,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Before"
          },
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "kind": {
            "enum": [
              "added",
              "removed",
              "moved",
              "revision_changed",
              "metadata_changed",
              "feature_changed",
              "audience_changed",
              "locale_changed",
              "collection_changed"
            ],
            "title": "Kind",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["subject_id", "kind", "detail"],
        "title": "CatalogEntryChange",
        "type": "object"
      },
      "CatalogEntryRequest": {
        "properties": {
          "at": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "entry": {
            "$ref": "#/components/schemas/CatalogEntry"
          }
        },
        "required": ["entry"],
        "title": "CatalogEntryRequest",
        "type": "object"
      },
      "CatalogFeatureRequest": {
        "properties": {
          "featured": {
            "title": "Featured",
            "type": "boolean"
          }
        },
        "required": ["featured"],
        "title": "CatalogFeatureRequest",
        "type": "object"
      },
      "CatalogPreview": {
        "additionalProperties": false,
        "description": "Everything a release would change, computed the same way every time.",
        "properties": {
          "affected_links": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogAffectedLink"
            },
            "title": "Affected Links",
            "type": "array"
          },
          "baseline_known": {
            "title": "Baseline Known",
            "type": "boolean"
          },
          "bundle_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Bundle Id",
            "type": "string"
          },
          "changes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogEntryChange"
            },
            "title": "Changes",
            "type": "array"
          },
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "dependency_breaks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogDependencyBreak"
            },
            "title": "Dependency Breaks",
            "type": "array"
          },
          "from_manifest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "From Manifest"
          },
          "link_sources_consulted": {
            "default": [],
            "items": {
              "enum": [
                "collection",
                "credential_pathway",
                "prerequisite",
                "deep_link",
                "search_result",
                "lms_placement"
              ],
              "type": "string"
            },
            "title": "Link Sources Consulted",
            "type": "array"
          },
          "to_manifest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Manifest",
            "type": "string"
          },
          "visibility": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogVisibilityChange"
            },
            "title": "Visibility",
            "type": "array"
          }
        },
        "required": ["bundle_id", "to_manifest", "baseline_known", "computed_at"],
        "title": "CatalogPreview",
        "type": "object"
      },
      "CatalogPreviewRequest": {
        "description": "What the caller knows about the released catalogue.\n\n`baseline_known` is required and separate from supplying a baseline: a\ncatalogue that is genuinely empty and one nobody could read produce the\nsame diff, and only one of them is safe to approve.",
        "properties": {
          "baseline_bundle_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Bundle Id"
          },
          "baseline_known": {
            "title": "Baseline Known",
            "type": "boolean"
          },
          "known_links": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogAffectedLink"
            },
            "title": "Known Links",
            "type": "array"
          },
          "link_sources_consulted": {
            "default": [],
            "items": {
              "enum": [
                "collection",
                "credential_pathway",
                "prerequisite",
                "deep_link",
                "search_result",
                "lms_placement"
              ],
              "type": "string"
            },
            "title": "Link Sources Consulted",
            "type": "array"
          }
        },
        "required": ["baseline_known"],
        "title": "CatalogPreviewRequest",
        "type": "object"
      },
      "CatalogRecall": {
        "additionalProperties": false,
        "description": "A released bundle being pulled, and why.\n\nA recall is a new fact about a release, never an edit to it: the released\nversion stays exactly as it was published, because that is what people\nalready have.",
        "properties": {
          "bundle_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Bundle Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "manifest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest",
            "type": "string"
          },
          "reason": {
            "enum": [
              "superseded_by_newer",
              "withdrawn_by_owner",
              "source_withdrawn",
              "rights_expired",
              "integrity_recall"
            ],
            "title": "Reason",
            "type": "string"
          },
          "recalled_at": {
            "format": "date-time",
            "title": "Recalled At",
            "type": "string"
          },
          "recalled_by": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Recalled By",
            "type": "string"
          },
          "subject_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Subject Ids",
            "type": "array"
          }
        },
        "required": ["bundle_id", "manifest", "reason", "detail", "recalled_by", "recalled_at"],
        "title": "CatalogRecall",
        "type": "object"
      },
      "CatalogReleaseCheck": {
        "additionalProperties": false,
        "properties": {
          "bundle_id": {
            "title": "Bundle Id",
            "type": "string"
          },
          "clear": {
            "title": "Clear",
            "type": "boolean"
          },
          "manifest": {
            "title": "Manifest",
            "type": "string"
          },
          "refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          }
        },
        "required": ["bundle_id", "manifest", "clear"],
        "title": "CatalogReleaseCheck",
        "type": "object"
      },
      "CatalogReleaseCheckRequest": {
        "description": "The preview inputs and the eligibility facts, in one body.",
        "properties": {
          "facts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogSubjectFacts"
            },
            "title": "Facts",
            "type": "array"
          },
          "preview": {
            "$ref": "#/components/schemas/CatalogPreviewRequest"
          }
        },
        "required": ["preview"],
        "title": "CatalogReleaseCheckRequest",
        "type": "object"
      },
      "CatalogReorderRequest": {
        "properties": {
          "order": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Order",
            "type": "array"
          }
        },
        "required": ["order"],
        "title": "CatalogReorderRequest",
        "type": "object"
      },
      "CatalogScheduleWindow": {
        "additionalProperties": false,
        "description": "When an entry is on the shelf. Instants, never wall-clock times.",
        "properties": {
          "closes_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closes At"
          },
          "opens_at": {
            "format": "date-time",
            "title": "Opens At",
            "type": "string"
          }
        },
        "required": ["opens_at"],
        "title": "CatalogScheduleWindow",
        "type": "object"
      },
      "CatalogSubjectFacts": {
        "additionalProperties": false,
        "description": "What the estate reports about one subject at one revision.",
        "properties": {
          "audiences_permitted": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Audiences Permitted",
            "type": "array"
          },
          "build_revision": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Build Revision"
          },
          "credential_registered": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Registered"
          },
          "gates_passed": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Gates Passed",
            "type": "array"
          },
          "gates_required": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Gates Required",
            "type": "array"
          },
          "integrations_ready": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Integrations Ready",
            "type": "array"
          },
          "locales_available": {
            "default": [],
            "items": {
              "maxLength": 16,
              "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
              "type": "string"
            },
            "title": "Locales Available",
            "type": "array"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "reviews_complete": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviews Complete"
          },
          "revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision",
            "type": "string"
          },
          "rights_cleared": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rights Cleared"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["subject_id", "revision", "observed_at"],
        "title": "CatalogSubjectFacts",
        "type": "object"
      },
      "CatalogTarget": {
        "additionalProperties": false,
        "description": "One place a release is written, and the API that writes it.",
        "properties": {
          "kind": {
            "enum": ["catalog", "search_index", "lms", "store", "credential_registry"],
            "title": "Kind",
            "type": "string"
          },
          "release_api": {
            "maxLength": 200,
            "minLength": 3,
            "title": "Release Api",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["kind", "target_id", "release_api"],
        "title": "CatalogTarget",
        "type": "object"
      },
      "CatalogUnpublishRequest": {
        "properties": {
          "detail": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "superseded_by_newer",
              "withdrawn_by_owner",
              "source_withdrawn",
              "rights_expired",
              "integrity_recall"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "CatalogUnpublishRequest",
        "type": "object"
      },
      "CatalogVisibilityChange": {
        "additionalProperties": false,
        "description": "What appears and disappears for one audience in one locale.",
        "properties": {
          "appears": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Appears",
            "type": "array"
          },
          "audience": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Audience",
            "type": "string"
          },
          "disappears": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Disappears",
            "type": "array"
          },
          "locale": {
            "maxLength": 16,
            "minLength": 2,
            "title": "Locale",
            "type": "string"
          }
        },
        "required": ["audience", "locale"],
        "title": "CatalogVisibilityChange",
        "type": "object"
      },
      "ChainVerification": {
        "additionalProperties": false,
        "properties": {
          "broken_at": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Broken At"
          },
          "fault": {
            "anyOf": [
              {
                "enum": ["sequence_gap", "link_mismatch", "digest_mismatch", "cross_subject"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fault"
          },
          "head_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Head Sha256",
            "type": "string"
          },
          "intact": {
            "title": "Intact",
            "type": "boolean"
          },
          "length": {
            "minimum": 0.0,
            "title": "Length",
            "type": "integer"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["signal", "case"],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": ["subject_kind", "subject_id", "length", "head_sha256", "intact"],
        "title": "ChainVerification",
        "type": "object"
      },
      "ChainView": {
        "additionalProperties": false,
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/RedactedEvent"
            },
            "title": "Events",
            "type": "array"
          },
          "verification": {
            "$ref": "#/components/schemas/ChainVerification"
          }
        },
        "required": ["events", "verification"],
        "title": "ChainView",
        "type": "object"
      },
      "ChallengerComparison": {
        "additionalProperties": false,
        "properties": {
          "agreement_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Agreement Basis Points",
            "type": "integer"
          },
          "automatic_promotion": {
            "const": false,
            "default": false,
            "title": "Automatic Promotion",
            "type": "boolean"
          },
          "challenger_accuracy_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Challenger Accuracy Basis Points",
            "type": "integer"
          },
          "challenger_evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Challenger Evaluator Id",
            "type": "string"
          },
          "challenger_wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Challenger Wilson Low",
            "type": "number"
          },
          "champion_accuracy_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Champion Accuracy Basis Points",
            "type": "integer"
          },
          "champion_evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Champion Evaluator Id",
            "type": "string"
          },
          "champion_wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Champion Wilson Low",
            "type": "number"
          },
          "decision": {
            "enum": ["hold_champion", "promotion_requires_human_review", "reject_challenger"],
            "title": "Decision",
            "type": "string"
          },
          "drift_basis_points": {
            "maximum": 10000.0,
            "minimum": -10000.0,
            "title": "Drift Basis Points",
            "type": "integer"
          },
          "gold_set_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gold Set Revision Id",
            "type": "string"
          },
          "human_review_required": {
            "title": "Human Review Required",
            "type": "boolean"
          },
          "reason_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reason Code",
            "type": "string"
          },
          "shared_items": {
            "minimum": 0.0,
            "title": "Shared Items",
            "type": "integer"
          },
          "worst_subgroup": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Worst Subgroup",
            "type": "string"
          },
          "worst_subgroup_drift_basis_points": {
            "maximum": 10000.0,
            "minimum": -10000.0,
            "title": "Worst Subgroup Drift Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "champion_evaluator_id",
          "challenger_evaluator_id",
          "gold_set_revision_id",
          "shared_items",
          "champion_accuracy_basis_points",
          "challenger_accuracy_basis_points",
          "champion_wilson_low",
          "challenger_wilson_low",
          "agreement_basis_points",
          "drift_basis_points",
          "worst_subgroup",
          "worst_subgroup_drift_basis_points",
          "decision",
          "reason_code",
          "human_review_required"
        ],
        "title": "ChallengerComparison",
        "type": "object"
      },
      "ChangeImpactProbe": {
        "additionalProperties": false,
        "properties": {
          "carried": {
            "items": {
              "enum": [
                "sme_correctness",
                "pedagogy_alignment",
                "accessibility",
                "fairness_cultural",
                "legal_rights",
                "publisher_target"
              ],
              "type": "string"
            },
            "title": "Carried",
            "type": "array"
          },
          "invalidated": {
            "items": {
              "enum": [
                "sme_correctness",
                "pedagogy_alignment",
                "accessibility",
                "fairness_cultural",
                "legal_rights",
                "publisher_target"
              ],
              "type": "string"
            },
            "title": "Invalidated",
            "type": "array"
          },
          "kind": {
            "enum": [
              "text_edit",
              "answer_key_change",
              "media_replaced",
              "alt_text_edit",
              "source_citation_change",
              "rights_metadata_change",
              "locale_change",
              "catalogue_metadata_change"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["kind", "invalidated", "carried"],
        "title": "ChangeImpactProbe",
        "type": "object"
      },
      "ChangeRequest": {
        "properties": {
          "change": {
            "maxLength": 20,
            "minLength": 3,
            "title": "Change",
            "type": "string"
          },
          "preview_version": {
            "minimum": 1.0,
            "title": "Preview Version",
            "type": "integer"
          },
          "to_lifecycle": {
            "anyOf": [
              {
                "enum": ["draft", "published", "deprecated", "superseded", "retired"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "To Lifecycle"
          }
        },
        "required": ["change", "preview_version"],
        "title": "ChangeRequest",
        "type": "object"
      },
      "CheckDesign": {
        "additionalProperties": false,
        "description": "A CHECK derived from a closed vocabulary the contract already declares.",
        "properties": {
          "allowed_values": {
            "items": {
              "type": "string"
            },
            "maxItems": 60,
            "minItems": 2,
            "title": "Allowed Values",
            "type": "array"
          },
          "column": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Column",
            "type": "string"
          },
          "source_literal": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Source Literal",
            "type": "string"
          }
        },
        "required": ["column", "allowed_values", "source_literal"],
        "title": "CheckDesign",
        "type": "object"
      },
      "Checkpoint": {
        "additionalProperties": false,
        "description": "Where a paused run stopped, and what is left of it.\n\n``completed`` plus ``pending`` must be the whole plan. A checkpoint that\nlost a step would resume into a run that skipped it, and nothing downstream\nwould know.",
        "properties": {
          "at_step": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "At Step",
            "type": "string"
          },
          "completed_step_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "title": "Completed Step Ids",
            "type": "array"
          },
          "pending_step_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Pending Step Ids",
            "type": "array"
          },
          "plan_step_count": {
            "maximum": 40.0,
            "minimum": 1.0,
            "title": "Plan Step Count",
            "type": "integer"
          },
          "taken_at": {
            "format": "date-time",
            "title": "Taken At",
            "type": "string"
          },
          "taken_at_step_boundary": {
            "const": true,
            "default": true,
            "title": "Taken At Step Boundary",
            "type": "boolean"
          }
        },
        "required": ["at_step", "pending_step_ids", "plan_step_count", "taken_at"],
        "title": "Checkpoint",
        "type": "object"
      },
      "CitabilityRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "title": "At",
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/CitedSource"
            },
            "title": "Sources",
            "type": "array"
          }
        },
        "required": ["sources", "at"],
        "title": "CitabilityRequest",
        "type": "object"
      },
      "CitationAnchor": {
        "additionalProperties": false,
        "description": "A citation and the character range of the turn it is offered for.",
        "properties": {
          "citation": {
            "$ref": "#/components/schemas/ClaimCitation"
          },
          "end_char": {
            "exclusiveMinimum": 0.0,
            "title": "End Char",
            "type": "integer"
          },
          "start_char": {
            "minimum": 0.0,
            "title": "Start Char",
            "type": "integer"
          }
        },
        "required": ["start_char", "end_char", "citation"],
        "title": "CitationAnchor",
        "type": "object"
      },
      "CitationCurrency": {
        "additionalProperties": false,
        "description": "M6.7's resolver verdict for one citation, carried verbatim.\n\n``outcome`` is whatever :func:`metis.services.tutor_configuration_binding_engine.\nresolve_material` returned. Nothing here re-decides what \"approved\" means.",
        "properties": {
          "catalogue_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalogue Revision Sha256"
          },
          "citation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Citation Id",
            "type": "string"
          },
          "current_approved": {
            "title": "Current Approved",
            "type": "boolean"
          },
          "detail": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "outcome": {
            "enum": [
              "resolved",
              "stale",
              "not_approved",
              "not_published",
              "retracted",
              "rights_revoked",
              "substituted",
              "unresolvable"
            ],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": [
          "citation_id",
          "outcome",
          "catalogue_revision_sha256",
          "detail",
          "current_approved"
        ],
        "title": "CitationCurrency",
        "type": "object"
      },
      "CitationRef": {
        "additionalProperties": false,
        "description": "One thing this result rests on, pinned to the revision it read.",
        "properties": {
          "locator": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Locator",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["source", "claim", "course", "item", "rubric", "standard"],
            "title": "Subject Kind",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          }
        },
        "required": ["subject_kind", "subject_id", "subject_revision_sha256", "locator"],
        "title": "CitationRef",
        "type": "object"
      },
      "CitedSource": {
        "additionalProperties": false,
        "description": "A source, and everything needed to decide whether it may be cited.",
        "properties": {
          "authority": {
            "enum": [
              "peer_reviewed",
              "official_standard",
              "textbook",
              "practitioner",
              "unreviewed"
            ],
            "title": "Authority",
            "type": "string"
          },
          "last_verified_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Verified At"
          },
          "locator": {
            "$ref": "#/components/schemas/Locator"
          },
          "protected": {
            "default": false,
            "title": "Protected",
            "type": "boolean"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "rights": {
            "enum": ["public_domain", "licensed", "fair_dealing", "permission_granted", "unknown"],
            "title": "Rights",
            "type": "string"
          },
          "source_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "title": {
            "maxLength": 400,
            "minLength": 3,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["source_id", "title", "locator", "rights", "authority", "published_at"],
        "title": "CitedSource",
        "type": "object"
      },
      "Claim": {
        "additionalProperties": false,
        "description": "A statement a source supports, and how far along it is.",
        "properties": {
          "claim_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HumanDecision"
              },
              {
                "type": "null"
              }
            ]
          },
          "proposal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ProviderProposal"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "statement": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "status": {
            "enum": ["proposed", "under_review", "canonical", "rejected", "retracted"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["claim_id", "source_id", "statement", "status"],
        "title": "Claim",
        "type": "object"
      },
      "ClaimCitation": {
        "additionalProperties": false,
        "description": "An excerpt of one exact material revision, offered in support of a claim.",
        "properties": {
          "authority_tier": {
            "enum": ["unknown", "community", "secondary", "primary", "authoritative"],
            "title": "Authority Tier",
            "type": "string"
          },
          "citation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Citation Id",
            "type": "string"
          },
          "excerpt": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Excerpt",
            "type": "string"
          },
          "excerpt_locator": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Excerpt Locator",
            "type": "string"
          },
          "excerpt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Excerpt Sha256",
            "type": "string"
          },
          "ref": {
            "$ref": "#/components/schemas/MaterialRef"
          }
        },
        "required": [
          "citation_id",
          "ref",
          "excerpt",
          "excerpt_sha256",
          "excerpt_locator",
          "authority_tier"
        ],
        "title": "ClaimCitation",
        "type": "object"
      },
      "ClaimContentLocator": {
        "additionalProperties": false,
        "properties": {
          "content_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Content Id",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "end_char": {
            "exclusiveMinimum": 0.0,
            "title": "End Char",
            "type": "integer"
          },
          "exact_text": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Exact Text",
            "type": "string"
          },
          "exact_text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exact Text Sha256",
            "type": "string"
          },
          "locator": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "start_char": {
            "minimum": 0.0,
            "title": "Start Char",
            "type": "integer"
          }
        },
        "required": [
          "content_id",
          "revision_id",
          "content_sha256",
          "locator",
          "start_char",
          "end_char",
          "exact_text",
          "exact_text_sha256"
        ],
        "title": "ClaimContentLocator",
        "type": "object"
      },
      "ClaimContentSnapshot": {
        "additionalProperties": false,
        "properties": {
          "content_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Content Id",
            "type": "string"
          },
          "content_kind": {
            "enum": ["lesson", "feedback", "hint", "worked_solution", "lecture"],
            "title": "Content Kind",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "discipline": {
            "maxLength": 160,
            "minLength": 2,
            "title": "Discipline",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2,3}(?:-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "locator_base": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Locator Base",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "text": {
            "maxLength": 48000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "content_id",
          "revision_id",
          "revision_number",
          "content_sha256",
          "content_kind",
          "discipline",
          "locale",
          "locator_base",
          "text"
        ],
        "title": "ClaimContentSnapshot",
        "type": "object"
      },
      "ClaimCorpusError": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Case Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Detail",
            "type": "string"
          },
          "error_type": {
            "enum": [
              "missed",
              "spurious",
              "over_split",
              "under_split",
              "boundary",
              "link_false_positive",
              "link_false_negative"
            ],
            "title": "Error Type",
            "type": "string"
          },
          "gold_claim_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Gold Claim Ids",
            "type": "array"
          },
          "predicted_claim_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Predicted Claim Ids",
            "type": "array"
          }
        },
        "required": ["error_type", "case_id", "detail"],
        "title": "ClaimCorpusError",
        "type": "object"
      },
      "ClaimCorpusEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "boundary_detection": {
            "$ref": "#/components/schemas/MetricEstimate"
          },
          "boundary_error_count": {
            "minimum": 0.0,
            "title": "Boundary Error Count",
            "type": "integer"
          },
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "claim_detection": {
            "$ref": "#/components/schemas/MetricEstimate"
          },
          "content_kinds": {
            "items": {
              "enum": ["lesson", "feedback", "hint", "worked_solution", "lecture"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Content Kinds",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis:m5.19-adversarial-atomic-claims",
            "default": "metis:m5.19-adversarial-atomic-claims",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "corpus_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Corpus Version",
            "type": "string"
          },
          "disciplines": {
            "items": {
              "type": "string"
            },
            "minItems": 3,
            "title": "Disciplines",
            "type": "array"
          },
          "engine": {
            "$ref": "#/components/schemas/ClaimDecompositionEngineWitness"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/ClaimCorpusError"
            },
            "maxItems": 10000,
            "title": "Errors",
            "type": "array"
          },
          "gold_claim_count": {
            "minimum": 1.0,
            "title": "Gold Claim Count",
            "type": "integer"
          },
          "link_false_negative_count": {
            "minimum": 0.0,
            "title": "Link False Negative Count",
            "type": "integer"
          },
          "link_false_positive_count": {
            "minimum": 0.0,
            "title": "Link False Positive Count",
            "type": "integer"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "title": "Locales",
            "type": "array"
          },
          "missed_count": {
            "minimum": 0.0,
            "title": "Missed Count",
            "type": "integer"
          },
          "over_split_count": {
            "minimum": 0.0,
            "title": "Over Split Count",
            "type": "integer"
          },
          "predicted_claim_count": {
            "minimum": 1.0,
            "title": "Predicted Claim Count",
            "type": "integer"
          },
          "schema_version": {
            "const": "5.19.0",
            "default": "5.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "segment_kinds": {
            "items": {
              "enum": [
                "factual",
                "procedural",
                "normative",
                "interpretive",
                "mathematical",
                "attribution",
                "nonclaim"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Segment Kinds",
            "type": "array"
          },
          "source_linking": {
            "$ref": "#/components/schemas/MetricEstimate"
          },
          "spurious_count": {
            "minimum": 0.0,
            "title": "Spurious Count",
            "type": "integer"
          },
          "strata": {
            "items": {
              "$ref": "#/components/schemas/ClaimCorpusStratumReport"
            },
            "maxItems": 1000,
            "minItems": 10,
            "title": "Strata",
            "type": "array"
          },
          "under_split_count": {
            "minimum": 0.0,
            "title": "Under Split Count",
            "type": "integer"
          }
        },
        "required": [
          "corpus_version",
          "corpus_sha256",
          "engine",
          "case_count",
          "gold_claim_count",
          "predicted_claim_count",
          "content_kinds",
          "segment_kinds",
          "disciplines",
          "locales",
          "claim_detection",
          "boundary_detection",
          "source_linking",
          "strata",
          "missed_count",
          "spurious_count",
          "over_split_count",
          "under_split_count",
          "boundary_error_count",
          "link_false_positive_count",
          "link_false_negative_count"
        ],
        "title": "ClaimCorpusEvaluationReport",
        "type": "object"
      },
      "ClaimCorpusStratumReport": {
        "additionalProperties": false,
        "properties": {
          "boundary_detection": {
            "$ref": "#/components/schemas/MetricEstimate"
          },
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "claim_detection": {
            "$ref": "#/components/schemas/MetricEstimate"
          },
          "dimension": {
            "enum": ["content_kind", "discipline", "locale"],
            "title": "Dimension",
            "type": "string"
          },
          "source_linking": {
            "$ref": "#/components/schemas/MetricEstimate"
          },
          "value": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": [
          "dimension",
          "value",
          "case_count",
          "claim_detection",
          "boundary_detection",
          "source_linking"
        ],
        "title": "ClaimCorpusStratumReport",
        "type": "object"
      },
      "ClaimDecompositionEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "code_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Code Sha256",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "deterministic": {
            "const": true,
            "default": true,
            "title": "Deterministic",
            "type": "boolean"
          },
          "engine_id": {
            "const": "metis:atomic-claim-decomposer",
            "default": "metis:atomic-claim-decomposer",
            "title": "Engine Id",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "segment_kinds": {
            "items": {
              "enum": [
                "factual",
                "procedural",
                "normative",
                "interpretive",
                "mathematical",
                "attribution",
                "nonclaim"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Segment Kinds",
            "type": "array"
          },
          "supported_content_kinds": {
            "items": {
              "enum": ["lesson", "feedback", "hint", "worked_solution", "lecture"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Supported Content Kinds",
            "type": "array"
          },
          "version": {
            "const": "5.19.0",
            "default": "5.19.0",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "code_sha256",
          "config_sha256",
          "rules_sha256",
          "supported_content_kinds",
          "segment_kinds"
        ],
        "title": "ClaimDecompositionEngineWitness",
        "type": "object"
      },
      "ClaimDecompositionRunRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/ClaimContentSnapshot"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "schema_version": {
            "const": "5.19.0",
            "default": "5.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_claim_revision_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Source Claim Revision Ids",
            "type": "array"
          },
          "source_package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Package Id",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "content",
          "source_package_id",
          "source_claim_revision_ids"
        ],
        "title": "ClaimDecompositionRunRequest",
        "type": "object"
      },
      "ClaimDecompositionRunResponse": {
        "additionalProperties": false,
        "properties": {
          "claims": {
            "items": {
              "$ref": "#/components/schemas/AtomicClaimRecord"
            },
            "maxItems": 1024,
            "minItems": 1,
            "title": "Claims",
            "type": "array"
          },
          "content": {
            "$ref": "#/components/schemas/ClaimContentSnapshot"
          },
          "engine": {
            "$ref": "#/components/schemas/ClaimDecompositionEngineWitness"
          },
          "previous_run_id": {
            "anyOf": [
              {
                "pattern": "^claimdecomp_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Run Id"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "run_id": {
            "pattern": "^claimdecomp_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.19.0",
            "default": "5.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_claim_revision_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Source Claim Revision Ids",
            "type": "array"
          },
          "source_package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Package Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "tenant_id",
          "requested_by",
          "requested_at",
          "request_sha256",
          "content",
          "source_package_id",
          "source_claim_revision_ids",
          "engine",
          "claims",
          "self_sha256"
        ],
        "title": "ClaimDecompositionRunResponse",
        "type": "object"
      },
      "ClaimDecompositionWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/ClaimCorpusEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/ClaimReviewProjection"
            },
            "maxItems": 16384,
            "title": "Reviews",
            "type": "array"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/ClaimDecompositionRunResponse"
            },
            "maxItems": 4096,
            "title": "Runs",
            "type": "array"
          },
          "source_candidates": {
            "items": {
              "$ref": "#/components/schemas/ClaimSourceSpan"
            },
            "maxItems": 16384,
            "title": "Source Candidates",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/ClaimDecompositionWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation"],
        "title": "ClaimDecompositionWorkspaceResponse",
        "type": "object"
      },
      "ClaimDecompositionWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "claims": {
            "minimum": 0.0,
            "title": "Claims",
            "type": "integer"
          },
          "confirmed": {
            "minimum": 0.0,
            "title": "Confirmed",
            "type": "integer"
          },
          "deferred": {
            "minimum": 0.0,
            "title": "Deferred",
            "type": "integer"
          },
          "nonclaims": {
            "minimum": 0.0,
            "title": "Nonclaims",
            "type": "integer"
          },
          "proposed": {
            "minimum": 0.0,
            "title": "Proposed",
            "type": "integer"
          },
          "rejected": {
            "minimum": 0.0,
            "title": "Rejected",
            "type": "integer"
          },
          "runs": {
            "minimum": 0.0,
            "title": "Runs",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          }
        },
        "required": [
          "runs",
          "claims",
          "proposed",
          "confirmed",
          "rejected",
          "deferred",
          "stale",
          "nonclaims"
        ],
        "title": "ClaimDecompositionWorkspaceSummary",
        "type": "object"
      },
      "ClaimDetail": {
        "additionalProperties": false,
        "description": "Everything the grounding workspace shows about one claim.",
        "properties": {
          "actions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Actions",
            "type": "array"
          },
          "claim": {
            "$ref": "#/components/schemas/GroundingQueueRow"
          },
          "clearable": {
            "default": false,
            "title": "Clearable",
            "type": "boolean"
          },
          "clearable_reason": {
            "default": "",
            "title": "Clearable Reason",
            "type": "string"
          },
          "conflicts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SourceConflict"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "drift": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Drift",
            "type": "array"
          },
          "extractions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExtractionView"
            },
            "title": "Extractions",
            "type": "array"
          },
          "open_conflicts": {
            "default": 0,
            "title": "Open Conflicts",
            "type": "integer"
          },
          "refused": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Refused",
            "type": "array"
          },
          "spans": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ClaimSpan"
            },
            "title": "Spans",
            "type": "array"
          },
          "versions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SourceVersion"
            },
            "title": "Versions",
            "type": "array"
          }
        },
        "required": ["claim"],
        "title": "ClaimDetail",
        "type": "object"
      },
      "ClaimGroundingResult": {
        "additionalProperties": false,
        "description": "Everything grounding decided about one claim, per dimension, unaveraged.",
        "properties": {
          "citation_required": {
            "title": "Citation Required",
            "type": "boolean"
          },
          "claim_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "contradicted": {
            "title": "Contradicted",
            "type": "boolean"
          },
          "every_citation_current_approved": {
            "title": "Every Citation Current Approved",
            "type": "boolean"
          },
          "faithfulness_changed": {
            "title": "Faithfulness Changed",
            "type": "boolean"
          },
          "grounded": {
            "title": "Grounded",
            "type": "boolean"
          },
          "kind": {
            "enum": ["factual", "procedural", "hint", "pedagogical", "motivational", "safety"],
            "title": "Kind",
            "type": "string"
          },
          "sufficiency_state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "Sufficiency State",
            "type": "string"
          },
          "support_verdict": {
            "enum": [
              "supported",
              "partial",
              "unsupported",
              "contradicted",
              "unclear",
              "not_applicable"
            ],
            "title": "Support Verdict",
            "type": "string"
          }
        },
        "required": [
          "claim_id",
          "kind",
          "citation_required",
          "support_verdict",
          "sufficiency_state",
          "faithfulness_changed",
          "contradicted",
          "every_citation_current_approved",
          "grounded"
        ],
        "title": "ClaimGroundingResult",
        "type": "object"
      },
      "ClaimQualifier": {
        "additionalProperties": false,
        "properties": {
          "end_char": {
            "exclusiveMinimum": 0.0,
            "title": "End Char",
            "type": "integer"
          },
          "kind": {
            "enum": [
              "condition",
              "exception",
              "scope",
              "quantity",
              "attribution",
              "temporal",
              "modality",
              "uncertainty"
            ],
            "title": "Kind",
            "type": "string"
          },
          "start_char": {
            "minimum": 0.0,
            "title": "Start Char",
            "type": "integer"
          },
          "text": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["kind", "text", "start_char", "end_char"],
        "title": "ClaimQualifier",
        "type": "object"
      },
      "ClaimReviewDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["confirm", "edit", "reject", "defer"],
            "title": "Action",
            "type": "string"
          },
          "claim_id": {
            "pattern": "^atomicclaim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^atomicdec_[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "edited_proposition": {
            "anyOf": [
              {
                "maxLength": 8000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Proposition"
          },
          "edited_segment_kind": {
            "anyOf": [
              {
                "enum": [
                  "factual",
                  "procedural",
                  "normative",
                  "interpretive",
                  "mathematical",
                  "attribution",
                  "nonclaim"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Segment Kind"
          },
          "expected_revision_id": {
            "pattern": "^atomicrev_[a-f0-9]{40}$",
            "title": "Expected Revision Id",
            "type": "string"
          },
          "link_decisions": {
            "items": {
              "$ref": "#/components/schemas/ClaimSourceLinkDecision"
            },
            "maxItems": 32,
            "title": "Link Decisions",
            "type": "array"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "run_id": {
            "pattern": "^claimdecomp_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "run_id",
          "claim_id",
          "expected_revision_id",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "ClaimReviewDecisionResponse",
        "type": "object"
      },
      "ClaimReviewProjection": {
        "additionalProperties": false,
        "properties": {
          "claim": {
            "$ref": "#/components/schemas/AtomicClaimRecord"
          },
          "content": {
            "$ref": "#/components/schemas/ClaimContentSnapshot"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/ClaimReviewDecisionResponse"
            },
            "maxItems": 1024,
            "title": "Decisions",
            "type": "array"
          },
          "run_id": {
            "pattern": "^claimdecomp_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "source_package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Package Id",
            "type": "string"
          },
          "source_revisions_current": {
            "title": "Source Revisions Current",
            "type": "boolean"
          }
        },
        "required": ["run_id", "content", "source_package_id", "source_revisions_current", "claim"],
        "title": "ClaimReviewProjection",
        "type": "object"
      },
      "ClaimReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["confirm", "edit", "reject", "defer"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Comment",
            "type": "string"
          },
          "edited_proposition": {
            "anyOf": [
              {
                "maxLength": 8000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Proposition"
          },
          "edited_segment_kind": {
            "anyOf": [
              {
                "enum": [
                  "factual",
                  "procedural",
                  "normative",
                  "interpretive",
                  "mathematical",
                  "attribution",
                  "nonclaim"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Segment Kind"
          },
          "expected_revision_id": {
            "pattern": "^atomicrev_[a-f0-9]{40}$",
            "title": "Expected Revision Id",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "link_decisions": {
            "items": {
              "$ref": "#/components/schemas/ClaimSourceLinkDecision"
            },
            "maxItems": 32,
            "title": "Link Decisions",
            "type": "array"
          }
        },
        "required": ["action", "expected_revision_id", "comment", "idempotency_key"],
        "title": "ClaimReviewRequest",
        "type": "object"
      },
      "ClaimScope": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Applicability",
            "type": "array"
          },
          "geographic": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Geographic"
          },
          "population": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Population"
          },
          "subject": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          },
          "temporal": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Temporal"
          }
        },
        "required": ["subject"],
        "title": "ClaimScope",
        "type": "object"
      },
      "ClaimSemanticRelationship": {
        "additionalProperties": false,
        "properties": {
          "connective": {
            "anyOf": [
              {
                "maxLength": 240,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Connective"
          },
          "context_locator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ClaimContentLocator"
              },
              {
                "type": "null"
              }
            ]
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "relation": {
            "enum": [
              "conjunction",
              "contrast",
              "cause",
              "condition",
              "sequence",
              "coreference",
              "example_of",
              "quotation_of",
              "scaffolds"
            ],
            "title": "Relation",
            "type": "string"
          },
          "relationship_id": {
            "pattern": "^claimrel_[a-f0-9]{32}$",
            "title": "Relationship Id",
            "type": "string"
          },
          "target_claim_id": {
            "anyOf": [
              {
                "pattern": "^atomicclaim_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Claim Id"
          }
        },
        "required": ["relationship_id", "relation", "rationale"],
        "title": "ClaimSemanticRelationship",
        "type": "object"
      },
      "ClaimSemanticTriple": {
        "additionalProperties": false,
        "properties": {
          "object": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Object",
            "type": "string"
          },
          "predicate": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Predicate",
            "type": "string"
          },
          "subject": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["subject", "predicate", "object"],
        "title": "ClaimSemanticTriple",
        "type": "object"
      },
      "ClaimSourceLink": {
        "additionalProperties": false,
        "properties": {
          "confirmation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ClaimSourceLinkConfirmation"
              },
              {
                "type": "null"
              }
            ]
          },
          "link_id": {
            "pattern": "^claimlink_[a-f0-9]{40}$",
            "title": "Link Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "role": {
            "enum": [
              "candidate_support",
              "definition_context",
              "method_context",
              "attribution_target",
              "counterevidence_candidate",
              "unclear_candidate"
            ],
            "title": "Role",
            "type": "string"
          },
          "similarity_score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Similarity Score",
            "type": "number"
          },
          "source_span": {
            "$ref": "#/components/schemas/ClaimSourceSpan"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          }
        },
        "required": [
          "link_id",
          "source_span",
          "role",
          "similarity_score",
          "uncertainty",
          "rationale"
        ],
        "title": "ClaimSourceLink",
        "type": "object"
      },
      "ClaimSourceLinkConfirmation": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "const": "confirm",
            "default": "confirm",
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Comment",
            "type": "string"
          },
          "confirmed_at": {
            "format": "date-time",
            "title": "Confirmed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          }
        },
        "required": ["reviewer_id", "reviewer_name", "confirmed_at", "comment"],
        "title": "ClaimSourceLinkConfirmation",
        "type": "object"
      },
      "ClaimSourceLinkDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["confirm", "reject", "defer"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Comment",
            "type": "string"
          },
          "link_id": {
            "pattern": "^claimlink_[a-f0-9]{40}$",
            "title": "Link Id",
            "type": "string"
          },
          "role": {
            "enum": [
              "candidate_support",
              "definition_context",
              "method_context",
              "attribution_target",
              "counterevidence_candidate",
              "unclear_candidate"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["link_id", "action", "role", "comment"],
        "title": "ClaimSourceLinkDecision",
        "type": "object"
      },
      "ClaimSourceSpan": {
        "additionalProperties": false,
        "properties": {
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Anchor Ids",
            "type": "array"
          },
          "end_char": {
            "exclusiveMinimum": 0.0,
            "title": "End Char",
            "type": "integer"
          },
          "exact_quote": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Exact Quote",
            "type": "string"
          },
          "exact_quote_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exact Quote Sha256",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "node_id": {
            "pattern": "^node_[a-f0-9]{24}$",
            "title": "Node Id",
            "type": "string"
          },
          "source_claim_id": {
            "pattern": "^claim_[a-f0-9]{40}$",
            "title": "Source Claim Id",
            "type": "string"
          },
          "source_claim_revision_id": {
            "pattern": "^claimrev_[a-f0-9]{40}$",
            "title": "Source Claim Revision Id",
            "type": "string"
          },
          "source_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Source Extraction Id",
            "type": "string"
          },
          "source_extraction_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Extraction Output Sha256",
            "type": "string"
          },
          "source_package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Package Id",
            "type": "string"
          },
          "source_proposition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Source Proposition",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "start_char": {
            "minimum": 0.0,
            "title": "Start Char",
            "type": "integer"
          }
        },
        "required": [
          "source_package_id",
          "source_claim_id",
          "source_claim_revision_id",
          "source_extraction_id",
          "source_extraction_output_sha256",
          "ingestion_item_id",
          "source_sha256",
          "node_id",
          "anchor_ids",
          "start_char",
          "end_char",
          "exact_quote",
          "exact_quote_sha256",
          "source_proposition"
        ],
        "title": "ClaimSourceSpan",
        "type": "object"
      },
      "ClaimSpan": {
        "additionalProperties": false,
        "description": "The exact words in an extraction that a claim rests on.",
        "properties": {
          "anchor": {
            "enum": ["anchored", "stale", "out_of_range"],
            "title": "Anchor",
            "type": "string"
          },
          "claim_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "confirmed_by": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirmed By"
          },
          "extraction_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "linked_at": {
            "format": "date-time",
            "title": "Linked At",
            "type": "string"
          },
          "span": {
            "$ref": "#/components/schemas/Span"
          }
        },
        "required": ["claim_id", "extraction_id", "span", "anchor", "linked_at"],
        "title": "ClaimSpan",
        "type": "object"
      },
      "ClrRecordResponse": {
        "properties": {
          "clr_document": {
            "additionalProperties": true,
            "title": "Clr Document",
            "type": "object"
          },
          "credentials": {
            "items": {
              "$ref": "#/components/schemas/CredentialResponse"
            },
            "title": "Credentials",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "record_hash": {
            "title": "Record Hash",
            "type": "string"
          }
        },
        "required": ["learner_id", "generated_at", "credentials", "clr_document", "record_hash"],
        "title": "ClrRecordResponse",
        "type": "object"
      },
      "Cmi5Context": {
        "properties": {
          "launch_mode": {
            "default": "Normal",
            "enum": ["Normal", "Browse", "Review"],
            "title": "Launch Mode",
            "type": "string"
          },
          "mastery_score": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mastery Score"
          },
          "move_on": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Move On"
          },
          "registration": {
            "format": "uuid",
            "title": "Registration",
            "type": "string"
          },
          "session_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Session Id",
            "type": "string"
          }
        },
        "required": ["registration", "session_id"],
        "title": "Cmi5Context",
        "type": "object"
      },
      "CodeAccessibility": {
        "additionalProperties": false,
        "properties": {
          "editor_label": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Editor Label",
            "type": "string"
          },
          "keyboard_only_supported": {
            "const": true,
            "default": true,
            "title": "Keyboard Only Supported",
            "type": "boolean"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "non_color_diagnostics": {
            "const": true,
            "default": true,
            "title": "Non Color Diagnostics",
            "type": "boolean"
          },
          "screen_reader_review_required": {
            "const": true,
            "default": true,
            "title": "Screen Reader Review Required",
            "type": "boolean"
          },
          "task_summary": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Task Summary",
            "type": "string"
          }
        },
        "required": ["locale", "editor_label", "task_summary"],
        "title": "CodeAccessibility",
        "type": "object"
      },
      "CodeAttemptReceipt": {
        "additionalProperties": false,
        "properties": {
          "capabilities_dropped": {
            "const": true,
            "default": true,
            "title": "Capabilities Dropped",
            "type": "boolean"
          },
          "container_image_digest": {
            "pattern": "^sha256:[a-f0-9]{64}$",
            "title": "Container Image Digest",
            "type": "string"
          },
          "exit_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit Code"
          },
          "hidden_expected_output_mounted": {
            "const": false,
            "default": false,
            "title": "Hidden Expected Output Mounted",
            "type": "boolean"
          },
          "limits": {
            "$ref": "#/components/schemas/CodeSandboxLimits"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "no_new_privileges": {
            "const": true,
            "default": true,
            "title": "No New Privileges",
            "type": "boolean"
          },
          "oom_killed": {
            "title": "Oom Killed",
            "type": "boolean"
          },
          "output_truncated": {
            "title": "Output Truncated",
            "type": "boolean"
          },
          "protected_input_channel": {
            "const": "stdin_only",
            "default": "stdin_only",
            "title": "Protected Input Channel",
            "type": "string"
          },
          "root_filesystem_read_only": {
            "const": true,
            "default": true,
            "title": "Root Filesystem Read Only",
            "type": "boolean"
          },
          "sandbox_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Sandbox Id",
            "type": "string"
          },
          "sandbox_tool": {
            "$ref": "#/components/schemas/CodeToolWitness"
          },
          "secrets_forwarded": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 0,
            "title": "Secrets Forwarded",
            "type": "array"
          },
          "stderr_bytes": {
            "minimum": 0.0,
            "title": "Stderr Bytes",
            "type": "integer"
          },
          "stderr_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stderr Sha256",
            "type": "string"
          },
          "stdout_bytes": {
            "minimum": 0.0,
            "title": "Stdout Bytes",
            "type": "integer"
          },
          "stdout_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stdout Sha256",
            "type": "string"
          },
          "syscall_profile_ref": {
            "title": "Syscall Profile Ref",
            "type": "string"
          },
          "syscall_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Syscall Profile Sha256",
            "type": "string"
          },
          "teardown_confirmed": {
            "const": true,
            "default": true,
            "title": "Teardown Confirmed",
            "type": "boolean"
          },
          "timed_out": {
            "title": "Timed Out",
            "type": "boolean"
          },
          "wall_millis": {
            "minimum": 0.0,
            "title": "Wall Millis",
            "type": "integer"
          }
        },
        "required": [
          "sandbox_id",
          "sandbox_tool",
          "container_image_digest",
          "syscall_profile_ref",
          "syscall_profile_sha256",
          "limits",
          "exit_code",
          "timed_out",
          "oom_killed",
          "output_truncated",
          "stdout_bytes",
          "stderr_bytes",
          "stdout_sha256",
          "stderr_sha256",
          "wall_millis"
        ],
        "title": "CodeAttemptReceipt",
        "type": "object"
      },
      "CodeAttemptResult": {
        "additionalProperties": false,
        "properties": {
          "canonical_output": {
            "maxLength": 100000,
            "title": "Canonical Output",
            "type": "string"
          },
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "expected_output": {
            "maxLength": 100000,
            "title": "Expected Output",
            "type": "string"
          },
          "receipt": {
            "$ref": "#/components/schemas/CodeAttemptReceipt"
          },
          "repetition": {
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Repetition",
            "type": "integer"
          },
          "state": {
            "enum": [
              "pass",
              "fail",
              "runtime_error",
              "timeout",
              "resource_limited",
              "unsafe",
              "unsupported"
            ],
            "title": "State",
            "type": "string"
          },
          "stderr": {
            "maxLength": 100000,
            "title": "Stderr",
            "type": "string"
          },
          "stdout": {
            "maxLength": 100000,
            "title": "Stdout",
            "type": "string"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "repetition",
          "deterministic_seed",
          "state",
          "code",
          "summary",
          "stdout",
          "stderr",
          "canonical_output",
          "expected_output",
          "receipt"
        ],
        "title": "CodeAttemptResult",
        "type": "object"
      },
      "CodeCaseGenerator": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "generator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Generator Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["generator_id", "version", "artifact_sha256", "deterministic_seed"],
        "title": "CodeCaseGenerator",
        "type": "object"
      },
      "CodeCompileDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "column": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Column"
          },
          "line": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Line"
          },
          "message": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "path": {
            "maxLength": 240,
            "pattern": "^[A-Za-z0-9_.-]+(?:/[A-Za-z0-9_.-]+)*$",
            "title": "Path",
            "type": "string"
          },
          "severity": {
            "enum": ["error", "warning"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["path", "severity", "code", "message"],
        "title": "CodeCompileDiagnostic",
        "type": "object"
      },
      "CodeCompileResult": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Artifact Sha256S",
            "type": "array"
          },
          "compiler": {
            "$ref": "#/components/schemas/CodeToolWitness"
          },
          "container_image_digest": {
            "pattern": "^sha256:[a-f0-9]{64}$",
            "title": "Container Image Digest",
            "type": "string"
          },
          "diagnostics": {
            "items": {
              "$ref": "#/components/schemas/CodeCompileDiagnostic"
            },
            "maxItems": 1000,
            "title": "Diagnostics",
            "type": "array"
          },
          "elapsed_millis": {
            "minimum": 0.0,
            "title": "Elapsed Millis",
            "type": "integer"
          },
          "imported_modules": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Imported Modules",
            "type": "array"
          },
          "isolated": {
            "const": true,
            "default": true,
            "title": "Isolated",
            "type": "boolean"
          },
          "output_truncated": {
            "title": "Output Truncated",
            "type": "boolean"
          },
          "sandbox_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Sandbox Id",
            "type": "string"
          },
          "sandbox_tool": {
            "$ref": "#/components/schemas/CodeToolWitness"
          },
          "state": {
            "enum": ["pass", "compile_error", "unsafe", "unsupported"],
            "title": "State",
            "type": "string"
          },
          "stderr_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stderr Sha256",
            "type": "string"
          },
          "stdout_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stdout Sha256",
            "type": "string"
          },
          "syscall_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Syscall Profile Sha256",
            "type": "string"
          },
          "teardown_confirmed": {
            "const": true,
            "default": true,
            "title": "Teardown Confirmed",
            "type": "boolean"
          },
          "timed_out": {
            "title": "Timed Out",
            "type": "boolean"
          }
        },
        "required": [
          "state",
          "diagnostics",
          "imported_modules",
          "artifact_sha256s",
          "compiler",
          "elapsed_millis",
          "sandbox_id",
          "sandbox_tool",
          "container_image_digest",
          "syscall_profile_sha256",
          "stdout_sha256",
          "stderr_sha256",
          "timed_out",
          "output_truncated"
        ],
        "title": "CodeCompileResult",
        "type": "object"
      },
      "CodeCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "compile",
              "example",
              "hidden",
              "property",
              "metamorphic",
              "performance",
              "security",
              "stability",
              "unsupported"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "CodeCorpusMetric",
        "type": "object"
      },
      "CodeDependency": {
        "additionalProperties": false,
        "properties": {
          "integrity_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Integrity Sha256",
            "type": "string"
          },
          "name": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$",
            "title": "Name",
            "type": "string"
          },
          "preinstalled": {
            "const": true,
            "default": true,
            "title": "Preinstalled",
            "type": "boolean"
          },
          "registry": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Registry",
            "type": "string"
          },
          "runtime_network_installation": {
            "const": false,
            "default": false,
            "title": "Runtime Network Installation",
            "type": "boolean"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["name", "version", "integrity_sha256", "registry"],
        "title": "CodeDependency",
        "type": "object"
      },
      "CodeDependencyArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "name": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,159}$",
            "title": "Name",
            "type": "string"
          },
          "preinstalled": {
            "const": true,
            "default": true,
            "title": "Preinstalled",
            "type": "boolean"
          },
          "registry": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Registry",
            "type": "string"
          },
          "runtime_network_installation": {
            "const": false,
            "default": false,
            "title": "Runtime Network Installation",
            "type": "boolean"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["name", "version", "artifact_sha256", "registry"],
        "title": "CodeDependencyArtifact",
        "type": "object"
      },
      "CodeEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis-sandboxed-code-verifier",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "5.22.0",
            "title": "Engine Version",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.22.0",
            "default": "5.22.0",
            "title": "Schema Version",
            "type": "string"
          },
          "supported_language": {
            "const": "python",
            "title": "Supported Language",
            "type": "string"
          },
          "supported_language_version": {
            "const": "3.12.14",
            "title": "Supported Language Version",
            "type": "string"
          },
          "supported_test_kinds": {
            "items": {
              "enum": ["example", "property", "metamorphic", "performance", "security"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Supported Test Kinds",
            "type": "array"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/CodeToolWitness"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_unsupported",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "supported_language",
          "supported_language_version",
          "supported_test_kinds",
          "unsupported_behavior",
          "tools",
          "rules_sha256"
        ],
        "title": "CodeEngineWitness",
        "type": "object"
      },
      "CodeEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "expected_state": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected State",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_state": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed State",
            "type": "string"
          }
        },
        "required": ["case_id", "fixture_family", "expected_state", "observed_state", "matched"],
        "title": "CodeEvaluationCaseResult",
        "type": "object"
      },
      "CodeEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/CodeEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m5.22-sandboxed-code-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/CodeCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "limitations"
        ],
        "title": "CodeEvaluationReport",
        "type": "object"
      },
      "CodeExecutionLimits": {
        "additionalProperties": false,
        "properties": {
          "capabilities_dropped": {
            "const": true,
            "default": true,
            "title": "Capabilities Dropped",
            "type": "boolean"
          },
          "cpu_millis": {
            "maximum": 30000.0,
            "minimum": 100.0,
            "title": "Cpu Millis",
            "type": "integer"
          },
          "memory_bytes": {
            "maximum": 1073741824.0,
            "minimum": 33554432.0,
            "title": "Memory Bytes",
            "type": "integer"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "no_new_privileges": {
            "const": true,
            "default": true,
            "title": "No New Privileges",
            "type": "boolean"
          },
          "open_files": {
            "maximum": 1024.0,
            "minimum": 8.0,
            "title": "Open Files",
            "type": "integer"
          },
          "output_bytes": {
            "maximum": 10000000.0,
            "minimum": 1024.0,
            "title": "Output Bytes",
            "type": "integer"
          },
          "process_count": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Process Count",
            "type": "integer"
          },
          "root_filesystem_read_only": {
            "const": true,
            "default": true,
            "title": "Root Filesystem Read Only",
            "type": "boolean"
          },
          "syscall_profile_ref": {
            "pattern": "^seccomp:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Syscall Profile Ref",
            "type": "string"
          },
          "syscall_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Syscall Profile Sha256",
            "type": "string"
          },
          "teardown_required": {
            "const": true,
            "default": true,
            "title": "Teardown Required",
            "type": "boolean"
          },
          "wall_millis": {
            "maximum": 60000.0,
            "minimum": 100.0,
            "title": "Wall Millis",
            "type": "integer"
          },
          "writable_bytes": {
            "maximum": 268435456.0,
            "minimum": 1048576.0,
            "title": "Writable Bytes",
            "type": "integer"
          }
        },
        "required": [
          "cpu_millis",
          "wall_millis",
          "memory_bytes",
          "process_count",
          "writable_bytes",
          "output_bytes",
          "open_files",
          "syscall_profile_ref",
          "syscall_profile_sha256"
        ],
        "title": "CodeExecutionLimits",
        "type": "object"
      },
      "CodeInvocation": {
        "additionalProperties": false,
        "properties": {
          "api_signature": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Api Signature",
            "type": "string"
          },
          "arguments_enabled": {
            "title": "Arguments Enabled",
            "type": "boolean"
          },
          "entrypoint": {
            "maxLength": 240,
            "pattern": "^[A-Za-z0-9_.-]+(?:/[A-Za-z0-9_.-]+)*$",
            "title": "Entrypoint",
            "type": "string"
          },
          "output_instructions": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Output Instructions",
            "type": "string"
          },
          "output_mode": {
            "enum": ["exact_text", "normalized_text", "json"],
            "title": "Output Mode",
            "type": "string"
          },
          "stdin_enabled": {
            "title": "Stdin Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "entrypoint",
          "api_signature",
          "stdin_enabled",
          "arguments_enabled",
          "output_mode",
          "output_instructions"
        ],
        "title": "CodeInvocation",
        "type": "object"
      },
      "CodeInvocationCase": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Arguments",
            "type": "array"
          },
          "assertion": {
            "$ref": "#/components/schemas/CodeOutputAssertion"
          },
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "stdin": {
            "default": "",
            "maxLength": 100000,
            "title": "Stdin",
            "type": "string"
          }
        },
        "required": ["case_id", "assertion"],
        "title": "CodeInvocationCase",
        "type": "object"
      },
      "CodeInvocationContract": {
        "additionalProperties": false,
        "properties": {
          "api_signature": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Api Signature",
            "type": "string"
          },
          "arguments_enabled": {
            "title": "Arguments Enabled",
            "type": "boolean"
          },
          "entrypoint": {
            "maxLength": 240,
            "pattern": "^[A-Za-z0-9_.-]+(?:/[A-Za-z0-9_.-]+)*$",
            "title": "Entrypoint",
            "type": "string"
          },
          "output_mode": {
            "enum": ["exact_text", "normalized_text", "json", "numeric"],
            "title": "Output Mode",
            "type": "string"
          },
          "stdin_enabled": {
            "title": "Stdin Enabled",
            "type": "boolean"
          }
        },
        "required": [
          "entrypoint",
          "api_signature",
          "stdin_enabled",
          "arguments_enabled",
          "output_mode"
        ],
        "title": "CodeInvocationContract",
        "type": "object"
      },
      "CodeItemContent": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "items": {
              "$ref": "#/components/schemas/CodeAccessibility"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Accessibility",
            "type": "array"
          },
          "invocation": {
            "$ref": "#/components/schemas/CodeInvocation"
          },
          "kind": {
            "const": "assessment-kind:code",
            "default": "assessment-kind:code",
            "title": "Kind",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/CodeExecutionLimits"
          },
          "locale_surfaces": {
            "items": {
              "$ref": "#/components/schemas/MathCodeLocaleSurface"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Surfaces",
            "type": "array"
          },
          "protected_runtime_secret_names": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Protected Runtime Secret Names",
            "type": "array"
          },
          "runtime": {
            "$ref": "#/components/schemas/CodeRuntimePins"
          },
          "scoring": {
            "items": {
              "$ref": "#/components/schemas/CodeScoringRule"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Scoring",
            "type": "array"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          },
          "starter_files": {
            "items": {
              "$ref": "#/components/schemas/CodeStarterFile"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Starter Files",
            "type": "array"
          },
          "tests": {
            "items": {
              "$ref": "#/components/schemas/CodeTestCase"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Tests",
            "type": "array"
          }
        },
        "required": [
          "locale_surfaces",
          "source_references",
          "runtime",
          "starter_files",
          "invocation",
          "tests",
          "scoring",
          "limits",
          "accessibility"
        ],
        "title": "CodeItemContent",
        "type": "object"
      },
      "CodeLearnerPayload": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/CodeAccessibility"
          },
          "invocation": {
            "$ref": "#/components/schemas/CodeInvocation"
          },
          "kind": {
            "const": "code",
            "default": "code",
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "title": "Language",
            "type": "string"
          },
          "language_version": {
            "title": "Language Version",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/CodeExecutionLimits"
          },
          "starter_files": {
            "items": {
              "$ref": "#/components/schemas/CodeStarterFile"
            },
            "title": "Starter Files",
            "type": "array"
          },
          "visible_tests": {
            "items": {
              "$ref": "#/components/schemas/VisibleCodeTest"
            },
            "title": "Visible Tests",
            "type": "array"
          }
        },
        "required": [
          "language",
          "language_version",
          "starter_files",
          "invocation",
          "visible_tests",
          "accessibility",
          "limits"
        ],
        "title": "CodeLearnerPayload",
        "type": "object"
      },
      "CodeMetamorphicResult": {
        "additionalProperties": false,
        "properties": {
          "base_case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Base Case Id",
            "type": "string"
          },
          "expected": {
            "maxLength": 2000,
            "title": "Expected",
            "type": "string"
          },
          "observed": {
            "maxLength": 2000,
            "title": "Observed",
            "type": "string"
          },
          "relation": {
            "enum": ["equal_output", "nondecreasing_numeric", "additive_numeric_delta"],
            "title": "Relation",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "fail", "unknown"],
            "title": "State",
            "type": "string"
          },
          "transformed_case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Transformed Case Id",
            "type": "string"
          }
        },
        "required": [
          "relation",
          "base_case_id",
          "transformed_case_id",
          "state",
          "observed",
          "expected"
        ],
        "title": "CodeMetamorphicResult",
        "type": "object"
      },
      "CodeOutputAssertion": {
        "additionalProperties": false,
        "properties": {
          "absolute_tolerance": {
            "anyOf": [
              {
                "maxLength": 96,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Absolute Tolerance"
          },
          "assertion_type": {
            "enum": ["exact_text", "normalized_text", "json", "numeric"],
            "title": "Assertion Type",
            "type": "string"
          },
          "expected": {
            "maxLength": 100000,
            "title": "Expected",
            "type": "string"
          },
          "relative_tolerance": {
            "anyOf": [
              {
                "maxLength": 96,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relative Tolerance"
          }
        },
        "required": ["assertion_type", "expected"],
        "title": "CodeOutputAssertion",
        "type": "object"
      },
      "CodeOutputFrequency": {
        "additionalProperties": false,
        "properties": {
          "canonical_output": {
            "maxLength": 100000,
            "title": "Canonical Output",
            "type": "string"
          },
          "count": {
            "maximum": 4000.0,
            "minimum": 1.0,
            "title": "Count",
            "type": "integer"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          }
        },
        "required": ["output_sha256", "canonical_output", "count"],
        "title": "CodeOutputFrequency",
        "type": "object"
      },
      "CodePolicyDimension": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": ["compile", "correctness", "safety", "stability", "performance"],
            "title": "Dimension",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "state": {
            "enum": ["pass", "fail", "manual_review"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["dimension", "state", "reason_codes"],
        "title": "CodePolicyDimension",
        "type": "object"
      },
      "CodePolicyVerdict": {
        "additionalProperties": false,
        "properties": {
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/CodePolicyDimension"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Dimensions",
            "type": "array"
          },
          "human_can_override_raw_result": {
            "const": false,
            "default": false,
            "title": "Human Can Override Raw Result",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["allow", "block", "manual_review"],
            "title": "Outcome",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "score_does_not_override_failed_dimension": {
            "const": true,
            "default": true,
            "title": "Score Does Not Override Failed Dimension",
            "type": "boolean"
          }
        },
        "required": ["outcome", "dimensions", "reason_codes"],
        "title": "CodePolicyVerdict",
        "type": "object"
      },
      "CodePreviewCaseResult": {
        "additionalProperties": false,
        "properties": {
          "exit_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit Code"
          },
          "output_truncated": {
            "title": "Output Truncated",
            "type": "boolean"
          },
          "status": {
            "enum": ["passed", "failed", "timeout", "resource_limited", "runtime_error"],
            "title": "Status",
            "type": "string"
          },
          "stderr": {
            "title": "Stderr",
            "type": "string"
          },
          "stdout": {
            "title": "Stdout",
            "type": "string"
          },
          "test_id": {
            "title": "Test Id",
            "type": "string"
          }
        },
        "required": ["test_id", "status", "stdout", "stderr", "exit_code", "output_truncated"],
        "title": "CodePreviewCaseResult",
        "type": "object"
      },
      "CodePreviewExecutionRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/CodeStarterFile"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Files",
            "type": "array"
          },
          "visible_test_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Visible Test Ids",
            "type": "array"
          }
        },
        "required": ["expected_revision", "expected_revision_sha256", "files"],
        "title": "CodePreviewExecutionRequest",
        "type": "object"
      },
      "CodePreviewExecutionResponse": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/CodePreviewCaseResult"
            },
            "title": "Cases",
            "type": "array"
          },
          "math_code_item_id": {
            "title": "Math Code Item Id",
            "type": "string"
          },
          "receipt": {
            "$ref": "#/components/schemas/CodeSandboxReceipt"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["completed", "partial", "sandbox_error"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "math_code_item_id",
          "revision",
          "revision_sha256",
          "status",
          "cases",
          "receipt"
        ],
        "title": "CodePreviewExecutionResponse",
        "type": "object"
      },
      "CodeRawTestResult": {
        "additionalProperties": false,
        "properties": {
          "attempts": {
            "items": {
              "$ref": "#/components/schemas/CodeAttemptResult"
            },
            "maxItems": 4000,
            "title": "Attempts",
            "type": "array"
          },
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "counterexample_case_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Counterexample Case Ids",
            "type": "array"
          },
          "earned_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Earned Basis Points",
            "type": "integer"
          },
          "kind": {
            "enum": ["example", "property", "metamorphic", "performance", "security"],
            "title": "Kind",
            "type": "string"
          },
          "metamorphic": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CodeMetamorphicResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "output_distribution": {
            "items": {
              "$ref": "#/components/schemas/CodeOutputFrequency"
            },
            "maxItems": 100,
            "title": "Output Distribution",
            "type": "array"
          },
          "possible_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Possible Basis Points",
            "type": "integer"
          },
          "state": {
            "enum": [
              "pass",
              "fail",
              "runtime_error",
              "timeout",
              "resource_limited",
              "unsafe",
              "unstable",
              "unsupported"
            ],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "test_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Test Id",
            "type": "string"
          },
          "visibility": {
            "enum": ["visible", "hidden"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "test_id",
          "kind",
          "visibility",
          "state",
          "code",
          "summary",
          "attempts",
          "output_distribution",
          "counterexample_case_ids",
          "earned_basis_points",
          "possible_basis_points"
        ],
        "title": "CodeRawTestResult",
        "type": "object"
      },
      "CodeRepetitionPolicy": {
        "additionalProperties": false,
        "properties": {
          "allowed_outputs": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Allowed Outputs",
            "type": "array"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "maximum_failure_rate": {
            "default": 0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Maximum Failure Rate",
            "type": "number"
          },
          "minimum_distinct_outputs": {
            "default": 1,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Minimum Distinct Outputs",
            "type": "integer"
          },
          "mode": {
            "default": "deterministic",
            "enum": ["deterministic", "stochastic"],
            "title": "Mode",
            "type": "string"
          },
          "repetitions": {
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Repetitions",
            "type": "integer"
          },
          "stable_outputs_required": {
            "default": true,
            "title": "Stable Outputs Required",
            "type": "boolean"
          }
        },
        "required": ["repetitions", "deterministic_seed"],
        "title": "CodeRepetitionPolicy",
        "type": "object"
      },
      "CodeRuntimeContract": {
        "additionalProperties": false,
        "properties": {
          "compiler": {
            "$ref": "#/components/schemas/CodeToolWitness"
          },
          "container_image_digest": {
            "pattern": "^sha256:[a-f0-9]{64}$",
            "title": "Container Image Digest",
            "type": "string"
          },
          "container_image_ref": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Container Image Ref",
            "type": "string"
          },
          "dependencies": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CodeDependencyArtifact"
            },
            "maxItems": 100,
            "title": "Dependencies",
            "type": "array"
          },
          "harness": {
            "$ref": "#/components/schemas/CodeToolWitness"
          },
          "interpreter": {
            "$ref": "#/components/schemas/CodeToolWitness"
          },
          "language": {
            "const": "python",
            "default": "python",
            "title": "Language",
            "type": "string"
          },
          "language_version": {
            "const": "3.12.14",
            "default": "3.12.14",
            "title": "Language Version",
            "type": "string"
          },
          "runtime_network_installation": {
            "const": false,
            "default": false,
            "title": "Runtime Network Installation",
            "type": "boolean"
          },
          "syscall_profile_ref": {
            "const": "seccomp:metis-python-v1",
            "default": "seccomp:metis-python-v1",
            "title": "Syscall Profile Ref",
            "type": "string"
          },
          "syscall_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Syscall Profile Sha256",
            "type": "string"
          }
        },
        "required": [
          "interpreter",
          "compiler",
          "harness",
          "container_image_digest",
          "container_image_ref",
          "syscall_profile_sha256"
        ],
        "title": "CodeRuntimeContract",
        "type": "object"
      },
      "CodeRuntimePins": {
        "additionalProperties": false,
        "properties": {
          "compiler": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PinnedTool"
              },
              {
                "type": "null"
              }
            ]
          },
          "container_image_digest": {
            "pattern": "^sha256:[a-f0-9]{64}$",
            "title": "Container Image Digest",
            "type": "string"
          },
          "container_image_ref": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Container Image Ref",
            "type": "string"
          },
          "dependencies": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CodeDependency"
            },
            "maxItems": 100,
            "title": "Dependencies",
            "type": "array"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "interpreter": {
            "$ref": "#/components/schemas/PinnedTool"
          },
          "language": {
            "pattern": "^[a-z][a-z0-9_+-]{1,63}$",
            "title": "Language",
            "type": "string"
          },
          "language_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Language Version",
            "type": "string"
          },
          "test_harness": {
            "$ref": "#/components/schemas/PinnedTool"
          }
        },
        "required": [
          "language",
          "language_version",
          "interpreter",
          "test_harness",
          "container_image_digest",
          "container_image_ref",
          "deterministic_seed"
        ],
        "title": "CodeRuntimePins",
        "type": "object"
      },
      "CodeSandboxLimits": {
        "additionalProperties": false,
        "properties": {
          "capabilities_dropped": {
            "const": true,
            "default": true,
            "title": "Capabilities Dropped",
            "type": "boolean"
          },
          "cpu_millis": {
            "maximum": 30000.0,
            "minimum": 100.0,
            "title": "Cpu Millis",
            "type": "integer"
          },
          "memory_bytes": {
            "maximum": 1073741824.0,
            "minimum": 33554432.0,
            "title": "Memory Bytes",
            "type": "integer"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "no_new_privileges": {
            "const": true,
            "default": true,
            "title": "No New Privileges",
            "type": "boolean"
          },
          "open_files": {
            "maximum": 1024.0,
            "minimum": 8.0,
            "title": "Open Files",
            "type": "integer"
          },
          "output_bytes": {
            "maximum": 10000000.0,
            "minimum": 1024.0,
            "title": "Output Bytes",
            "type": "integer"
          },
          "process_count": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Process Count",
            "type": "integer"
          },
          "root_filesystem_read_only": {
            "const": true,
            "default": true,
            "title": "Root Filesystem Read Only",
            "type": "boolean"
          },
          "secrets_forwarded": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 0,
            "title": "Secrets Forwarded",
            "type": "array"
          },
          "teardown_required": {
            "const": true,
            "default": true,
            "title": "Teardown Required",
            "type": "boolean"
          },
          "wall_millis": {
            "maximum": 60000.0,
            "minimum": 100.0,
            "title": "Wall Millis",
            "type": "integer"
          },
          "writable_bytes": {
            "maximum": 268435456.0,
            "minimum": 1048576.0,
            "title": "Writable Bytes",
            "type": "integer"
          }
        },
        "required": [
          "cpu_millis",
          "wall_millis",
          "memory_bytes",
          "process_count",
          "writable_bytes",
          "output_bytes",
          "open_files"
        ],
        "title": "CodeSandboxLimits",
        "type": "object"
      },
      "CodeSandboxReceipt": {
        "additionalProperties": false,
        "properties": {
          "capabilities_dropped": {
            "const": true,
            "default": true,
            "title": "Capabilities Dropped",
            "type": "boolean"
          },
          "container_image_digest": {
            "pattern": "^sha256:[a-f0-9]{64}$",
            "title": "Container Image Digest",
            "type": "string"
          },
          "cpu_limit_millis": {
            "title": "Cpu Limit Millis",
            "type": "integer"
          },
          "hidden_tests_mounted": {
            "const": false,
            "default": false,
            "title": "Hidden Tests Mounted",
            "type": "boolean"
          },
          "memory_limit_bytes": {
            "title": "Memory Limit Bytes",
            "type": "integer"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "no_new_privileges": {
            "const": true,
            "default": true,
            "title": "No New Privileges",
            "type": "boolean"
          },
          "output_limit_bytes": {
            "title": "Output Limit Bytes",
            "type": "integer"
          },
          "process_limit": {
            "title": "Process Limit",
            "type": "integer"
          },
          "root_filesystem_read_only": {
            "const": true,
            "default": true,
            "title": "Root Filesystem Read Only",
            "type": "boolean"
          },
          "sandbox_id": {
            "pattern": "^metis-preview-[a-f0-9]{32}$",
            "title": "Sandbox Id",
            "type": "string"
          },
          "secrets_forwarded": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 0,
            "title": "Secrets Forwarded",
            "type": "array"
          },
          "syscall_profile_ref": {
            "title": "Syscall Profile Ref",
            "type": "string"
          },
          "teardown_confirmed": {
            "const": true,
            "default": true,
            "title": "Teardown Confirmed",
            "type": "boolean"
          },
          "wall_limit_millis": {
            "title": "Wall Limit Millis",
            "type": "integer"
          },
          "writable_limit_bytes": {
            "title": "Writable Limit Bytes",
            "type": "integer"
          }
        },
        "required": [
          "sandbox_id",
          "container_image_digest",
          "syscall_profile_ref",
          "process_limit",
          "memory_limit_bytes",
          "cpu_limit_millis",
          "wall_limit_millis",
          "writable_limit_bytes",
          "output_limit_bytes"
        ],
        "title": "CodeSandboxReceipt",
        "type": "object"
      },
      "CodeScoreResult": {
        "additionalProperties": false,
        "properties": {
          "earned_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Earned Basis Points",
            "type": "integer"
          },
          "passed_threshold": {
            "title": "Passed Threshold",
            "type": "boolean"
          },
          "passing_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Passing Basis Points",
            "type": "integer"
          },
          "possible_basis_points": {
            "const": 10000,
            "default": 10000,
            "title": "Possible Basis Points",
            "type": "integer"
          },
          "raw_test_states": {
            "items": {
              "enum": [
                "pass",
                "fail",
                "runtime_error",
                "timeout",
                "resource_limited",
                "unsafe",
                "unstable",
                "unsupported"
              ],
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Raw Test States",
            "type": "array"
          }
        },
        "required": [
          "earned_basis_points",
          "passing_basis_points",
          "passed_threshold",
          "raw_test_states"
        ],
        "title": "CodeScoreResult",
        "type": "object"
      },
      "CodeScoringPolicy": {
        "additionalProperties": false,
        "properties": {
          "compile_required": {
            "const": true,
            "default": true,
            "title": "Compile Required",
            "type": "boolean"
          },
          "human_can_override_raw_result": {
            "const": false,
            "default": false,
            "title": "Human Can Override Raw Result",
            "type": "boolean"
          },
          "passing_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Passing Basis Points",
            "type": "integer"
          },
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "safety_required": {
            "const": true,
            "default": true,
            "title": "Safety Required",
            "type": "boolean"
          },
          "stability_required": {
            "const": true,
            "default": true,
            "title": "Stability Required",
            "type": "boolean"
          }
        },
        "required": ["policy_id", "policy_version", "policy_sha256", "passing_basis_points"],
        "title": "CodeScoringPolicy",
        "type": "object"
      },
      "CodeScoringRule": {
        "additionalProperties": false,
        "properties": {
          "credit_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Credit Basis Points",
            "type": "integer"
          },
          "method": {
            "enum": ["all", "proportional", "threshold"],
            "title": "Method",
            "type": "string"
          },
          "rule_id": {
            "pattern": "^score:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Rule Id",
            "type": "string"
          },
          "test_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Test Ids",
            "type": "array"
          }
        },
        "required": ["rule_id", "test_ids", "method", "credit_basis_points"],
        "title": "CodeScoringRule",
        "type": "object"
      },
      "CodeSourceArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "content": {
            "maxLength": 200000,
            "title": "Content",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "editable": {
            "title": "Editable",
            "type": "boolean"
          },
          "language": {
            "const": "python",
            "default": "python",
            "title": "Language",
            "type": "string"
          },
          "path": {
            "maxLength": 240,
            "pattern": "^[A-Za-z0-9_.-]+(?:/[A-Za-z0-9_.-]+)*$",
            "title": "Path",
            "type": "string"
          },
          "role": {
            "enum": ["submission", "support"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["artifact_id", "path", "role", "content", "content_sha256", "editable"],
        "title": "CodeSourceArtifact",
        "type": "object"
      },
      "CodeStarterFile": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "maxLength": 200000,
            "title": "Content",
            "type": "string"
          },
          "editable": {
            "title": "Editable",
            "type": "boolean"
          },
          "path": {
            "maxLength": 240,
            "pattern": "^[A-Za-z0-9_.-]+(?:/[A-Za-z0-9_.-]+)*$",
            "title": "Path",
            "type": "string"
          }
        },
        "required": ["path", "content", "editable"],
        "title": "CodeStarterFile",
        "type": "object"
      },
      "CodeTestCase": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Arguments",
            "type": "array"
          },
          "expected_stdout": {
            "maxLength": 100000,
            "title": "Expected Stdout",
            "type": "string"
          },
          "stdin": {
            "default": "",
            "maxLength": 100000,
            "title": "Stdin",
            "type": "string"
          },
          "test_id": {
            "pattern": "^test:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Test Id",
            "type": "string"
          },
          "visibility": {
            "enum": ["visible", "hidden"],
            "title": "Visibility",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["test_id", "visibility", "expected_stdout", "weight_basis_points"],
        "title": "CodeTestCase",
        "type": "object"
      },
      "CodeTestPlan": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/CodeInvocationCase"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "expected_delta": {
            "anyOf": [
              {
                "maxLength": 96,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Delta"
          },
          "generator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CodeCaseGenerator"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "enum": ["example", "property", "metamorphic", "performance", "security"],
            "title": "Kind",
            "type": "string"
          },
          "maximum_output_bytes": {
            "anyOf": [
              {
                "maximum": 10000000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Output Bytes"
          },
          "maximum_wall_millis": {
            "anyOf": [
              {
                "maximum": 60000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Wall Millis"
          },
          "metamorphic_relation": {
            "anyOf": [
              {
                "enum": ["equal_output", "nondecreasing_numeric", "additive_numeric_delta"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metamorphic Relation"
          },
          "repetition": {
            "$ref": "#/components/schemas/CodeRepetitionPolicy"
          },
          "security_boundary": {
            "anyOf": [
              {
                "enum": ["network", "filesystem", "process", "syscall", "secret"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Security Boundary"
          },
          "test_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Test Id",
            "type": "string"
          },
          "visibility": {
            "enum": ["visible", "hidden"],
            "title": "Visibility",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["test_id", "kind", "visibility", "cases", "repetition", "weight_basis_points"],
        "title": "CodeTestPlan",
        "type": "object"
      },
      "CodeToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "CodeToolWitness",
        "type": "object"
      },
      "CodeVerificationProjection": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/CodeVerificationReviewDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/CodeVerificationRunResponse"
          },
          "target_revision_current": {
            "title": "Target Revision Current",
            "type": "boolean"
          }
        },
        "required": ["run", "target_revision_current", "decisions"],
        "title": "CodeVerificationProjection",
        "type": "object"
      },
      "CodeVerificationReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["acknowledge", "request_correction", "escalate_unknown"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "raw_result_overridden": {
            "const": false,
            "default": false,
            "title": "Raw Result Overridden",
            "type": "boolean"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.22.0",
            "default": "5.22.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "run_id",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "expected_run_sha256",
          "self_sha256"
        ],
        "title": "CodeVerificationReviewDecision",
        "type": "object"
      },
      "CodeVerificationReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["acknowledge", "request_correction", "escalate_unknown"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Comment",
            "type": "string"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_run_sha256", "action", "comment"],
        "title": "CodeVerificationReviewRequest",
        "type": "object"
      },
      "CodeVerificationRunRequest": {
        "additionalProperties": false,
        "properties": {
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/CodeSourceArtifact"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Artifacts",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "invocation": {
            "$ref": "#/components/schemas/CodeInvocationContract"
          },
          "limits": {
            "$ref": "#/components/schemas/CodeSandboxLimits"
          },
          "protected_secret_names": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Protected Secret Names",
            "type": "array"
          },
          "risk": {
            "default": "general",
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "runtime": {
            "$ref": "#/components/schemas/CodeRuntimeContract"
          },
          "schema_version": {
            "const": "5.22.0",
            "default": "5.22.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scoring": {
            "$ref": "#/components/schemas/CodeScoringPolicy"
          },
          "target": {
            "$ref": "#/components/schemas/CodeVerificationTarget"
          },
          "tests": {
            "items": {
              "$ref": "#/components/schemas/CodeTestPlan"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Tests",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "target",
          "artifacts",
          "runtime",
          "invocation",
          "tests",
          "scoring",
          "limits"
        ],
        "title": "CodeVerificationRunRequest",
        "type": "object"
      },
      "CodeVerificationRunResponse": {
        "additionalProperties": false,
        "properties": {
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/CodeSourceArtifact"
            },
            "title": "Artifacts",
            "type": "array"
          },
          "compile_result": {
            "$ref": "#/components/schemas/CodeCompileResult"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/CodeEngineWitness"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "invocation": {
            "$ref": "#/components/schemas/CodeInvocationContract"
          },
          "limits": {
            "$ref": "#/components/schemas/CodeSandboxLimits"
          },
          "policy": {
            "$ref": "#/components/schemas/CodePolicyVerdict"
          },
          "protected_secret_names": {
            "items": {
              "type": "string"
            },
            "title": "Protected Secret Names",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "risk": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "runtime": {
            "$ref": "#/components/schemas/CodeRuntimeContract"
          },
          "schema_version": {
            "const": "5.22.0",
            "default": "5.22.0",
            "title": "Schema Version",
            "type": "string"
          },
          "score_result": {
            "$ref": "#/components/schemas/CodeScoreResult"
          },
          "scoring": {
            "$ref": "#/components/schemas/CodeScoringPolicy"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/CodeVerificationTarget"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "test_results": {
            "items": {
              "$ref": "#/components/schemas/CodeRawTestResult"
            },
            "title": "Test Results",
            "type": "array"
          },
          "tests": {
            "items": {
              "$ref": "#/components/schemas/CodeTestPlan"
            },
            "title": "Tests",
            "type": "array"
          }
        },
        "required": [
          "run_id",
          "idempotency_key",
          "target",
          "artifacts",
          "runtime",
          "invocation",
          "tests",
          "scoring",
          "limits",
          "protected_secret_names",
          "risk",
          "compile_result",
          "test_results",
          "score_result",
          "policy",
          "engine",
          "request_sha256",
          "requested_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "CodeVerificationRunResponse",
        "type": "object"
      },
      "CodeVerificationTarget": {
        "additionalProperties": false,
        "properties": {
          "locale": {
            "maxLength": 40,
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["code_item", "worked_solution", "submission"],
            "title": "Target Kind",
            "type": "string"
          }
        },
        "required": ["target_id", "target_kind", "revision_id", "revision_sha256", "locale"],
        "title": "CodeVerificationTarget",
        "type": "object"
      },
      "CodeVerificationWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/CodeEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/CodeVerificationProjection"
            },
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "5.22.0",
            "default": "5.22.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/CodeVerificationWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "runs"],
        "title": "CodeVerificationWorkspaceResponse",
        "type": "object"
      },
      "CodeVerificationWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "minimum": 0.0,
            "title": "Allowed",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "manual_review": {
            "minimum": 0.0,
            "title": "Manual Review",
            "type": "integer"
          },
          "reviewed": {
            "minimum": 0.0,
            "title": "Reviewed",
            "type": "integer"
          },
          "runs": {
            "minimum": 0.0,
            "title": "Runs",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          }
        },
        "required": ["runs", "allowed", "blocked", "manual_review", "stale", "reviewed"],
        "title": "CodeVerificationWorkspaceSummary",
        "type": "object"
      },
      "CohortCell": {
        "additionalProperties": false,
        "properties": {
          "cohort_key": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Cohort Key",
            "type": "string"
          },
          "dimension": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Dimension",
            "type": "string"
          },
          "measured": {
            "$ref": "#/components/schemas/MeasuredValue"
          }
        },
        "required": ["dimension", "cohort_key", "measured"],
        "title": "CohortCell",
        "type": "object"
      },
      "CohortOutcomeRecord": {
        "additionalProperties": false,
        "description": "Counts over a cohort, never a member of one.\n\n``withheld_buckets`` names the labels suppressed for being too small, and\nsuppression is checked as a property of the PUBLISHED SET rather than of one\ncell. ``cohort_size`` is a denominator and is always published, so a single\nwithheld bucket is handed to the reader as ``cohort_size`` minus the rest.\nTwo things therefore hold together whenever anything is withheld: at least\ntwo buckets are, and the residual they share is itself at least the\nreportable minimum, so no one of them is pinned by the subtraction.",
        "properties": {
          "cohort_size": {
            "maximum": 1000000.0,
            "minimum": 10.0,
            "title": "Cohort Size",
            "type": "integer"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Objective Revision Sha256",
            "type": "string"
          },
          "observed_from": {
            "format": "date-time",
            "title": "Observed From",
            "type": "string"
          },
          "observed_to": {
            "format": "date-time",
            "title": "Observed To",
            "type": "string"
          },
          "payload_kind": {
            "const": "cohort_outcome",
            "default": "cohort_outcome",
            "title": "Payload Kind",
            "type": "string"
          },
          "published_buckets": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Published Buckets",
            "type": "array"
          },
          "withheld_buckets": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Withheld Buckets",
            "type": "array"
          }
        },
        "required": [
          "objective_id",
          "objective_revision_sha256",
          "observed_from",
          "observed_to",
          "cohort_size",
          "published_buckets"
        ],
        "title": "CohortOutcomeRecord",
        "type": "object"
      },
      "CohortSpecification": {
        "additionalProperties": false,
        "properties": {
          "cohort_size": {
            "maximum": 2000.0,
            "minimum": 1.0,
            "title": "Cohort Size",
            "type": "integer"
          },
          "personas": {
            "items": {
              "$ref": "#/components/schemas/PersonaDistribution"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Personas",
            "type": "array"
          },
          "seed": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Seed",
            "type": "string"
          },
          "spec_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Spec Id",
            "type": "string"
          },
          "spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Spec Sha256",
            "type": "string"
          },
          "spec_version": {
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$",
            "title": "Spec Version",
            "type": "string"
          }
        },
        "required": ["spec_id", "spec_version", "spec_sha256", "cohort_size", "seed", "personas"],
        "title": "CohortSpecification",
        "type": "object"
      },
      "CohortTable": {
        "additionalProperties": false,
        "description": "Cells over one dimension, and the margin only when it gives nothing away.\n\nThe cells partition their population once, so the margin is their total.\nPublishing it beside all-but-one cell recovers the withheld cell by\nsubtraction; this contract refuses that arrangement rather than documenting\nit as a residual risk.",
        "properties": {
          "cells": {
            "items": {
              "$ref": "#/components/schemas/CohortCell"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Cells",
            "type": "array"
          },
          "dimension": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Dimension",
            "type": "string"
          },
          "margin": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "minimum_cohort": {
            "minimum": 5.0,
            "title": "Minimum Cohort",
            "type": "integer"
          }
        },
        "required": ["metric_id", "dimension", "minimum_cohort", "cells", "margin"],
        "title": "CohortTable",
        "type": "object"
      },
      "CollectionBasis": {
        "additionalProperties": false,
        "description": "The basis on which this material was collected, and when it was recorded.\n\n``recorded_at`` is required and is checked against the material: a basis\nrecorded after the thing it authorises was collected authorised nothing at\nthe time.",
        "properties": {
          "basis": {
            "enum": [
              "explicit_consent",
              "collection_notice",
              "institutional_agreement",
              "approved_research_basis"
            ],
            "title": "Basis",
            "type": "string"
          },
          "notice_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Notice Revision Sha256",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "withdrawable": {
            "title": "Withdrawable",
            "type": "boolean"
          }
        },
        "required": ["basis", "recorded_at", "notice_revision_sha256", "withdrawable"],
        "title": "CollectionBasis",
        "type": "object"
      },
      "CollectionFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluator Id",
            "type": "string"
          }
        },
        "required": ["code", "detail", "evaluator_id", "criterion_id"],
        "title": "CollectionFinding",
        "type": "object"
      },
      "CollectionResult": {
        "additionalProperties": false,
        "properties": {
          "accepted_observations": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorObservation"
            },
            "maxItems": 2000,
            "title": "Accepted Observations",
            "type": "array"
          },
          "blinding_preserved": {
            "title": "Blinding Preserved",
            "type": "boolean"
          },
          "observed_rubric_revision_matches": {
            "title": "Observed Rubric Revision Matches",
            "type": "boolean"
          },
          "rejected_findings": {
            "items": {
              "$ref": "#/components/schemas/CollectionFinding"
            },
            "maxItems": 2000,
            "title": "Rejected Findings",
            "type": "array"
          }
        },
        "required": [
          "accepted_observations",
          "rejected_findings",
          "blinding_preserved",
          "observed_rubric_revision_matches"
        ],
        "title": "CollectionResult",
        "type": "object"
      },
      "CombinedDecision": {
        "additionalProperties": false,
        "properties": {
          "abstaining_families": {
            "items": {
              "enum": ["bkt", "fsrs_5", "graph_tracing", "irt"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Abstaining Families",
            "type": "array"
          },
          "contributing_families": {
            "items": {
              "enum": ["bkt", "fsrs_5", "graph_tracing", "irt"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Contributing Families",
            "type": "array"
          },
          "disagreements": {
            "items": {
              "$ref": "#/components/schemas/ModelDisagreement"
            },
            "maxItems": 6,
            "title": "Disagreements",
            "type": "array"
          },
          "integrity": {
            "$ref": "#/components/schemas/PanelIntegrity"
          },
          "readiness": {
            "items": {
              "$ref": "#/components/schemas/ModelReadiness"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Readiness",
            "type": "array"
          },
          "rule": {
            "const": "every-applicable-model-must-be-ready-and-none-may-be-stale",
            "title": "Rule",
            "type": "string"
          },
          "state": {
            "enum": ["ready", "not_ready", "indeterminate_no_applicable_model"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "rule",
          "state",
          "readiness",
          "contributing_families",
          "abstaining_families",
          "disagreements",
          "integrity"
        ],
        "title": "CombinedDecision",
        "type": "object"
      },
      "CommandLog": {
        "additionalProperties": false,
        "description": "Append-only, and a stop is final.\n\nThe effective state is derived from the whole sequence rather than read off\nthe last entry, and appending a start after a stop is refused \u2014 an experiment\nsomebody halted for a guardrail breach must not be restartable by writing\nanother line.",
        "properties": {
          "commands": {
            "items": {
              "$ref": "#/components/schemas/GuardrailCommand"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Commands",
            "type": "array"
          },
          "effective_state": {
            "enum": ["not_started", "running", "paused", "stopped"],
            "title": "Effective State",
            "type": "string"
          }
        },
        "required": ["commands", "effective_state"],
        "title": "CommandLog",
        "type": "object"
      },
      "CommandProjection": {
        "additionalProperties": false,
        "properties": {
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "record": {
            "$ref": "#/components/schemas/CommandRecord"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "state_after": {
            "$ref": "#/components/schemas/RunControlState"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "command_id",
          "tenant_id",
          "created_at",
          "record_sha256",
          "record",
          "state_after"
        ],
        "title": "CommandProjection",
        "type": "object"
      },
      "CommandRecord": {
        "additionalProperties": false,
        "description": "One command and what it did, immutable once written.",
        "properties": {
          "checkpoint": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Checkpoint"
              },
              {
                "type": "null"
              }
            ]
          },
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "fence_after": {
            "minimum": 1.0,
            "title": "Fence After",
            "type": "integer"
          },
          "fence_before": {
            "minimum": 1.0,
            "title": "Fence Before",
            "type": "integer"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "issued_by_role": {
            "enum": ["run_owner", "course_owner", "operator", "budget_holder"],
            "title": "Issued By Role",
            "type": "string"
          },
          "kind": {
            "enum": ["pause", "resume", "redirect", "cancel", "budget_kill", "replay"],
            "title": "Kind",
            "type": "string"
          },
          "lifecycle_after": {
            "enum": ["queued", "running", "paused", "cancelled", "killed", "failed", "completed"],
            "title": "Lifecycle After",
            "type": "string"
          },
          "lifecycle_before": {
            "enum": ["queued", "running", "paused", "cancelled", "killed", "failed", "completed"],
            "title": "Lifecycle Before",
            "type": "string"
          },
          "outcome": {
            "enum": ["applied", "refused", "already_in_effect"],
            "title": "Outcome",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommandRefusal"
            },
            "maxItems": 20,
            "title": "Refusals",
            "type": "array"
          },
          "replay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReplayLineage"
              },
              {
                "type": "null"
              }
            ]
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.16.0",
            "default": "6.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "spend_after": {
            "$ref": "#/components/schemas/SpendLedger"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "version_after": {
            "minimum": 1.0,
            "title": "Version After",
            "type": "integer"
          },
          "version_before": {
            "minimum": 1.0,
            "title": "Version Before",
            "type": "integer"
          }
        },
        "required": [
          "command_id",
          "run_id",
          "tenant_id",
          "kind",
          "issued_by",
          "issued_by_role",
          "reason",
          "decided_at",
          "outcome",
          "expected_version",
          "version_before",
          "version_after",
          "lifecycle_before",
          "lifecycle_after",
          "fence_before",
          "fence_after",
          "spend_after",
          "record_sha256"
        ],
        "title": "CommandRecord",
        "type": "object"
      },
      "CommandRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "stale_expected_version",
              "role_not_permitted",
              "lifecycle_not_eligible",
              "run_already_terminal",
              "scope_mismatch",
              "no_safe_boundary",
              "revalidation_failed",
              "budget_not_exceeded",
              "replay_would_mutate_source"
            ],
            "title": "Reason",
            "type": "string"
          },
          "subject": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["reason", "subject", "detail"],
        "title": "CommandRefusal",
        "type": "object"
      },
      "CommentAttachment": {
        "additionalProperties": false,
        "properties": {
          "attachment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Attachment Id",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "filename": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Filename",
            "type": "string"
          },
          "media_type": {
            "maxLength": 120,
            "title": "Media Type",
            "type": "string"
          },
          "size_bytes": {
            "exclusiveMinimum": 0.0,
            "maximum": 26214400.0,
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": ["attachment_id", "media_type", "content_sha256", "size_bytes", "filename"],
        "title": "CommentAttachment",
        "type": "object"
      },
      "CommentAuthor": {
        "additionalProperties": false,
        "properties": {
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "role": {
            "enum": [
              "author",
              "reviewer",
              "instructional_designer",
              "accessibility_specialist",
              "integrity_lead"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["digest", "role"],
        "title": "CommentAuthor",
        "type": "object"
      },
      "CommentEdit": {
        "additionalProperties": false,
        "description": "An edit keeps the digest of what was replaced; the words are gone, the fact is not.",
        "properties": {
          "edited_at": {
            "format": "date-time",
            "title": "Edited At",
            "type": "string"
          },
          "previous_body_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Previous Body Sha256",
            "type": "string"
          }
        },
        "required": ["edited_at", "previous_body_sha256"],
        "title": "CommentEdit",
        "type": "object"
      },
      "CommentMention": {
        "additionalProperties": false,
        "properties": {
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "role": {
            "enum": [
              "author",
              "reviewer",
              "instructional_designer",
              "accessibility_specialist",
              "integrity_lead"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["digest", "role"],
        "title": "CommentMention",
        "type": "object"
      },
      "CommentRecord": {
        "additionalProperties": false,
        "description": "One comment. There is no field here for content, an answer, a grade or an approval.",
        "properties": {
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommentAttachment"
            },
            "maxItems": 10,
            "title": "Attachments",
            "type": "array"
          },
          "author": {
            "$ref": "#/components/schemas/CommentAuthor"
          },
          "body": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "comment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Comment Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "edits": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommentEdit"
            },
            "maxItems": 20,
            "title": "Edits",
            "type": "array"
          },
          "mentions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommentMention"
            },
            "maxItems": 20,
            "title": "Mentions",
            "type": "array"
          },
          "parent_comment_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Comment Id"
          },
          "schema_version": {
            "const": "7.7.0",
            "default": "7.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "thread_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Thread Id",
            "type": "string"
          }
        },
        "required": ["comment_id", "thread_id", "author", "body", "created_at"],
        "title": "CommentRecord",
        "type": "object"
      },
      "CommentRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "protection": {
            "anyOf": [
              {
                "enum": [
                  "learner_response_excerpt",
                  "live_assessment_material",
                  "private_source_excerpt"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protection"
          },
          "reason": {
            "enum": [
              "cannot_read_subject",
              "cannot_comment",
              "path_not_readable",
              "anchor_not_applicable",
              "anchor_protected",
              "visibility_above_ceiling",
              "not_visible_to_you",
              "verb_not_applicable",
              "not_the_author",
              "stale_expected_version",
              "wrong_revision"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "CommentRefusal",
        "type": "object"
      },
      "CommentSubject": {
        "additionalProperties": false,
        "description": "What the thread is about, at the exact revision it was written against.",
        "properties": {
          "kind": {
            "enum": [
              "course",
              "lesson",
              "block",
              "objective",
              "rubric",
              "item",
              "response",
              "stimulus",
              "media"
            ],
            "title": "Kind",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["kind", "subject_id", "revision_sha256", "tenant_id"],
        "title": "CommentSubject",
        "type": "object"
      },
      "CommentThread": {
        "additionalProperties": false,
        "description": "A thread: one subject revision, one anchor, one visibility, one status.",
        "properties": {
          "anchor": {
            "discriminator": {
              "mapping": {
                "entity": "#/components/schemas/EntityAnchor",
                "field": "#/components/schemas/FieldAnchor",
                "item_option": "#/components/schemas/ItemOptionAnchor",
                "region": "#/components/schemas/RegionAnchor",
                "rubric_cell": "#/components/schemas/RubricCellAnchor",
                "text": "#/components/schemas/TextAnchor",
                "timecode": "#/components/schemas/TimecodeAnchor"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/EntityAnchor"
              },
              {
                "$ref": "#/components/schemas/FieldAnchor"
              },
              {
                "$ref": "#/components/schemas/TextAnchor"
              },
              {
                "$ref": "#/components/schemas/RegionAnchor"
              },
              {
                "$ref": "#/components/schemas/TimecodeAnchor"
              },
              {
                "$ref": "#/components/schemas/ItemOptionAnchor"
              },
              {
                "$ref": "#/components/schemas/RubricCellAnchor"
              }
            ],
            "title": "Anchor"
          },
          "comments": {
            "items": {
              "$ref": "#/components/schemas/CommentRecord"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Comments",
            "type": "array"
          },
          "opened_at": {
            "format": "date-time",
            "title": "Opened At",
            "type": "string"
          },
          "opened_by": {
            "$ref": "#/components/schemas/CommentAuthor"
          },
          "reopened_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Reopened Count",
            "type": "integer"
          },
          "resolved_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          },
          "resolved_by_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved By Digest"
          },
          "schema_version": {
            "const": "7.7.0",
            "default": "7.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["open", "resolved"],
            "title": "Status",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/CommentSubject"
          },
          "thread_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Thread Id",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          },
          "visibility": {
            "enum": ["author_only", "reviewers", "content_team", "institution"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "thread_id",
          "subject",
          "anchor",
          "visibility",
          "status",
          "opened_by",
          "opened_at",
          "comments",
          "version"
        ],
        "title": "CommentThread",
        "type": "object"
      },
      "Comparison": {
        "additionalProperties": false,
        "description": "What the extraction says, beside what the original says.",
        "properties": {
          "compared_at": {
            "format": "date-time",
            "title": "Compared At",
            "type": "string"
          },
          "differing_spans": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Span"
            },
            "maxItems": 200,
            "title": "Differing Spans",
            "type": "array"
          },
          "excerpt_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt Sha256"
          },
          "extraction_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "original_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Original Sha256"
          },
          "unreadable": {
            "anyOf": [
              {
                "enum": ["protected_source", "bytes_not_held", "locator_unresolvable", "offline"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unreadable"
          },
          "verdict": {
            "enum": ["identical", "whitespace_only", "altered", "not_checkable"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["extraction_id", "verdict", "compared_at"],
        "title": "Comparison",
        "type": "object"
      },
      "CompatibilityFinding": {
        "additionalProperties": false,
        "properties": {
          "blocking": {
            "title": "Blocking",
            "type": "boolean"
          },
          "code": {
            "enum": [
              "binding.compatibility.tool-not-allowlisted",
              "binding.compatibility.source-not-bound",
              "binding.compatibility.locale-not-offered",
              "binding.compatibility.support-not-offered",
              "binding.compatibility.integrity-mode-unsupported",
              "binding.compatibility.allowlisted-tool-never-referenced"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "subject": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["code", "subject", "detail", "blocking"],
        "title": "CompatibilityFinding",
        "type": "object"
      },
      "CompatibilityWindow": {
        "additionalProperties": false,
        "description": "A deprecated code keeps its meaning for sessions recorded inside the window.",
        "properties": {
          "code": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "deprecated_in": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Deprecated In",
            "type": "string"
          },
          "historical_meaning_preserved": {
            "const": true,
            "default": true,
            "title": "Historical Meaning Preserved",
            "type": "boolean"
          },
          "removed_after": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Removed After",
            "type": "string"
          },
          "replaced_by": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Replaced By",
            "type": "string"
          },
          "vocabulary_id": {
            "enum": [
              "assessment.integrity_mode",
              "interlock.mode",
              "tutor_grounding.assessment_mode",
              "tutor_preview.assessment_mode",
              "tutor_binding.integrity_mode",
              "tutoring.integrity_mode",
              "learner.tutor_style"
            ],
            "title": "Vocabulary Id",
            "type": "string"
          }
        },
        "required": ["vocabulary_id", "code", "replaced_by", "deprecated_in", "removed_after"],
        "title": "CompatibilityWindow",
        "type": "object"
      },
      "CompletionCriterion": {
        "additionalProperties": false,
        "properties": {
          "approver_role": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approver Role"
          },
          "comparator": {
            "anyOf": [
              {
                "enum": ["at_least", "greater_than", "equals", "at_most"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comparator"
          },
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "kind": {
            "enum": ["objective_mastery", "assessment_score", "evidence_artifact", "approval"],
            "title": "Kind",
            "type": "string"
          },
          "node_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Node Id",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "threshold_basis_points": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Threshold Basis Points"
          }
        },
        "required": ["criterion_id", "kind", "node_id", "subject_id"],
        "title": "CompletionCriterion",
        "type": "object"
      },
      "CompletionDecision": {
        "additionalProperties": false,
        "properties": {
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "credential_eligibility": {
            "items": {
              "$ref": "#/components/schemas/CredentialEligibility"
            },
            "maxItems": 50,
            "title": "Credential Eligibility",
            "type": "array"
          },
          "credential_issuance_authority": {
            "const": "none",
            "default": "none",
            "title": "Credential Issuance Authority",
            "type": "string"
          },
          "credentials_issued": {
            "const": 0,
            "default": 0,
            "title": "Credentials Issued",
            "type": "integer"
          },
          "outcomes": {
            "items": {
              "$ref": "#/components/schemas/CompletionOutcome"
            },
            "maxItems": 500,
            "title": "Outcomes",
            "type": "array"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "required_count": {
            "minimum": 0.0,
            "title": "Required Count",
            "type": "integer"
          },
          "satisfied_count": {
            "minimum": 0.0,
            "title": "Satisfied Count",
            "type": "integer"
          },
          "state": {
            "enum": [
              "complete",
              "incomplete",
              "entry_not_satisfied",
              "awaiting_approval",
              "indeterminate"
            ],
            "title": "State",
            "type": "string"
          },
          "unsatisfied_criterion_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Unsatisfied Criterion Ids",
            "type": "array"
          }
        },
        "required": [
          "state",
          "complete",
          "satisfied_count",
          "required_count",
          "outcomes",
          "unsatisfied_criterion_ids",
          "credential_eligibility",
          "reason_codes"
        ],
        "title": "CompletionDecision",
        "type": "object"
      },
      "CompletionOutcome": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "kind": {
            "enum": ["objective_mastery", "assessment_score", "evidence_artifact", "approval"],
            "title": "Kind",
            "type": "string"
          },
          "node_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Node Id",
            "type": "string"
          },
          "observed_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Basis Points"
          },
          "required_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required Basis Points"
          },
          "state": {
            "enum": ["satisfied", "unsatisfied", "awaiting_approval", "missing"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "criterion_id",
          "node_id",
          "kind",
          "state",
          "observed_basis_points",
          "required_basis_points",
          "detail"
        ],
        "title": "CompletionOutcome",
        "type": "object"
      },
      "CompletionRule": {
        "additionalProperties": false,
        "properties": {
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/CompletionCriterion"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "issues_credentials": {
            "const": false,
            "default": false,
            "title": "Issues Credentials",
            "type": "boolean"
          },
          "minimum_count": {
            "anyOf": [
              {
                "maximum": 500.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Count"
          },
          "rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Sha256",
            "type": "string"
          },
          "rule_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Rule Version",
            "type": "string"
          },
          "satisfied_by": {
            "enum": ["all_of", "at_least_n"],
            "title": "Satisfied By",
            "type": "string"
          }
        },
        "required": ["rule_id", "rule_version", "rule_sha256", "satisfied_by", "criteria"],
        "title": "CompletionRule",
        "type": "object"
      },
      "CompromiseEvidenceRef": {
        "additionalProperties": false,
        "properties": {
          "access_class": {
            "const": "security_restricted",
            "default": "security_restricted",
            "title": "Access Class",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^compromise-evidence:[A-Za-z0-9._:-]{8,140}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["audit_event", "forensic_snapshot", "verified_report", "public_snapshot"],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "evidence_sha256", "captured_at"],
        "title": "CompromiseEvidenceRef",
        "type": "object"
      },
      "CompromiseIncidentSummary": {
        "additionalProperties": false,
        "properties": {
          "confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 7500.0,
            "title": "Confidence Basis Points",
            "type": "integer"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "excluded_by_appeal": {
            "default": false,
            "title": "Excluded By Appeal",
            "type": "boolean"
          },
          "incident_id": {
            "title": "Incident Id",
            "type": "string"
          },
          "scope": {
            "enum": ["single_actor", "cohort", "institution", "cross_tenant", "public"],
            "title": "Scope",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "signal": {
            "enum": [
              "answer_key_leak",
              "full_item_leak",
              "reconstruction",
              "unauthorized_export",
              "public_sharing",
              "delivery_token_compromise"
            ],
            "title": "Signal",
            "type": "string"
          },
          "status": {
            "enum": ["open", "contained", "remediating", "resolved"],
            "title": "Status",
            "type": "string"
          },
          "verified_at": {
            "format": "date-time",
            "title": "Verified At",
            "type": "string"
          }
        },
        "required": [
          "incident_id",
          "signal",
          "scope",
          "severity",
          "confidence_basis_points",
          "status",
          "verified_at",
          "evidence_sha256"
        ],
        "title": "CompromiseIncidentSummary",
        "type": "object"
      },
      "ComputingAccessibilityEvidence": {
        "additionalProperties": false,
        "properties": {
          "error_descriptions": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Error Descriptions",
            "type": "string"
          },
          "keyboard_operable": {
            "title": "Keyboard Operable",
            "type": "boolean"
          },
          "nonvisual_alternative": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Nonvisual Alternative",
            "type": "string"
          },
          "text_output_available": {
            "title": "Text Output Available",
            "type": "boolean"
          }
        },
        "required": [
          "keyboard_operable",
          "text_output_available",
          "error_descriptions",
          "nonvisual_alternative"
        ],
        "title": "ComputingAccessibilityEvidence",
        "type": "object"
      },
      "ComputingArtifact": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/ComputingAccessibilityEvidence"
          },
          "artifact_kind": {
            "const": "computing_artifact",
            "default": "computing_artifact",
            "title": "Artifact Kind",
            "type": "string"
          },
          "dependencies": {
            "items": {
              "$ref": "#/components/schemas/ComputingDependency"
            },
            "minItems": 1,
            "title": "Dependencies",
            "type": "array"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "integer"
          },
          "input_contract": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Input Contract",
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/ComputingNetworkPolicy"
          },
          "output_contract": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Output Contract",
            "type": "string"
          },
          "reproducibility": {
            "$ref": "#/components/schemas/ReproducibilityEvidence"
          },
          "resources": {
            "$ref": "#/components/schemas/ComputingResourceLimits"
          },
          "runtime": {
            "$ref": "#/components/schemas/ComputingRuntime"
          },
          "security": {
            "$ref": "#/components/schemas/ComputingSecurityEvidence"
          },
          "source_code": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Source Code",
            "type": "string"
          },
          "tests": {
            "items": {
              "$ref": "#/components/schemas/ComputingTestEvidence"
            },
            "minItems": 1,
            "title": "Tests",
            "type": "array"
          }
        },
        "required": [
          "source_code",
          "runtime",
          "dependencies",
          "input_contract",
          "output_contract",
          "tests",
          "deterministic_seed",
          "resources",
          "network",
          "security",
          "accessibility",
          "reproducibility"
        ],
        "title": "ComputingArtifact",
        "type": "object"
      },
      "ComputingDependency": {
        "additionalProperties": false,
        "properties": {
          "integrity": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Integrity",
            "type": "string"
          },
          "name": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["name", "version", "integrity"],
        "title": "ComputingDependency",
        "type": "object"
      },
      "ComputingNetworkPolicy": {
        "additionalProperties": false,
        "properties": {
          "allowed_hosts": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Allowed Hosts",
            "type": "array"
          },
          "mode": {
            "enum": ["denied", "allowlist"],
            "title": "Mode",
            "type": "string"
          }
        },
        "required": ["mode"],
        "title": "ComputingNetworkPolicy",
        "type": "object"
      },
      "ComputingResourceLimits": {
        "additionalProperties": false,
        "properties": {
          "cpu_millis": {
            "maximum": 3600000.0,
            "minimum": 1.0,
            "title": "Cpu Millis",
            "type": "integer"
          },
          "memory_megabytes": {
            "maximum": 1048576.0,
            "minimum": 16.0,
            "title": "Memory Megabytes",
            "type": "integer"
          },
          "timeout_seconds": {
            "maximum": 86400.0,
            "minimum": 1.0,
            "title": "Timeout Seconds",
            "type": "integer"
          }
        },
        "required": ["cpu_millis", "memory_megabytes", "timeout_seconds"],
        "title": "ComputingResourceLimits",
        "type": "object"
      },
      "ComputingRuntime": {
        "additionalProperties": false,
        "properties": {
          "container_digest": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Container Digest",
            "type": "string"
          },
          "language": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Language",
            "type": "string"
          },
          "runtime": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Runtime",
            "type": "string"
          }
        },
        "required": ["language", "runtime", "container_digest"],
        "title": "ComputingRuntime",
        "type": "object"
      },
      "ComputingSecurityEvidence": {
        "additionalProperties": false,
        "properties": {
          "dependency_scan_status": {
            "enum": ["passed", "failed"],
            "title": "Dependency Scan Status",
            "type": "string"
          },
          "sandbox_profile": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Sandbox Profile",
            "type": "string"
          },
          "secret_scan_status": {
            "enum": ["passed", "failed"],
            "title": "Secret Scan Status",
            "type": "string"
          }
        },
        "required": ["sandbox_profile", "secret_scan_status", "dependency_scan_status"],
        "title": "ComputingSecurityEvidence",
        "type": "object"
      },
      "ComputingTestEvidence": {
        "additionalProperties": false,
        "properties": {
          "command": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Command",
            "type": "string"
          },
          "expected": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Expected",
            "type": "string"
          },
          "status": {
            "enum": ["passed", "failed"],
            "title": "Status",
            "type": "string"
          },
          "test_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Test Id",
            "type": "string"
          }
        },
        "required": ["test_id", "command", "expected", "status"],
        "title": "ComputingTestEvidence",
        "type": "object"
      },
      "ConditionOutcome": {
        "additionalProperties": false,
        "properties": {
          "condition_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Condition Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "evidence_recorded_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Recorded At"
          },
          "expired_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expired On"
          },
          "kind": {
            "enum": [
              "prior_credential",
              "prior_pathway",
              "assessment_score",
              "objective_mastery",
              "evidence_artifact",
              "manual_approval"
            ],
            "title": "Kind",
            "type": "string"
          },
          "observed_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Basis Points"
          },
          "required_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required Basis Points"
          },
          "state": {
            "enum": ["satisfied", "unsatisfied", "expired", "review_required", "missing"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "condition_id",
          "kind",
          "state",
          "observed_basis_points",
          "required_basis_points",
          "evidence_recorded_at",
          "expired_on",
          "detail"
        ],
        "title": "ConditionOutcome",
        "type": "object"
      },
      "Confidence": {
        "additionalProperties": false,
        "description": "A point and an interval, and what the interval rests on.\n\nA calibrated confidence names the sample it was calibrated on; a point\nwith no interval, or an interval with no basis, is an assertion.",
        "properties": {
          "basis": {
            "enum": ["calibrated", "heuristic", "human"],
            "title": "Basis",
            "type": "string"
          },
          "interval_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Interval High",
            "type": "number"
          },
          "interval_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Interval Low",
            "type": "number"
          },
          "point": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Point",
            "type": "number"
          },
          "sample_size": {
            "anyOf": [
              {
                "maximum": 10000000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sample Size"
          }
        },
        "required": ["point", "interval_low", "interval_high", "basis"],
        "title": "Confidence",
        "type": "object"
      },
      "ConfirmBody": {
        "properties": {
          "note": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "schedule_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Schedule Digest",
            "type": "string"
          }
        },
        "required": ["schedule_digest"],
        "title": "ConfirmBody",
        "type": "object"
      },
      "ConflictAccessEntry": {
        "additionalProperties": false,
        "description": "Every look at a declaration leaves one of these.",
        "properties": {
          "audience": {
            "enum": ["reviewer", "review_coordinator", "integrity_lead", "review_panel", "author"],
            "title": "Audience",
            "type": "string"
          },
          "declaration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Declaration Id",
            "type": "string"
          },
          "entry_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Entry Id",
            "type": "string"
          },
          "fields_shown": {
            "items": {
              "enum": [
                "existence",
                "conflict_type",
                "relationship",
                "subject",
                "basis",
                "evidence",
                "detection",
                "dates",
                "reviewer_identity"
              ],
              "type": "string"
            },
            "title": "Fields Shown",
            "type": "array"
          },
          "fields_withheld": {
            "items": {
              "enum": [
                "existence",
                "conflict_type",
                "relationship",
                "subject",
                "basis",
                "evidence",
                "detection",
                "dates",
                "reviewer_identity"
              ],
              "type": "string"
            },
            "title": "Fields Withheld",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "viewed_at": {
            "format": "date-time",
            "title": "Viewed At",
            "type": "string"
          },
          "viewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Viewer Digest",
            "type": "string"
          }
        },
        "required": [
          "entry_id",
          "declaration_id",
          "tenant_id",
          "audience",
          "viewer_digest",
          "viewed_at",
          "fields_shown",
          "fields_withheld"
        ],
        "title": "ConflictAccessEntry",
        "type": "object"
      },
      "ConflictBody": {
        "additionalProperties": false,
        "description": "What the store holds, what the caller based its edit on, and the safe diff.",
        "properties": {
          "base_revision": {
            "minimum": 1.0,
            "title": "Base Revision",
            "type": "integer"
          },
          "base_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Base Sha256",
            "type": "string"
          },
          "changes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FieldChange"
            },
            "maxItems": 500,
            "title": "Changes",
            "type": "array"
          },
          "current_revision": {
            "minimum": 1.0,
            "title": "Current Revision",
            "type": "integer"
          },
          "current_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Sha256",
            "type": "string"
          }
        },
        "required": ["current_revision", "current_sha256", "base_revision", "base_sha256"],
        "title": "ConflictBody",
        "type": "object"
      },
      "ConflictDeclaration": {
        "additionalProperties": false,
        "description": "A declared conflict of interest between a would-be decider and a party.",
        "properties": {
          "basis": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Basis",
            "type": "string"
          },
          "conflicted_with_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Conflicted With Digest",
            "type": "string"
          },
          "declared_at": {
            "format": "date-time",
            "title": "Declared At",
            "type": "string"
          },
          "declarer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Declarer Digest",
            "type": "string"
          }
        },
        "required": ["declarer_digest", "conflicted_with_digest", "basis", "declared_at"],
        "title": "ConflictDeclaration",
        "type": "object"
      },
      "ConflictDeclarationForGate": {
        "additionalProperties": false,
        "description": "What the signer declared before signing. Silence is not a declaration.",
        "properties": {
          "declared": {
            "const": true,
            "default": true,
            "title": "Declared",
            "type": "boolean"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "has_conflict": {
            "title": "Has Conflict",
            "type": "boolean"
          }
        },
        "required": ["has_conflict", "detail"],
        "title": "ConflictDeclarationForGate",
        "type": "object"
      },
      "ConflictEvaluation": {
        "additionalProperties": false,
        "description": "What this reviewer may do on this dimension of this subject, and why.",
        "properties": {
          "counts_toward_quorum": {
            "title": "Counts Toward Quorum",
            "type": "boolean"
          },
          "coverage": {
            "$ref": "#/components/schemas/DeclarationCoverage"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "driving_declaration_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Driving Declaration Ids",
            "type": "array"
          },
          "institution_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Id"
          },
          "may_be_assigned": {
            "title": "May Be Assigned",
            "type": "boolean"
          },
          "may_sign_off": {
            "title": "May Sign Off",
            "type": "boolean"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ConflictRefusal"
            },
            "title": "Refusals",
            "type": "array"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ConflictSubject"
          },
          "worst_disposition": {
            "enum": ["permitted", "manageable_with_mitigation", "disqualifying"],
            "title": "Worst Disposition",
            "type": "string"
          }
        },
        "required": [
          "reviewer_digest",
          "dimension",
          "subject",
          "risk",
          "coverage",
          "worst_disposition",
          "may_be_assigned",
          "may_sign_off",
          "counts_toward_quorum"
        ],
        "title": "ConflictEvaluation",
        "type": "object"
      },
      "ConflictEvidenceRef": {
        "additionalProperties": false,
        "description": "A pointer to the document behind a declaration. The document is not copied here.",
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "held_by": {
            "enum": ["reviewer", "coordinator", "institution"],
            "title": "Held By",
            "type": "string"
          },
          "kind": {
            "enum": [
              "contract",
              "publication",
              "employment_record",
              "correspondence",
              "attestation"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "content_sha256", "held_by"],
        "title": "ConflictEvidenceRef",
        "type": "object"
      },
      "ConflictPolicyOverlay": {
        "additionalProperties": false,
        "description": "An institution's additions. Every cell may only be made stricter.",
        "properties": {
          "cells": {
            "items": {
              "maxItems": 3,
              "minItems": 3,
              "prefixItems": [
                {
                  "enum": [
                    "sme_correctness",
                    "pedagogy_alignment",
                    "accessibility",
                    "fairness_cultural",
                    "legal_rights",
                    "publisher_target"
                  ],
                  "type": "string"
                },
                {
                  "enum": [
                    "financial_interest",
                    "employment",
                    "authorship",
                    "close_personal",
                    "institutional",
                    "competing_product",
                    "prior_involvement",
                    "supervisory"
                  ],
                  "type": "string"
                },
                {
                  "enum": ["permitted", "manageable_with_mitigation", "disqualifying"],
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "maxItems": 48,
            "minItems": 1,
            "title": "Cells",
            "type": "array"
          },
          "institution_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          }
        },
        "required": ["institution_id", "cells"],
        "title": "ConflictPolicyOverlay",
        "type": "object"
      },
      "ConflictRefusal": {
        "additionalProperties": false,
        "properties": {
          "declaration_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Declaration Ids",
            "type": "array"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "disposition": {
            "anyOf": [
              {
                "enum": ["permitted", "manageable_with_mitigation", "disqualifying"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disposition"
          },
          "reason": {
            "enum": [
              "declaration_missing",
              "declaration_stale",
              "declaration_does_not_cover_subject",
              "unsure_unresolved",
              "disqualifying_conflict",
              "mitigation_not_approved",
              "recused"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "ConflictRefusal",
        "type": "object"
      },
      "ConflictSubject": {
        "additionalProperties": false,
        "description": "What the conflict is with. A person is a digest, never a name.",
        "properties": {
          "person_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Person Digest"
          },
          "scope": {
            "enum": ["content", "source", "institution", "person"],
            "title": "Scope",
            "type": "string"
          },
          "subject_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Id"
          }
        },
        "required": ["scope"],
        "title": "ConflictSubject",
        "type": "object"
      },
      "ConflictSummary": {
        "additionalProperties": false,
        "description": "What moved underneath an edit.",
        "properties": {
          "base_revision": {
            "minimum": 1.0,
            "title": "Base Revision",
            "type": "integer"
          },
          "changed_paths": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Changed Paths",
            "type": "array"
          },
          "current_revision": {
            "minimum": 1.0,
            "title": "Current Revision",
            "type": "integer"
          },
          "withheld": {
            "default": false,
            "title": "Withheld",
            "type": "boolean"
          }
        },
        "required": ["current_revision", "base_revision"],
        "title": "ConflictSummary",
        "type": "object"
      },
      "ConflictView": {
        "additionalProperties": false,
        "description": "One declaration as one audience sees it. A withheld field is absent, not blank.",
        "properties": {
          "arose_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arose At"
          },
          "audience": {
            "enum": ["reviewer", "review_coordinator", "integrity_lead", "review_panel", "author"],
            "title": "Audience",
            "type": "string"
          },
          "basis": {
            "anyOf": [
              {
                "maxLength": 600,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Basis"
          },
          "conflict_type": {
            "anyOf": [
              {
                "enum": [
                  "financial_interest",
                  "employment",
                  "authorship",
                  "close_personal",
                  "institutional",
                  "competing_product",
                  "prior_involvement",
                  "supervisory"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Conflict Type"
          },
          "declaration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Declaration Id",
            "type": "string"
          },
          "detection_kind": {
            "anyOf": [
              {
                "enum": [
                  "shared_affiliation",
                  "co_authorship",
                  "same_institution",
                  "prior_review_of_subject",
                  "supplier_relationship"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detection Kind"
          },
          "ends_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ends At"
          },
          "evidence_ids": {
            "anyOf": [
              {
                "items": {
                  "maxLength": 160,
                  "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Ids"
          },
          "exists": {
            "const": true,
            "default": true,
            "title": "Exists",
            "type": "boolean"
          },
          "fields_withheld": {
            "items": {
              "enum": [
                "existence",
                "conflict_type",
                "relationship",
                "subject",
                "basis",
                "evidence",
                "detection",
                "dates",
                "reviewer_identity"
              ],
              "type": "string"
            },
            "title": "Fields Withheld",
            "type": "array"
          },
          "relationship": {
            "anyOf": [
              {
                "enum": [
                  "self",
                  "immediate_family",
                  "household",
                  "employer",
                  "former_employer",
                  "advisee",
                  "collaborator"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relationship"
          },
          "reviewer_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Digest"
          },
          "subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConflictSubject"
              },
              {
                "type": "null"
              }
            ]
          },
          "viewed_at": {
            "format": "date-time",
            "title": "Viewed At",
            "type": "string"
          },
          "viewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Viewer Digest",
            "type": "string"
          }
        },
        "required": ["declaration_id", "audience", "viewer_digest", "viewed_at", "fields_withheld"],
        "title": "ConflictView",
        "type": "object"
      },
      "ConflictViewRequest": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["reviewer", "review_coordinator", "integrity_lead", "review_panel", "author"],
            "title": "Audience",
            "type": "string"
          },
          "declaration": {
            "$ref": "#/components/schemas/ReviewerConflictDeclaration"
          }
        },
        "required": ["declaration", "audience"],
        "title": "ConflictViewRequest",
        "type": "object"
      },
      "ConflictVisibilityProbe": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["reviewer", "review_coordinator", "integrity_lead", "review_panel", "author"],
            "title": "Audience",
            "type": "string"
          },
          "fields_shown": {
            "items": {
              "enum": [
                "existence",
                "conflict_type",
                "relationship",
                "subject",
                "basis",
                "evidence",
                "detection",
                "dates",
                "reviewer_identity"
              ],
              "type": "string"
            },
            "title": "Fields Shown",
            "type": "array"
          },
          "fields_withheld": {
            "items": {
              "enum": [
                "existence",
                "conflict_type",
                "relationship",
                "subject",
                "basis",
                "evidence",
                "detection",
                "dates",
                "reviewer_identity"
              ],
              "type": "string"
            },
            "title": "Fields Withheld",
            "type": "array"
          }
        },
        "required": ["audience", "fields_shown", "fields_withheld"],
        "title": "ConflictVisibilityProbe",
        "type": "object"
      },
      "ConnectionView": {
        "additionalProperties": false,
        "description": "One connection, as the operations screen shows it.",
        "properties": {
          "capabilities": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CapabilityView"
            },
            "title": "Capabilities",
            "type": "array"
          },
          "cleared_privacy_class": {
            "default": "pseudonymous",
            "enum": ["public", "pseudonymous", "identifying", "sensitive"],
            "title": "Cleared Privacy Class",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "connection_id": {
            "title": "Connection Id",
            "type": "string"
          },
          "credential_fingerprint": {
            "default": "",
            "title": "Credential Fingerprint",
            "type": "string"
          },
          "credential_owner": {
            "default": "",
            "title": "Credential Owner",
            "type": "string"
          },
          "credential_ref": {
            "default": "",
            "title": "Credential Ref",
            "type": "string"
          },
          "credential_rotation_due": {
            "default": false,
            "title": "Credential Rotation Due",
            "type": "boolean"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "endpoint": {
            "title": "Endpoint",
            "type": "string"
          },
          "institution_id": {
            "title": "Institution Id",
            "type": "string"
          },
          "kind": {
            "enum": ["lti", "oneroster", "lms", "lrs", "webhook", "credential"],
            "title": "Kind",
            "type": "string"
          },
          "last_failure_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Failure At"
          },
          "last_success_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Success At"
          },
          "open_operations": {
            "default": 0,
            "title": "Open Operations",
            "type": "integer"
          },
          "owner": {
            "default": "",
            "title": "Owner",
            "type": "string"
          },
          "status": {
            "enum": ["live", "degraded", "not_configured", "disabled", "unknown"],
            "title": "Status",
            "type": "string"
          },
          "status_detail": {
            "default": "",
            "title": "Status Detail",
            "type": "string"
          },
          "unprobed": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unprobed",
            "type": "array"
          },
          "unresolved_operations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unresolved Operations",
            "type": "array"
          },
          "version": {
            "default": 1,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "connection_id",
          "institution_id",
          "kind",
          "display_name",
          "endpoint",
          "status",
          "config_sha256"
        ],
        "title": "ConnectionView",
        "type": "object"
      },
      "ConnectorIngestionInput": {
        "description": "A paginated LMS or repository API snapshot using a vault-backed credential.",
        "properties": {
          "connector_kind": {
            "enum": ["lms", "repository"],
            "title": "Connector Kind",
            "type": "string"
          },
          "credential_ref": {
            "maxLength": 512,
            "minLength": 9,
            "title": "Credential Ref",
            "type": "string"
          },
          "endpoint": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Endpoint",
            "type": "string"
          },
          "external_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "External Id",
            "type": "string"
          },
          "external_version": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Version"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "maximum_pages": {
            "default": 20,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Maximum Pages",
            "type": "integer"
          },
          "page_size": {
            "default": 100,
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Page Size",
            "type": "integer"
          },
          "provider": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "required_scopes": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Required Scopes",
            "type": "array"
          }
        },
        "required": [
          "label",
          "connector_kind",
          "provider",
          "endpoint",
          "credential_ref",
          "required_scopes",
          "external_id"
        ],
        "title": "ConnectorIngestionInput",
        "type": "object"
      },
      "ContentChange": {
        "additionalProperties": false,
        "properties": {
          "changed_at": {
            "format": "date-time",
            "title": "Changed At",
            "type": "string"
          },
          "content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Content Id",
            "type": "string"
          },
          "from_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "From Revision Sha256",
            "type": "string"
          },
          "kinds": {
            "items": {
              "enum": [
                "text_edit",
                "answer_key_change",
                "media_replaced",
                "alt_text_edit",
                "source_citation_change",
                "rights_metadata_change",
                "locale_change",
                "catalogue_metadata_change"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Kinds",
            "type": "array"
          },
          "to_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "content_id",
          "from_revision_sha256",
          "to_revision_sha256",
          "kinds",
          "changed_at"
        ],
        "title": "ContentChange",
        "type": "object"
      },
      "ContentDescriptor": {
        "additionalProperties": false,
        "properties": {
          "author_digests": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Author Digests",
            "type": "array"
          },
          "content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Content Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "course",
              "lesson",
              "item",
              "assessment",
              "answer",
              "rationale",
              "feedback",
              "hint"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "targets": {
            "items": {
              "enum": ["learner-web", "learner-mobile", "lms-qti", "print"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": [
          "content_id",
          "revision_sha256",
          "kind",
          "risk",
          "locale",
          "targets",
          "author_digests"
        ],
        "title": "ContentDescriptor",
        "type": "object"
      },
      "ContentField": {
        "additionalProperties": false,
        "description": "One named field of a proposal's content.\n\nThe value is a list of strings whatever the kind, so a payload cannot smuggle\na nested object past a shallow scan. `kind` says how the caller intends it to\nbe read, and the engine checks the values against it.",
        "properties": {
          "kind": {
            "enum": ["text", "text_list", "identifier_list", "integer", "integer_list"],
            "title": "Kind",
            "type": "string"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "pattern": "^[a-z][a-z0-9_]{0,79}$",
            "title": "Name",
            "type": "string"
          },
          "values": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Values",
            "type": "array"
          }
        },
        "required": ["name", "kind", "values"],
        "title": "ContentField",
        "type": "object"
      },
      "ContentFlagResponse": {
        "properties": {
          "author_id": {
            "title": "Author Id",
            "type": "string"
          },
          "author_name": {
            "title": "Author Name",
            "type": "string"
          },
          "content_id": {
            "title": "Content Id",
            "type": "string"
          },
          "content_preview": {
            "title": "Content Preview",
            "type": "string"
          },
          "content_type": {
            "enum": ["course_content", "comment", "review", "forum_post"],
            "title": "Content Type",
            "type": "string"
          },
          "flag_reason": {
            "enum": ["inappropriate", "copyright", "spam", "misleading", "harassment", "off_topic"],
            "title": "Flag Reason",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "reported_date": {
            "format": "date-time",
            "title": "Reported Date",
            "type": "string"
          },
          "reporter_id": {
            "title": "Reporter Id",
            "type": "string"
          },
          "reporter_name": {
            "title": "Reporter Name",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "enum": ["pending", "reviewed", "resolved"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "content_id",
          "content_type",
          "content_preview",
          "author_name",
          "author_id",
          "flag_reason",
          "severity",
          "reporter_name",
          "reporter_id",
          "reported_date",
          "status"
        ],
        "title": "ContentFlagResponse",
        "type": "object"
      },
      "ContentFreshnessAdmissionDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["allow", "warn", "block"],
            "title": "Action",
            "type": "string"
          },
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "source_verdict_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Verdict Id"
          },
          "state": {
            "enum": ["current", "due", "stale", "blocked", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ContentSubjectRevision"
          },
          "surface": {
            "enum": ["tutor_prompt", "assessment", "build", "publication", "delivery"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": [
          "subject",
          "surface",
          "state",
          "allowed",
          "action",
          "reason_codes",
          "source_verdict_id",
          "policy_sha256",
          "evaluated_at"
        ],
        "title": "ContentFreshnessAdmissionDecision",
        "type": "object"
      },
      "ContentFreshnessAdmissionRequest": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "reason": {
            "maxLength": 1000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.14.0",
            "default": "5.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ContentSubjectRevision"
          },
          "surface": {
            "enum": ["tutor_prompt", "assessment", "build", "publication", "delivery"],
            "title": "Surface",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "subject", "surface", "evaluated_at", "reason"],
        "title": "ContentFreshnessAdmissionRequest",
        "type": "object"
      },
      "ContentFreshnessCatalog": {
        "additionalProperties": false,
        "properties": {
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "verdicts": {
            "items": {
              "$ref": "#/components/schemas/ContentFreshnessSummary"
            },
            "title": "Verdicts",
            "type": "array"
          }
        },
        "required": ["verdicts"],
        "title": "ContentFreshnessCatalog",
        "type": "object"
      },
      "ContentFreshnessHistoryEntry": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "state": {
            "enum": ["current", "due", "stale", "blocked", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "trigger_id": {
            "title": "Trigger Id",
            "type": "string"
          },
          "trigger_kind": {
            "enum": ["review", "dependency_signal", "admission_recheck"],
            "title": "Trigger Kind",
            "type": "string"
          },
          "verdict_id": {
            "title": "Verdict Id",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          }
        },
        "required": [
          "verdict_id",
          "review_id",
          "state",
          "trigger_kind",
          "trigger_id",
          "evaluated_at",
          "verdict_sha256"
        ],
        "title": "ContentFreshnessHistoryEntry",
        "type": "object"
      },
      "ContentFreshnessPolicy": {
        "additionalProperties": false,
        "properties": {
          "authority_contract": {
            "const": "metis.grounded-content:1.0.0",
            "default": "metis.grounded-content:1.0.0",
            "title": "Authority Contract",
            "type": "string"
          },
          "conflicting_current_evidence_detected": {
            "const": true,
            "default": true,
            "title": "Conflicting Current Evidence Detected",
            "type": "boolean"
          },
          "content_kinds": {
            "items": {
              "enum": ["lesson", "item", "answer", "rationale", "feedback", "hint"],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Content Kinds",
            "type": "array"
          },
          "dependency_changes_detected": {
            "const": true,
            "default": true,
            "title": "Dependency Changes Detected",
            "type": "boolean"
          },
          "dependency_kinds": {
            "items": {
              "enum": ["source", "claim", "citation", "standard", "objective", "tool", "policy"],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Dependency Kinds",
            "type": "array"
          },
          "enforcement": {
            "items": {
              "$ref": "#/components/schemas/FreshnessEnforcementRule"
            },
            "maxItems": 30,
            "minItems": 30,
            "title": "Enforcement",
            "type": "array"
          },
          "factual_temporal_expiry_detected": {
            "const": true,
            "default": true,
            "title": "Factual Temporal Expiry Detected",
            "type": "boolean"
          },
          "policy_id": {
            "const": "metis.content-answer-freshness",
            "default": "metis.content-answer-freshness",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "prior_review_evidence_preserved": {
            "const": true,
            "default": true,
            "title": "Prior Review Evidence Preserved",
            "type": "boolean"
          },
          "risk_rules": {
            "items": {
              "$ref": "#/components/schemas/ContentFreshnessRiskRule"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Risk Rules",
            "type": "array"
          },
          "schema_version": {
            "const": "5.14.0",
            "default": "5.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_retractions_detected": {
            "const": true,
            "default": true,
            "title": "Source Retractions Detected",
            "type": "boolean"
          },
          "source_updates_detected": {
            "const": true,
            "default": true,
            "title": "Source Updates Detected",
            "type": "boolean"
          },
          "standard_supersession_detected": {
            "const": true,
            "default": true,
            "title": "Standard Supersession Detected",
            "type": "boolean"
          },
          "states": {
            "items": {
              "enum": ["current", "due", "stale", "blocked", "unknown", "not_applicable"],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "States",
            "type": "array"
          }
        },
        "required": [
          "content_kinds",
          "dependency_kinds",
          "states",
          "risk_rules",
          "enforcement",
          "policy_sha256"
        ],
        "title": "ContentFreshnessPolicy",
        "type": "object"
      },
      "ContentFreshnessReview": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable"],
            "title": "Applicability",
            "type": "string"
          },
          "applicability_reason": {
            "maxLength": 1000,
            "minLength": 12,
            "title": "Applicability Reason",
            "type": "string"
          },
          "dependencies": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExactDependencyBinding"
            },
            "maxItems": 200,
            "title": "Dependencies",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^freshness-review:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "observations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DependencyObservation"
            },
            "maxItems": 200,
            "title": "Observations",
            "type": "array"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "review_evidence": {
            "items": {
              "$ref": "#/components/schemas/FreshnessEvidenceRef"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Review Evidence",
            "type": "array"
          },
          "review_id": {
            "pattern": "^freshness-review:[A-Za-z0-9._:-]{6,140}$",
            "title": "Review Id",
            "type": "string"
          },
          "review_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Sha256",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "schema_version": {
            "const": "5.14.0",
            "default": "5.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ContentSubjectRevision"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "uses": {
            "items": {
              "enum": [
                "authoring",
                "tutor_prompt",
                "assessment",
                "build",
                "publication",
                "delivery"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Uses",
            "type": "array"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "subject",
          "risk",
          "uses",
          "applicability",
          "applicability_reason",
          "reviewer_id",
          "reviewed_at",
          "evaluated_at",
          "review_evidence",
          "reason",
          "idempotency_key",
          "review_sha256"
        ],
        "title": "ContentFreshnessReview",
        "type": "object"
      },
      "ContentFreshnessReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable"],
            "title": "Applicability",
            "type": "string"
          },
          "applicability_reason": {
            "maxLength": 1000,
            "minLength": 12,
            "title": "Applicability Reason",
            "type": "string"
          },
          "dependencies": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExactDependencyBinding"
            },
            "maxItems": 200,
            "title": "Dependencies",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^freshness-review:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "observations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DependencyObservation"
            },
            "maxItems": 200,
            "title": "Observations",
            "type": "array"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "review_evidence": {
            "items": {
              "$ref": "#/components/schemas/FreshnessEvidenceRef"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Review Evidence",
            "type": "array"
          },
          "review_id": {
            "pattern": "^freshness-review:[A-Za-z0-9._:-]{6,140}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "schema_version": {
            "const": "5.14.0",
            "default": "5.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ContentSubjectRevision"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "uses": {
            "items": {
              "enum": [
                "authoring",
                "tutor_prompt",
                "assessment",
                "build",
                "publication",
                "delivery"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Uses",
            "type": "array"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "subject",
          "risk",
          "uses",
          "applicability",
          "applicability_reason",
          "reviewer_id",
          "reviewed_at",
          "evaluated_at",
          "review_evidence",
          "reason",
          "idempotency_key"
        ],
        "title": "ContentFreshnessReviewRequest",
        "type": "object"
      },
      "ContentFreshnessRiskRule": {
        "additionalProperties": false,
        "properties": {
          "due_window_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Due Window Days",
            "type": "integer"
          },
          "expiry_forces_block_for_uses": {
            "items": {
              "enum": [
                "authoring",
                "tutor_prompt",
                "assessment",
                "build",
                "publication",
                "delivery"
              ],
              "type": "string"
            },
            "title": "Expiry Forces Block For Uses",
            "type": "array"
          },
          "maximum_review_age_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Maximum Review Age Days",
            "type": "integer"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          }
        },
        "required": [
          "risk",
          "maximum_review_age_days",
          "due_window_days",
          "expiry_forces_block_for_uses"
        ],
        "title": "ContentFreshnessRiskRule",
        "type": "object"
      },
      "ContentFreshnessSummary": {
        "additionalProperties": false,
        "properties": {
          "blocked_surfaces": {
            "items": {
              "enum": ["tutor_prompt", "assessment", "build", "publication", "delivery"],
              "type": "string"
            },
            "title": "Blocked Surfaces",
            "type": "array"
          },
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "state": {
            "enum": ["current", "due", "stale", "blocked", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ContentSubjectRevision"
          },
          "verdict_id": {
            "title": "Verdict Id",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          }
        },
        "required": [
          "verdict_id",
          "review_id",
          "subject",
          "risk",
          "state",
          "blocked_surfaces",
          "due_at",
          "expires_at",
          "evaluated_at",
          "verdict_sha256"
        ],
        "title": "ContentFreshnessSummary",
        "type": "object"
      },
      "ContentFreshnessVerdict": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable"],
            "title": "Applicability",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/FreshnessFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "previous_verdict_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Verdict Id"
          },
          "prior_review_evidence_preserved": {
            "const": true,
            "default": true,
            "title": "Prior Review Evidence Preserved",
            "type": "boolean"
          },
          "propagation": {
            "items": {
              "$ref": "#/components/schemas/FreshnessPropagationDecision"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Propagation",
            "type": "array"
          },
          "remediation_required": {
            "title": "Remediation Required",
            "type": "boolean"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "review_window": {
            "$ref": "#/components/schemas/FreshnessReviewWindow"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "schema_version": {
            "const": "5.14.0",
            "default": "5.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": ["current", "due", "stale", "blocked", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "state_reason_codes": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "State Reason Codes",
            "type": "array"
          },
          "subject": {
            "$ref": "#/components/schemas/ContentSubjectRevision"
          },
          "trigger_id": {
            "title": "Trigger Id",
            "type": "string"
          },
          "trigger_kind": {
            "enum": ["review", "dependency_signal", "admission_recheck"],
            "title": "Trigger Kind",
            "type": "string"
          },
          "uses": {
            "items": {
              "enum": [
                "authoring",
                "tutor_prompt",
                "assessment",
                "build",
                "publication",
                "delivery"
              ],
              "type": "string"
            },
            "title": "Uses",
            "type": "array"
          },
          "verdict_id": {
            "pattern": "^freshness-verdict:[a-f0-9]{32}$",
            "title": "Verdict Id",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          }
        },
        "required": [
          "verdict_id",
          "review_id",
          "subject",
          "risk",
          "uses",
          "applicability",
          "state",
          "state_reason_codes",
          "findings",
          "review_window",
          "propagation",
          "remediation_required",
          "trigger_kind",
          "trigger_id",
          "policy_sha256",
          "evidence_sha256",
          "evaluated_at",
          "verdict_sha256"
        ],
        "title": "ContentFreshnessVerdict",
        "type": "object"
      },
      "ContentFreshnessWorkspace": {
        "additionalProperties": false,
        "properties": {
          "history": {
            "items": {
              "$ref": "#/components/schemas/ContentFreshnessHistoryEntry"
            },
            "minItems": 1,
            "title": "History",
            "type": "array"
          },
          "policy": {
            "$ref": "#/components/schemas/ContentFreshnessPolicy"
          },
          "review": {
            "$ref": "#/components/schemas/ContentFreshnessReview"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/DependencyFreshnessSignal"
            },
            "title": "Signals",
            "type": "array"
          },
          "verdict": {
            "$ref": "#/components/schemas/ContentFreshnessVerdict"
          }
        },
        "required": ["policy", "review", "verdict", "signals", "history"],
        "title": "ContentFreshnessWorkspace",
        "type": "object"
      },
      "ContentReviewTemplate": {
        "additionalProperties": false,
        "description": "Versioned. Carries all six dimensions; the publisher signs after every other.",
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/TemplateApplicability"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/DimensionRequirement"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Dimensions",
            "type": "array"
          },
          "platform": {
            "const": true,
            "default": true,
            "title": "Platform",
            "type": "boolean"
          },
          "schema_version": {
            "const": "7.6.0",
            "default": "7.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Template Sha256",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["template_id", "version", "applicability", "dimensions", "template_sha256"],
        "title": "ContentReviewTemplate",
        "type": "object"
      },
      "ContentReviewTemplateReport": {
        "additionalProperties": false,
        "properties": {
          "change_impact": {
            "items": {
              "$ref": "#/components/schemas/ChangeImpactProbe"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Change Impact",
            "type": "array"
          },
          "cross_dimension_signoff_unconstructible": {
            "title": "Cross Dimension Signoff Unconstructible",
            "type": "boolean"
          },
          "eligibility_probes": {
            "items": {
              "$ref": "#/components/schemas/EligibilityCheck"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Eligibility Probes",
            "type": "array"
          },
          "every_refusal_reason_reached": {
            "title": "Every Refusal Reason Reached",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "overlay_property_held": {
            "title": "Overlay Property Held",
            "type": "boolean"
          },
          "overlay_removal_unconstructible": {
            "title": "Overlay Removal Unconstructible",
            "type": "boolean"
          },
          "overlay_trials": {
            "minimum": 1.0,
            "title": "Overlay Trials",
            "type": "integer"
          },
          "required_role_matrix": {
            "items": {
              "$ref": "#/components/schemas/RoleMatrixRow"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Required Role Matrix",
            "type": "array"
          },
          "sample_effective": {
            "$ref": "#/components/schemas/EffectiveTemplate"
          },
          "sample_refusals": {
            "items": {
              "$ref": "#/components/schemas/SignoffRefusal"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Sample Refusals",
            "type": "array"
          },
          "sample_status": {
            "$ref": "#/components/schemas/ReviewStatus"
          },
          "schema_version": {
            "const": "7.6.0",
            "default": "7.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sequence_probe": {
            "$ref": "#/components/schemas/DimensionStatus"
          }
        },
        "required": [
          "generated_at",
          "required_role_matrix",
          "eligibility_probes",
          "every_refusal_reason_reached",
          "cross_dimension_signoff_unconstructible",
          "change_impact",
          "overlay_trials",
          "overlay_property_held",
          "overlay_removal_unconstructible",
          "sample_effective",
          "sample_status",
          "sequence_probe",
          "sample_refusals"
        ],
        "title": "ContentReviewTemplateReport",
        "type": "object"
      },
      "ContentSubjectRevision": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "content_kind": {
            "enum": ["lesson", "item", "answer", "rationale", "feedback", "hint"],
            "title": "Content Kind",
            "type": "string"
          },
          "course_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "lesson_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "subject_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,179}$",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["content_kind", "subject_id", "revision", "revision_sha256"],
        "title": "ContentSubjectRevision",
        "type": "object"
      },
      "ContextExpression": {
        "additionalProperties": false,
        "description": "Whether one canonical can be said in one context, and by which code.",
        "properties": {
          "axis": {
            "enum": ["stakes", "posture", "stance", "style"],
            "title": "Axis",
            "type": "string"
          },
          "canonical": {
            "title": "Canonical",
            "type": "string"
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "context": {
            "enum": ["assessment_context", "tutor_config", "tutor_session", "api", "ui_label"],
            "title": "Context",
            "type": "string"
          },
          "expressible": {
            "title": "Expressible",
            "type": "boolean"
          },
          "vocabulary_id": {
            "anyOf": [
              {
                "enum": [
                  "assessment.integrity_mode",
                  "interlock.mode",
                  "tutor_grounding.assessment_mode",
                  "tutor_preview.assessment_mode",
                  "tutor_binding.integrity_mode",
                  "tutoring.integrity_mode",
                  "learner.tutor_style"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vocabulary Id"
          }
        },
        "required": ["axis", "canonical", "context", "vocabulary_id", "code", "expressible"],
        "title": "ContextExpression",
        "type": "object"
      },
      "ContextVerification": {
        "additionalProperties": false,
        "properties": {
          "failures": {
            "default": [],
            "items": {
              "enum": [
                "interlock.context.missing",
                "interlock.context.signing-not-configured",
                "interlock.context.signature-invalid",
                "interlock.context.not-yet-valid",
                "interlock.context.expired",
                "interlock.context.outside-window",
                "interlock.context.conflicting-attempt",
                "interlock.context.conflicting-actor",
                "interlock.context.conflicting-session",
                "interlock.context.stale-institution-policy"
              ],
              "type": "string"
            },
            "maxItems": 12,
            "title": "Failures",
            "type": "array"
          },
          "freshness_checked": {
            "title": "Freshness Checked",
            "type": "boolean"
          },
          "signature_checked": {
            "title": "Signature Checked",
            "type": "boolean"
          },
          "verified": {
            "title": "Verified",
            "type": "boolean"
          }
        },
        "required": ["verified", "signature_checked", "freshness_checked"],
        "title": "ContextVerification",
        "type": "object"
      },
      "ContractRow": {
        "additionalProperties": false,
        "description": "One ratified contract, and the state of its persistence.",
        "properties": {
          "aggregate_roots": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Aggregate Roots",
            "type": "array"
          },
          "match_rule": {
            "enum": ["model_module", "table_name_prefix", "unmatched"],
            "title": "Match Rule",
            "type": "string"
          },
          "medium": {
            "enum": ["ratified_database", "file_store", "in_memory_only"],
            "title": "Medium",
            "type": "string"
          },
          "module": {
            "pattern": "^[a-z][a-z0-9_]{2,79}$",
            "title": "Module",
            "type": "string"
          },
          "owning_cell": {
            "pattern": "^M\\d+\\.\\d+$",
            "title": "Owning Cell",
            "type": "string"
          },
          "payload_columns": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Payload Columns",
            "type": "array"
          },
          "reusable_columns": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "Reusable Columns",
            "type": "array"
          },
          "reusable_indexes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "Reusable Indexes",
            "type": "array"
          },
          "schema_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Schema Version",
            "type": "string"
          },
          "tables": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Tables",
            "type": "array"
          },
          "tables_without_tenant_index": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Tables Without Tenant Index",
            "type": "array"
          },
          "typed_fields": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "Typed Fields",
            "type": "array"
          },
          "untyped_fields": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "Untyped Fields",
            "type": "array"
          },
          "verdict": {
            "enum": ["typed", "payload_backed", "unbacked_fields", "file_store_only", "absent"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["module", "schema_version", "owning_cell", "medium", "match_rule", "verdict"],
        "title": "ContractRow",
        "type": "object"
      },
      "ContributingOverlay": {
        "additionalProperties": false,
        "properties": {
          "overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Overlay Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "scope": {
            "enum": ["platform", "region", "institution", "program", "course", "learner_support"],
            "title": "Scope",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["overlay_id", "version", "scope", "revision_sha256"],
        "title": "ContributingOverlay",
        "type": "object"
      },
      "ControlCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["eligibility", "pause", "redirect", "cancel", "budget", "replay"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "ControlCorpusCaseResult",
        "type": "object"
      },
      "ControlCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["eligibility", "pause", "redirect", "cancel", "budget", "replay"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "ControlCorpusMetric",
        "type": "object"
      },
      "ControlEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/ControlCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.16-agent-command-v1",
            "default": "metis-m6.16-agent-command-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "eligibility_matrix": {
            "items": {
              "$ref": "#/components/schemas/EligibilityCell"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Eligibility Matrix",
            "type": "array"
          },
          "every_race_resolved": {
            "title": "Every Race Resolved",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/ControlCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "races": {
            "items": {
              "$ref": "#/components/schemas/RaceProbe"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Races",
            "type": "array"
          },
          "roles_per_command": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Roles Per Command",
            "type": "array"
          },
          "schema_version": {
            "const": "6.16.0",
            "default": "6.16.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "races",
          "every_race_resolved",
          "eligibility_matrix",
          "roles_per_command"
        ],
        "title": "ControlEvaluationReport",
        "type": "object"
      },
      "ConversionLink": {
        "additionalProperties": false,
        "description": "The canonical record a capture became, as a new revision of it.\n\nA CONVERSION IS A NEW REVISION, NOT A MUTATION. The capture keeps its own\nidentity and points at what was made; nothing rewrites the capture into the\nrecord, because then the thing a reviewer approved and the thing that went\nout would have the same id and no way to tell them apart.",
        "properties": {
          "converted_at": {
            "format": "date-time",
            "title": "Converted At",
            "type": "string"
          },
          "converted_by": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Converted By",
            "type": "string"
          },
          "edits": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Edits",
            "type": "array"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "maxLength": 60,
            "minLength": 3,
            "title": "Target Kind",
            "type": "string"
          },
          "target_revision": {
            "minimum": 1.0,
            "title": "Target Revision",
            "type": "integer"
          }
        },
        "required": ["target_kind", "target_id", "target_revision", "converted_by", "converted_at"],
        "title": "ConversionLink",
        "type": "object"
      },
      "ConvertBody": {
        "description": "What a conversion needs. The target text is here so the service can\nrefuse a feedback capture being republished verbatim.",
        "properties": {
          "edits": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Edits",
            "type": "array"
          },
          "target_id": {
            "maxLength": 160,
            "minLength": 3,
            "title": "Target Id",
            "type": "string"
          },
          "target_revision": {
            "minimum": 1.0,
            "title": "Target Revision",
            "type": "integer"
          },
          "target_text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Target Text",
            "type": "string"
          }
        },
        "required": ["target_id", "target_revision", "target_text"],
        "title": "ConvertBody",
        "type": "object"
      },
      "CorpusCalibration": {
        "additionalProperties": false,
        "properties": {
          "approved_by": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Approved By",
            "type": "array"
          },
          "calibrated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Calibrated At"
          },
          "metric_evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Metric Evidence Refs",
            "type": "array"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "status": {
            "enum": ["unassessed", "candidate", "validated", "ratified", "rejected", "expired"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "metric_evidence_refs", "approved_by", "rationale"],
        "title": "CorpusCalibration",
        "type": "object"
      },
      "CorpusCoverage": {
        "additionalProperties": false,
        "properties": {
          "disciplines": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Disciplines",
            "type": "array"
          },
          "jurisdictions": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Jurisdictions",
            "type": "array"
          },
          "known_gaps": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Known Gaps",
            "type": "array"
          },
          "learner_populations": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Learner Populations",
            "type": "array"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "temporal_end": {
            "format": "date-time",
            "title": "Temporal End",
            "type": "string"
          },
          "temporal_start": {
            "format": "date-time",
            "title": "Temporal Start",
            "type": "string"
          }
        },
        "required": [
          "disciplines",
          "locales",
          "learner_populations",
          "jurisdictions",
          "temporal_start",
          "temporal_end",
          "known_gaps"
        ],
        "title": "CorpusCoverage",
        "type": "object"
      },
      "CorpusPrivacy": {
        "additionalProperties": false,
        "properties": {
          "classification": {
            "enum": ["public", "internal", "confidential", "restricted"],
            "title": "Classification",
            "type": "string"
          },
          "consent_or_policy_basis": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Consent Or Policy Basis",
            "type": "string"
          },
          "deidentification_method": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Deidentification Method",
            "type": "string"
          },
          "deletion_procedure_ref": {
            "maxLength": 2048,
            "minLength": 4,
            "title": "Deletion Procedure Ref",
            "type": "string"
          },
          "personal_data": {
            "title": "Personal Data",
            "type": "boolean"
          },
          "privacy_assessment_ref": {
            "maxLength": 2048,
            "minLength": 4,
            "title": "Privacy Assessment Ref",
            "type": "string"
          },
          "retention_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retention Until"
          },
          "sensitive_attributes": {
            "title": "Sensitive Attributes",
            "type": "boolean"
          }
        },
        "required": [
          "classification",
          "personal_data",
          "sensitive_attributes",
          "deidentification_method",
          "consent_or_policy_basis",
          "deletion_procedure_ref",
          "privacy_assessment_ref"
        ],
        "title": "CorpusPrivacy",
        "type": "object"
      },
      "CorpusProvenanceSource": {
        "additionalProperties": false,
        "properties": {
          "acquired_at": {
            "format": "date-time",
            "title": "Acquired At",
            "type": "string"
          },
          "custodian": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Custodian",
            "type": "string"
          },
          "source_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_uri": {
            "maxLength": 2048,
            "minLength": 4,
            "title": "Source Uri",
            "type": "string"
          },
          "transformation_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Transformation Refs",
            "type": "array"
          }
        },
        "required": [
          "source_id",
          "source_uri",
          "source_sha256",
          "custodian",
          "acquired_at",
          "transformation_refs"
        ],
        "title": "CorpusProvenanceSource",
        "type": "object"
      },
      "CorpusRights": {
        "additionalProperties": false,
        "properties": {
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "lawful_basis": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Lawful Basis",
            "type": "string"
          },
          "license_spdx": {
            "maxLength": 160,
            "minLength": 1,
            "title": "License Spdx",
            "type": "string"
          },
          "permitted_uses": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Permitted Uses",
            "type": "array"
          },
          "prohibited_uses": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Prohibited Uses",
            "type": "array"
          },
          "rights_holder": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Rights Holder",
            "type": "string"
          },
          "territory": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Territory",
            "type": "array"
          }
        },
        "required": [
          "license_spdx",
          "rights_holder",
          "lawful_basis",
          "permitted_uses",
          "prohibited_uses",
          "territory",
          "evidence_refs"
        ],
        "title": "CorpusRights",
        "type": "object"
      },
      "CorpusSplit": {
        "additionalProperties": false,
        "properties": {
          "record_count": {
            "minimum": 0.0,
            "title": "Record Count",
            "type": "integer"
          },
          "role": {
            "enum": ["train", "validation", "test", "calibration", "challenge", "holdout"],
            "title": "Role",
            "type": "string"
          },
          "selection_method": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Selection Method",
            "type": "string"
          },
          "split_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Split Id",
            "type": "string"
          },
          "split_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Split Sha256",
            "type": "string"
          }
        },
        "required": ["split_id", "role", "record_count", "split_sha256", "selection_method"],
        "title": "CorpusSplit",
        "type": "object"
      },
      "CorpusVersionRecord": {
        "additionalProperties": false,
        "properties": {
          "calibration": {
            "$ref": "#/components/schemas/CorpusCalibration"
          },
          "corpus_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "coverage": {
            "$ref": "#/components/schemas/CorpusCoverage"
          },
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "labels": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "lifecycle": {
            "enum": ["draft", "active", "deprecated", "withdrawn"],
            "title": "Lifecycle",
            "type": "string"
          },
          "lifecycle_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Lifecycle Reason",
            "type": "string"
          },
          "manifest": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "owner": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "privacy": {
            "$ref": "#/components/schemas/CorpusPrivacy"
          },
          "provenance": {
            "items": {
              "$ref": "#/components/schemas/CorpusProvenanceSource"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Provenance",
            "type": "array"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "registered_by": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Registered By",
            "type": "string"
          },
          "registry_id": {
            "pattern": "^corpus-version:[a-f0-9]{64}$",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "rights": {
            "$ref": "#/components/schemas/CorpusRights"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "splits": {
            "items": {
              "$ref": "#/components/schemas/CorpusSplit"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Splits",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "corpus_id",
          "version",
          "corpus_sha256",
          "manifest",
          "labels",
          "splits",
          "provenance",
          "rights",
          "coverage",
          "privacy",
          "calibration",
          "lifecycle",
          "effective_from",
          "lifecycle_reason",
          "owner",
          "evidence_refs",
          "registry_id",
          "registry_sha256",
          "registered_by",
          "registered_at"
        ],
        "title": "CorpusVersionRecord",
        "type": "object"
      },
      "CorpusVersionRegistration": {
        "additionalProperties": false,
        "properties": {
          "calibration": {
            "$ref": "#/components/schemas/CorpusCalibration"
          },
          "corpus_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "coverage": {
            "$ref": "#/components/schemas/CorpusCoverage"
          },
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "labels": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "lifecycle": {
            "enum": ["draft", "active", "deprecated", "withdrawn"],
            "title": "Lifecycle",
            "type": "string"
          },
          "lifecycle_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Lifecycle Reason",
            "type": "string"
          },
          "manifest": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "owner": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "privacy": {
            "$ref": "#/components/schemas/CorpusPrivacy"
          },
          "provenance": {
            "items": {
              "$ref": "#/components/schemas/CorpusProvenanceSource"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Provenance",
            "type": "array"
          },
          "rights": {
            "$ref": "#/components/schemas/CorpusRights"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "splits": {
            "items": {
              "$ref": "#/components/schemas/CorpusSplit"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Splits",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "corpus_id",
          "version",
          "corpus_sha256",
          "manifest",
          "labels",
          "splits",
          "provenance",
          "rights",
          "coverage",
          "privacy",
          "calibration",
          "lifecycle",
          "effective_from",
          "lifecycle_reason",
          "owner",
          "evidence_refs"
        ],
        "title": "CorpusVersionRegistration",
        "type": "object"
      },
      "CorrectionApplied": {
        "additionalProperties": false,
        "description": "What an integrity lead changed, before and after. A correction that changes nothing is not one.",
        "properties": {
          "after": {
            "maxLength": 200,
            "minLength": 1,
            "title": "After",
            "type": "string"
          },
          "before": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Before",
            "type": "string"
          },
          "field": {
            "enum": ["score", "consequence", "remedy", "case_state"],
            "title": "Field",
            "type": "string"
          },
          "kind": {
            "enum": [
              "none",
              "grade_recalculation",
              "consequence_reversal",
              "remedy_substitution",
              "case_reopened"
            ],
            "title": "Kind",
            "type": "string"
          },
          "trigger_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Trigger Id",
            "type": "string"
          }
        },
        "required": ["trigger_id", "kind", "field", "before", "after"],
        "title": "CorrectionApplied",
        "type": "object"
      },
      "CorrectionDecision": {
        "additionalProperties": false,
        "description": "An immutable decision on a request. A later decision is another record.",
        "properties": {
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decided By Digest",
            "type": "string"
          },
          "decided_by_role": {
            "enum": ["reviewer", "approver"],
            "title": "Decided By Role",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "kind": {
            "enum": ["approve", "reject", "request_changes"],
            "title": "Kind",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "schema_version": {
            "const": "7.10.0",
            "default": "7.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status_after": {
            "enum": ["requested", "in_review", "changes_requested", "approved", "rejected"],
            "title": "Status After",
            "type": "string"
          },
          "status_before": {
            "enum": ["requested", "in_review", "changes_requested", "approved", "rejected"],
            "title": "Status Before",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "request_id",
          "kind",
          "decided_by_digest",
          "decided_by_role",
          "decided_at",
          "rationale",
          "status_before",
          "status_after"
        ],
        "title": "CorrectionDecision",
        "type": "object"
      },
      "CorrectionEvidenceRef": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "remark",
              "rubric_note",
              "appeal_outcome",
              "scanner_report",
              "moderation_record"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "content_sha256"],
        "title": "CorrectionEvidenceRef",
        "type": "object"
      },
      "CorrectionQueueItem": {
        "additionalProperties": false,
        "description": "A request as a reviewer sees it in the queue, with derived urgency.",
        "properties": {
          "already_published_downstream": {
            "title": "Already Published Downstream",
            "type": "boolean"
          },
          "current_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Value"
          },
          "delta": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delta"
          },
          "downstream_count": {
            "minimum": 0.0,
            "title": "Downstream Count",
            "type": "integer"
          },
          "evidence_count": {
            "minimum": 0.0,
            "title": "Evidence Count",
            "type": "integer"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "proposed_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Value"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "status": {
            "enum": ["requested", "in_review", "changes_requested", "approved", "rejected"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "request_id",
          "grade_id",
          "status",
          "requested_at",
          "already_published_downstream",
          "downstream_count",
          "evidence_count",
          "learner_digest"
        ],
        "title": "CorrectionQueueItem",
        "type": "object"
      },
      "CorrectionRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "scorer_cannot_review",
              "reviewer_cannot_approve",
              "requester_cannot_decide",
              "value_off_scale",
              "value_unchanged",
              "stale_expected_version",
              "wrong_status",
              "target_not_current",
              "item_revision_moved",
              "learner_not_noticed"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "CorrectionRefusal",
        "type": "object"
      },
      "CorrectionRequest": {
        "additionalProperties": false,
        "description": "A request to change one grade, bound to the exact event it disputes.",
        "properties": {
          "downstream": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DownstreamImpact"
            },
            "maxItems": 10,
            "title": "Downstream",
            "type": "array"
          },
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CorrectionEvidenceRef"
            },
            "maxItems": 20,
            "title": "Evidence",
            "type": "array"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "proposed_kind": {
            "enum": ["scored", "rescored", "corrected", "voided", "restored"],
            "title": "Proposed Kind",
            "type": "string"
          },
          "proposed_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Value"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Requested By Digest",
            "type": "string"
          },
          "requested_by_role": {
            "enum": ["learner", "guardian", "teacher", "assessor", "admin"],
            "title": "Requested By Role",
            "type": "string"
          },
          "schema_version": {
            "const": "7.10.0",
            "default": "7.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["requested", "in_review", "changes_requested", "approved", "rejected"],
            "title": "Status",
            "type": "string"
          },
          "target_event_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Event Id",
            "type": "string"
          },
          "target_sequence": {
            "minimum": 1.0,
            "title": "Target Sequence",
            "type": "integer"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "request_id",
          "tenant_id",
          "grade_id",
          "target_event_id",
          "target_sequence",
          "proposed_kind",
          "reason",
          "requested_by_digest",
          "requested_by_role",
          "requested_at",
          "status",
          "expected_version"
        ],
        "title": "CorrectionRequest",
        "type": "object"
      },
      "CorrectionTrigger": {
        "additionalProperties": false,
        "description": "The correction an outcome calls for \u2014 a separate record for a separate actor.\n\n``performed`` is a ``Literal[False]``: this record asks; it never does. The\nintegrity lead who carries it out records that in the gradebook, not here.",
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "kind": {
            "enum": [
              "none",
              "grade_recalculation",
              "consequence_reversal",
              "remedy_substitution",
              "case_reopened"
            ],
            "title": "Kind",
            "type": "string"
          },
          "outcome_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Outcome Id",
            "type": "string"
          },
          "outcome_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outcome Sha256",
            "type": "string"
          },
          "performed": {
            "const": false,
            "default": false,
            "title": "Performed",
            "type": "boolean"
          },
          "required_role": {
            "const": "integrity_lead",
            "default": "integrity_lead",
            "title": "Required Role",
            "type": "string"
          },
          "trigger_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Trigger Id",
            "type": "string"
          }
        },
        "required": ["trigger_id", "outcome_id", "outcome_sha256", "kind", "detail"],
        "title": "CorrectionTrigger",
        "type": "object"
      },
      "CorrelationGroup": {
        "additionalProperties": false,
        "properties": {
          "basis": {
            "enum": [
              "shared_model",
              "shared_prompt",
              "shared_provider",
              "shared_training_data",
              "shared_tool",
              "shared_retrieval_index"
            ],
            "title": "Basis",
            "type": "string"
          },
          "dependency_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Dependency Id",
            "type": "string"
          },
          "group_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Group Id",
            "type": "string"
          },
          "member_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 2,
            "title": "Member Evaluator Ids",
            "type": "array"
          }
        },
        "required": ["group_id", "basis", "dependency_id", "member_evaluator_ids"],
        "title": "CorrelationGroup",
        "type": "object"
      },
      "CostEnvelope": {
        "additionalProperties": false,
        "properties": {
          "currency": {
            "enum": ["usd", "eur", "gbp"],
            "title": "Currency",
            "type": "string"
          },
          "max_monthly_minor_units": {
            "exclusiveMinimum": 0.0,
            "maximum": 100000000.0,
            "title": "Max Monthly Minor Units",
            "type": "integer"
          },
          "per_request_ceiling_minor_units": {
            "exclusiveMinimum": 0.0,
            "maximum": 1000000.0,
            "title": "Per Request Ceiling Minor Units",
            "type": "integer"
          }
        },
        "required": ["currency", "max_monthly_minor_units", "per_request_ceiling_minor_units"],
        "title": "CostEnvelope",
        "type": "object"
      },
      "CostEstimate": {
        "additionalProperties": false,
        "description": "What the server thinks this will cost, before anything is dispatched.",
        "properties": {
          "estimated_cents": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Estimated Cents",
            "type": "integer"
          },
          "estimated_tokens": {
            "minimum": 1.0,
            "title": "Estimated Tokens",
            "type": "integer"
          },
          "model": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Model",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Provider",
            "type": "string"
          },
          "reserved": {
            "title": "Reserved",
            "type": "boolean"
          }
        },
        "required": ["estimated_cents", "estimated_tokens", "provider", "model", "reserved"],
        "title": "CostEstimate",
        "type": "object"
      },
      "Counterexample": {
        "additionalProperties": false,
        "description": "A signal in the cluster that points the other way.",
        "properties": {
          "detail": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          }
        },
        "required": ["signal_id", "detail"],
        "title": "Counterexample",
        "type": "object"
      },
      "CourseApprovalRequest": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "default": "",
            "maxLength": 4000,
            "title": "Comment",
            "type": "string"
          }
        },
        "required": ["action"],
        "title": "CourseApprovalRequest",
        "type": "object"
      },
      "CourseApprovalResponse": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "course": {
            "$ref": "#/components/schemas/ManagedCourseResponse"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_by": {
            "title": "Reviewed By",
            "type": "string"
          }
        },
        "required": ["course_id", "action", "comment", "reviewed_by", "reviewed_at", "course"],
        "title": "CourseApprovalResponse",
        "type": "object"
      },
      "CourseBoardCard": {
        "additionalProperties": false,
        "properties": {
          "board_group": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Board Group",
            "type": "string"
          },
          "child_count": {
            "minimum": 0.0,
            "title": "Child Count",
            "type": "integer"
          },
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "entity_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Entity Id",
            "type": "string"
          },
          "entity_kind": {
            "$ref": "#/components/schemas/BoardEntityKind"
          },
          "maturity": {
            "$ref": "#/components/schemas/MaturityState"
          },
          "open_path": {
            "pattern": "^/",
            "title": "Open Path",
            "type": "string"
          },
          "order": {
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "transitions": {
            "items": {
              "$ref": "#/components/schemas/MaturityTransitionOption"
            },
            "title": "Transitions",
            "type": "array"
          }
        },
        "required": [
          "entity_kind",
          "entity_id",
          "course_id",
          "tenant_id",
          "title",
          "maturity",
          "revision",
          "revision_sha256",
          "order",
          "board_group",
          "child_count",
          "open_path",
          "transitions"
        ],
        "title": "CourseBoardCard",
        "type": "object"
      },
      "CourseBoardColumn": {
        "additionalProperties": false,
        "properties": {
          "cards": {
            "items": {
              "$ref": "#/components/schemas/CourseBoardCard"
            },
            "title": "Cards",
            "type": "array"
          },
          "count": {
            "minimum": 0.0,
            "title": "Count",
            "type": "integer"
          },
          "label": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "maturity": {
            "$ref": "#/components/schemas/MaturityState"
          }
        },
        "required": ["maturity", "label", "count", "cards"],
        "title": "CourseBoardColumn",
        "type": "object"
      },
      "CourseBoardCreateCourseRequest": {
        "additionalProperties": false,
        "properties": {
          "board_group": {
            "default": "Unassigned",
            "maxLength": 160,
            "minLength": 1,
            "title": "Board Group",
            "type": "string"
          },
          "category": {
            "default": "general",
            "maxLength": 100,
            "minLength": 1,
            "title": "Category",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "difficulty": {
            "default": "beginner",
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "estimated_hours": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Hours"
          },
          "expected_board_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Board Sha256",
            "type": "string"
          },
          "slug": {
            "maxLength": 500,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
            "title": "Slug",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["expected_board_sha256", "title", "slug"],
        "title": "CourseBoardCreateCourseRequest",
        "type": "object"
      },
      "CourseBoardCreateModuleRequest": {
        "additionalProperties": false,
        "properties": {
          "board_group": {
            "default": "Unassigned",
            "maxLength": 160,
            "minLength": 1,
            "title": "Board Group",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "estimated_minutes": {
            "anyOf": [
              {
                "maximum": 5000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Minutes"
          },
          "expected_board_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Board Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["expected_board_sha256", "expected_course_revision", "title"],
        "title": "CourseBoardCreateModuleRequest",
        "type": "object"
      },
      "CourseBoardFilter": {
        "additionalProperties": false,
        "properties": {
          "group_by": {
            "$ref": "#/components/schemas/BoardGroupMode"
          },
          "maturity": {
            "items": {
              "$ref": "#/components/schemas/MaturityState"
            },
            "title": "Maturity",
            "type": "array"
          },
          "search": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Search"
          }
        },
        "required": ["group_by", "maturity"],
        "title": "CourseBoardFilter",
        "type": "object"
      },
      "CourseBoardGroup": {
        "additionalProperties": false,
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/CourseBoardColumn"
            },
            "title": "Columns",
            "type": "array"
          },
          "group_key": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Group Key",
            "type": "string"
          },
          "label": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          }
        },
        "required": ["group_key", "label", "columns"],
        "title": "CourseBoardGroup",
        "type": "object"
      },
      "CourseBoardGroupRequest": {
        "additionalProperties": false,
        "properties": {
          "board_group": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Board Group",
            "type": "string"
          },
          "entity_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Entity Id",
            "type": "string"
          },
          "entity_kind": {
            "$ref": "#/components/schemas/BoardEntityKind"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          }
        },
        "required": ["entity_kind", "entity_id", "expected_revision", "board_group"],
        "title": "CourseBoardGroupRequest",
        "type": "object"
      },
      "CourseBoardHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "chain_valid": {
            "title": "Chain Valid",
            "type": "boolean"
          },
          "entity_id": {
            "title": "Entity Id",
            "type": "string"
          },
          "entity_kind": {
            "$ref": "#/components/schemas/BoardEntityKind"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/CourseBoardTransitionRecord"
            },
            "title": "Events",
            "type": "array"
          }
        },
        "required": ["entity_kind", "entity_id", "events", "chain_valid"],
        "title": "CourseBoardHistoryResponse",
        "type": "object"
      },
      "CourseBoardMutationResponse": {
        "additionalProperties": false,
        "properties": {
          "canonical_board_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Canonical Board Sha256",
            "type": "string"
          },
          "card": {
            "$ref": "#/components/schemas/CourseBoardCard"
          }
        },
        "required": ["card", "canonical_board_sha256"],
        "title": "CourseBoardMutationResponse",
        "type": "object"
      },
      "CourseBoardReorderRequest": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "expected_board_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Board Sha256",
            "type": "string"
          },
          "ordered_entity_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Ordered Entity Ids",
            "type": "array"
          },
          "scope": {
            "$ref": "#/components/schemas/BoardScope"
          }
        },
        "required": ["scope", "expected_board_sha256", "ordered_entity_ids"],
        "title": "CourseBoardReorderRequest",
        "type": "object"
      },
      "CourseBoardReorderResponse": {
        "additionalProperties": false,
        "properties": {
          "canonical_board_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Canonical Board Sha256",
            "type": "string"
          },
          "cards": {
            "items": {
              "$ref": "#/components/schemas/CourseBoardCard"
            },
            "title": "Cards",
            "type": "array"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "scope": {
            "$ref": "#/components/schemas/BoardScope"
          }
        },
        "required": ["scope", "canonical_board_sha256", "cards"],
        "title": "CourseBoardReorderResponse",
        "type": "object"
      },
      "CourseBoardTransitionRecord": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "blockers": {
            "items": {
              "$ref": "#/components/schemas/BoardGateCheck"
            },
            "title": "Blockers",
            "type": "array"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "entity_id": {
            "title": "Entity Id",
            "type": "string"
          },
          "entity_kind": {
            "$ref": "#/components/schemas/BoardEntityKind"
          },
          "event_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Event Sha256",
            "type": "string"
          },
          "expected_revision": {
            "title": "Expected Revision",
            "type": "integer"
          },
          "from_maturity": {
            "$ref": "#/components/schemas/MaturityState"
          },
          "prerequisites": {
            "items": {
              "$ref": "#/components/schemas/BoardGateCheck"
            },
            "title": "Prerequisites",
            "type": "array"
          },
          "previous_event_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Event Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "resulting_revision": {
            "title": "Resulting Revision",
            "type": "integer"
          },
          "review_effect": {
            "title": "Review Effect",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "to_maturity": {
            "$ref": "#/components/schemas/MaturityState"
          },
          "transition_id": {
            "title": "Transition Id",
            "type": "string"
          },
          "version_effect": {
            "title": "Version Effect",
            "type": "string"
          }
        },
        "required": [
          "transition_id",
          "entity_kind",
          "entity_id",
          "course_id",
          "tenant_id",
          "from_maturity",
          "to_maturity",
          "expected_revision",
          "resulting_revision",
          "actor_id",
          "actor_role",
          "reason",
          "prerequisites",
          "blockers",
          "review_effect",
          "version_effect",
          "event_sha256",
          "created_at"
        ],
        "title": "CourseBoardTransitionRecord",
        "type": "object"
      },
      "CourseBoardTransitionRequest": {
        "additionalProperties": false,
        "properties": {
          "entity_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Entity Id",
            "type": "string"
          },
          "entity_kind": {
            "$ref": "#/components/schemas/BoardEntityKind"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "to_maturity": {
            "$ref": "#/components/schemas/MaturityState"
          }
        },
        "required": ["entity_kind", "entity_id", "expected_revision", "to_maturity", "reason"],
        "title": "CourseBoardTransitionRequest",
        "type": "object"
      },
      "CourseBoardTransitionResponse": {
        "additionalProperties": false,
        "properties": {
          "canonical_board_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Canonical Board Sha256",
            "type": "string"
          },
          "card": {
            "$ref": "#/components/schemas/CourseBoardCard"
          },
          "transition": {
            "$ref": "#/components/schemas/CourseBoardTransitionRecord"
          }
        },
        "required": ["card", "transition", "canonical_board_sha256"],
        "title": "CourseBoardTransitionResponse",
        "type": "object"
      },
      "CourseBoardView": {
        "additionalProperties": false,
        "properties": {
          "canonical_board_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Canonical Board Sha256",
            "type": "string"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "filter": {
            "$ref": "#/components/schemas/CourseBoardFilter"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "groups": {
            "items": {
              "$ref": "#/components/schemas/CourseBoardGroup"
            },
            "title": "Groups",
            "type": "array"
          },
          "schema_version": {
            "const": "3.1.0",
            "default": "3.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/BoardScope"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "total_count": {
            "minimum": 0.0,
            "title": "Total Count",
            "type": "integer"
          },
          "visible_count": {
            "minimum": 0.0,
            "title": "Visible Count",
            "type": "integer"
          }
        },
        "required": [
          "scope",
          "tenant_id",
          "canonical_board_sha256",
          "filter",
          "total_count",
          "visible_count",
          "groups",
          "generated_at"
        ],
        "title": "CourseBoardView",
        "type": "object"
      },
      "CourseCreate": {
        "description": "Schema for creating a new course.",
        "properties": {
          "category": {
            "default": "general",
            "maxLength": 100,
            "title": "Category",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "difficulty": {
            "default": "beginner",
            "pattern": "^(beginner|intermediate|advanced|expert)$",
            "title": "Difficulty",
            "type": "string"
          },
          "estimated_hours": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Hours"
          },
          "short_description": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Short Description"
          },
          "slug": {
            "maxLength": 500,
            "minLength": 1,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
            "title": "Slug",
            "type": "string"
          },
          "tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "thumbnail_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thumbnail Url"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["title", "slug"],
        "title": "CourseCreate",
        "type": "object"
      },
      "CourseLecturePackageResponse": {
        "properties": {
          "available_locales": {
            "items": {
              "type": "string"
            },
            "title": "Available Locales",
            "type": "array"
          },
          "caption_locales": {
            "items": {
              "type": "string"
            },
            "title": "Caption Locales",
            "type": "array"
          },
          "course_id": {
            "format": "uuid",
            "title": "Course Id",
            "type": "string"
          },
          "course_slug": {
            "title": "Course Slug",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "export_bundles": {
            "items": {
              "$ref": "#/components/schemas/LectureExportBundleResponse"
            },
            "title": "Export Bundles",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/LectureLessonPackageResponse"
            },
            "title": "Lessons",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "presentation_template": {
            "title": "Presentation Template",
            "type": "string"
          },
          "product_tier": {
            "default": "prerecorded_lecturer",
            "title": "Product Tier",
            "type": "string"
          },
          "pronunciation_overrides": {
            "items": {
              "$ref": "#/components/schemas/LecturePronunciationOverride"
            },
            "title": "Pronunciation Overrides",
            "type": "array"
          },
          "render_batches": {
            "items": {
              "$ref": "#/components/schemas/LectureRenderBatchResponse"
            },
            "title": "Render Batches",
            "type": "array"
          },
          "runtime_tier": {
            "default": "rendered_media_pipeline",
            "title": "Runtime Tier",
            "type": "string"
          },
          "status": {
            "default": "rendered",
            "title": "Status",
            "type": "string"
          },
          "subtitle_formats": {
            "items": {
              "enum": ["vtt", "srt"],
              "type": "string"
            },
            "title": "Subtitle Formats",
            "type": "array"
          },
          "target_locale": {
            "title": "Target Locale",
            "type": "string"
          },
          "transcript_locales": {
            "items": {
              "type": "string"
            },
            "title": "Transcript Locales",
            "type": "array"
          },
          "voice_pack_id": {
            "title": "Voice Pack Id",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "course_id",
          "course_slug",
          "course_title",
          "target_locale",
          "voice_pack_id",
          "presentation_template",
          "generated_at"
        ],
        "title": "CourseLecturePackageResponse",
        "type": "object"
      },
      "CourseLinkedConceptGraphResponse": {
        "description": "Course-scoped graph payload for learner and admin visualization surfaces.",
        "properties": {
          "concept_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Concept Count",
            "type": "integer"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "focus_concepts": {
            "items": {
              "type": "string"
            },
            "title": "Focus Concepts",
            "type": "array"
          },
          "graph": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceConceptGraphResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Id"
          },
          "package_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Summary"
          },
          "package_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Title"
          },
          "prerequisite_edge_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Prerequisite Edge Count",
            "type": "integer"
          },
          "prerequisite_roots": {
            "items": {
              "type": "string"
            },
            "title": "Prerequisite Roots",
            "type": "array"
          },
          "status": {
            "enum": ["ready", "missing_package", "missing_graph"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["course_id", "status"],
        "title": "CourseLinkedConceptGraphResponse",
        "type": "object"
      },
      "CourseListResponse": {
        "description": "Paginated course list response.",
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CourseResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "page": {
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          },
          "total_pages": {
            "title": "Total Pages",
            "type": "integer"
          }
        },
        "required": ["items", "total", "page", "page_size", "total_pages"],
        "title": "CourseListResponse",
        "type": "object"
      },
      "CourseModuleSummaryResponse": {
        "properties": {
          "duration_minutes": {
            "minimum": 0.0,
            "title": "Duration Minutes",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lessons": {
            "minimum": 0.0,
            "title": "Lessons",
            "type": "integer"
          },
          "published_lessons": {
            "minimum": 0.0,
            "title": "Published Lessons",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "lessons", "duration_minutes", "published_lessons"],
        "title": "CourseModuleSummaryResponse",
        "type": "object"
      },
      "CourseResponse": {
        "description": "Full course data returned in API responses, including nested modules.",
        "properties": {
          "author_id": {
            "format": "uuid",
            "title": "Author Id",
            "type": "string"
          },
          "average_rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Average Rating"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "concept_graph": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseLinkedConceptGraphResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "difficulty": {
            "title": "Difficulty",
            "type": "string"
          },
          "enrollment_count": {
            "title": "Enrollment Count",
            "type": "integer"
          },
          "estimated_hours": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Hours"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "is_featured": {
            "title": "Is Featured",
            "type": "boolean"
          },
          "maturity": {
            "default": "idea",
            "title": "Maturity",
            "type": "string"
          },
          "modules": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ModuleResponse"
            },
            "title": "Modules",
            "type": "array"
          },
          "revision": {
            "default": 1,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "short_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Short Description"
          },
          "slug": {
            "title": "Slug",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "thumbnail_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thumbnail Url"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "slug",
          "category",
          "difficulty",
          "status",
          "is_featured",
          "enrollment_count",
          "author_id",
          "created_at",
          "updated_at"
        ],
        "title": "CourseResponse",
        "type": "object"
      },
      "CourseSourceScope": {
        "properties": {
          "courseId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Courseid",
            "type": "string"
          },
          "courseTitle": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Coursetitle",
            "type": "string"
          },
          "level": {
            "const": "course",
            "title": "Level",
            "type": "string"
          },
          "ownerId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ownerid",
            "type": "string"
          },
          "ownerName": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ownername",
            "type": "string"
          }
        },
        "required": ["level", "courseId", "courseTitle", "ownerId", "ownerName"],
        "title": "CourseSourceScope",
        "type": "object"
      },
      "CourseUpdate": {
        "description": "Schema for updating course fields.",
        "properties": {
          "category": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "difficulty": {
            "anyOf": [
              {
                "pattern": "^(beginner|intermediate|advanced|expert)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Difficulty"
          },
          "estimated_hours": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Hours"
          },
          "is_featured": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Featured"
          },
          "short_description": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Short Description"
          },
          "slug": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Slug"
          },
          "status": {
            "anyOf": [
              {
                "pattern": "^(draft|published|archived)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "tags": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "thumbnail_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thumbnail Url"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "CourseUpdate",
        "type": "object"
      },
      "CourseWorkloadLessonSnapshot": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Sha256"
          },
          "content_type": {
            "enum": ["text", "video", "interactive", "quiz", "code_exercise"],
            "title": "Content Type",
            "type": "string"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "maximum": 5000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "lesson_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Lesson Id",
            "type": "string"
          },
          "sequence": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "word_count": {
            "anyOf": [
              {
                "maximum": 100000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Word Count"
          }
        },
        "required": ["lesson_id", "sequence", "title", "content_type", "updated_at"],
        "title": "CourseWorkloadLessonSnapshot",
        "type": "object"
      },
      "CourseWorkloadModuleSnapshot": {
        "additionalProperties": false,
        "properties": {
          "estimated_minutes": {
            "anyOf": [
              {
                "maximum": 5000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Minutes"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/CourseWorkloadLessonSnapshot"
            },
            "maxItems": 10000,
            "title": "Lessons",
            "type": "array"
          },
          "module_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Module Id",
            "type": "string"
          },
          "sequence": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": ["module_id", "sequence", "title", "updated_at", "lessons"],
        "title": "CourseWorkloadModuleSnapshot",
        "type": "object"
      },
      "CourseWorkloadRevisionSnapshot-Input": {
        "additionalProperties": false,
        "properties": {
          "author_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Author Id",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "captured_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Captured By",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "course_updated_at": {
            "format": "date-time",
            "title": "Course Updated At",
            "type": "string"
          },
          "difficulty": {
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "estimated_hours": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,12}|(?=[\\d.]{1,13}0*$)\\d*\\.\\d*0*$)",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Hours"
          },
          "kind": {
            "const": "course_revision",
            "default": "course_revision",
            "title": "Kind",
            "type": "string"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/CourseWorkloadModuleSnapshot"
            },
            "maxItems": 10000,
            "title": "Modules",
            "type": "array"
          },
          "revision_id": {
            "pattern": "^courseworkrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["draft", "published", "archived"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "course_id",
          "revision_id",
          "tenant_id",
          "author_id",
          "title",
          "difficulty",
          "status",
          "course_updated_at",
          "modules",
          "captured_at",
          "captured_by",
          "content_sha256",
          "self_sha256"
        ],
        "title": "CourseWorkloadRevisionSnapshot",
        "type": "object"
      },
      "CourseWorkloadRevisionSnapshot-Output": {
        "additionalProperties": false,
        "properties": {
          "author_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Author Id",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "captured_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Captured By",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "course_updated_at": {
            "format": "date-time",
            "title": "Course Updated At",
            "type": "string"
          },
          "difficulty": {
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "estimated_hours": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,12}|(?=[\\d.]{1,13}0*$)\\d*\\.\\d*0*$)",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Hours"
          },
          "kind": {
            "const": "course_revision",
            "default": "course_revision",
            "title": "Kind",
            "type": "string"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/CourseWorkloadModuleSnapshot"
            },
            "maxItems": 10000,
            "title": "Modules",
            "type": "array"
          },
          "revision_id": {
            "pattern": "^courseworkrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["draft", "published", "archived"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "course_id",
          "revision_id",
          "tenant_id",
          "author_id",
          "title",
          "difficulty",
          "status",
          "course_updated_at",
          "modules",
          "captured_at",
          "captured_by",
          "content_sha256",
          "self_sha256"
        ],
        "title": "CourseWorkloadRevisionSnapshot",
        "type": "object"
      },
      "CourseWorkloadSourceRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "kind": {
            "const": "course_revision",
            "default": "course_revision",
            "title": "Kind",
            "type": "string"
          },
          "revision": {
            "$ref": "#/components/schemas/CourseWorkloadRevisionSnapshot-Input"
          }
        },
        "required": ["revision", "expected_revision_sha256"],
        "title": "CourseWorkloadSourceRequest",
        "type": "object"
      },
      "CoverageCognitiveDefinition": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Level",
            "type": "string"
          },
          "ordinal": {
            "maximum": 6.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          }
        },
        "required": ["level", "ordinal", "description"],
        "title": "CoverageCognitiveDefinition",
        "type": "object"
      },
      "CoverageEffectivePolicy": {
        "additionalProperties": false,
        "properties": {
          "base_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Base Policy Sha256",
            "type": "string"
          },
          "effective_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Effective Policy Sha256",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.curriculum-coverage-policy",
            "default": "metis.curriculum-coverage-policy",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.08.1",
            "default": "2026.08.1",
            "title": "Policy Version",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "threshold_source_ref": {
            "title": "Threshold Source Ref",
            "type": "string"
          },
          "thresholds": {
            "$ref": "#/components/schemas/CoverageThresholds-Output"
          }
        },
        "required": [
          "base_policy_sha256",
          "thresholds",
          "threshold_source_ref",
          "rationale",
          "effective_policy_sha256"
        ],
        "title": "CoverageEffectivePolicy",
        "type": "object"
      },
      "CoverageEvidenceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^coverage_evidence_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": ["citation", "rubric", "review", "artifact", "analytics"],
            "title": "Kind",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["evidence_id", "revision_id", "kind", "title", "locator", "content_sha256"],
        "title": "CoverageEvidenceSnapshot",
        "type": "object"
      },
      "CoverageLinkInput-Input": {
        "additionalProperties": false,
        "properties": {
          "cognitive_level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Cognitive Level",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "expected_objective_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Objective Content Sha256",
            "type": "string"
          },
          "expected_resource_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Resource Content Sha256",
            "type": "string"
          },
          "frequency": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Frequency",
            "type": "integer"
          },
          "link_id": {
            "pattern": "^coverage_link_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Link Id",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "pattern": "^objectiverev_[a-f0-9]{40}$",
            "title": "Objective Revision Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "relationship": {
            "enum": ["direct", "indirect"],
            "title": "Relationship",
            "type": "string"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "resource_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Revision Id",
            "type": "string"
          },
          "role": {
            "enum": [
              "instructional",
              "introduced",
              "practiced",
              "reinforced",
              "assessed",
              "mastered"
            ],
            "title": "Role",
            "type": "string"
          },
          "weight_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
                "type": "string"
              }
            ],
            "title": "Weight Percent"
          }
        },
        "required": [
          "link_id",
          "objective_id",
          "objective_revision_id",
          "expected_objective_content_sha256",
          "resource_id",
          "resource_revision_id",
          "expected_resource_content_sha256",
          "role",
          "relationship",
          "cognitive_level",
          "weight_percent",
          "frequency",
          "rationale"
        ],
        "title": "CoverageLinkInput",
        "type": "object"
      },
      "CoverageLinkInput-Output": {
        "additionalProperties": false,
        "properties": {
          "cognitive_level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Cognitive Level",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "expected_objective_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Objective Content Sha256",
            "type": "string"
          },
          "expected_resource_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Resource Content Sha256",
            "type": "string"
          },
          "frequency": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Frequency",
            "type": "integer"
          },
          "link_id": {
            "pattern": "^coverage_link_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Link Id",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "pattern": "^objectiverev_[a-f0-9]{40}$",
            "title": "Objective Revision Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "relationship": {
            "enum": ["direct", "indirect"],
            "title": "Relationship",
            "type": "string"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "resource_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Revision Id",
            "type": "string"
          },
          "role": {
            "enum": [
              "instructional",
              "introduced",
              "practiced",
              "reinforced",
              "assessed",
              "mastered"
            ],
            "title": "Role",
            "type": "string"
          },
          "weight_percent": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
            "title": "Weight Percent",
            "type": "string"
          }
        },
        "required": [
          "link_id",
          "objective_id",
          "objective_revision_id",
          "expected_objective_content_sha256",
          "resource_id",
          "resource_revision_id",
          "expected_resource_content_sha256",
          "role",
          "relationship",
          "cognitive_level",
          "weight_percent",
          "frequency",
          "rationale"
        ],
        "title": "CoverageLinkInput",
        "type": "object"
      },
      "CoverageMatrixCell": {
        "additionalProperties": false,
        "properties": {
          "credited_link_count": {
            "minimum": 0.0,
            "title": "Credited Link Count",
            "type": "integer"
          },
          "direct_link_count": {
            "minimum": 0.0,
            "title": "Direct Link Count",
            "type": "integer"
          },
          "indirect_link_count": {
            "minimum": 0.0,
            "title": "Indirect Link Count",
            "type": "integer"
          },
          "link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Link Ids",
            "type": "array"
          },
          "resource_id": {
            "title": "Resource Id",
            "type": "string"
          },
          "resource_kind": {
            "enum": [
              "module",
              "lesson",
              "block",
              "activity",
              "practice",
              "item",
              "assessment",
              "rubric"
            ],
            "title": "Resource Kind",
            "type": "string"
          },
          "resource_revision_id": {
            "title": "Resource Revision Id",
            "type": "string"
          },
          "resource_title": {
            "title": "Resource Title",
            "type": "string"
          },
          "roles": {
            "items": {
              "enum": [
                "instructional",
                "introduced",
                "practiced",
                "reinforced",
                "assessed",
                "mastered"
              ],
              "type": "string"
            },
            "title": "Roles",
            "type": "array"
          },
          "stale_link_count": {
            "minimum": 0.0,
            "title": "Stale Link Count",
            "type": "integer"
          },
          "unsupported_link_count": {
            "minimum": 0.0,
            "title": "Unsupported Link Count",
            "type": "integer"
          }
        },
        "required": [
          "resource_id",
          "resource_revision_id",
          "resource_kind",
          "resource_title",
          "roles",
          "direct_link_count",
          "indirect_link_count",
          "credited_link_count",
          "stale_link_count",
          "unsupported_link_count",
          "link_ids"
        ],
        "title": "CoverageMatrixCell",
        "type": "object"
      },
      "CoverageMatrixRow": {
        "additionalProperties": false,
        "properties": {
          "cells": {
            "items": {
              "$ref": "#/components/schemas/CoverageMatrixCell"
            },
            "title": "Cells",
            "type": "array"
          },
          "objective_id": {
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "title": "Objective Revision Id",
            "type": "string"
          },
          "objective_title": {
            "title": "Objective Title",
            "type": "string"
          },
          "required_for_outcome": {
            "title": "Required For Outcome",
            "type": "boolean"
          }
        },
        "required": [
          "objective_id",
          "objective_revision_id",
          "objective_title",
          "required_for_outcome",
          "cells"
        ],
        "title": "CoverageMatrixRow",
        "type": "object"
      },
      "CoverageObjectiveMeasure": {
        "additionalProperties": false,
        "properties": {
          "downward_cognitive_level_gap": {
            "anyOf": [
              {
                "maximum": 5.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Downward Cognitive Level Gap"
          },
          "duplicate_link_count": {
            "minimum": 0.0,
            "title": "Duplicate Link Count",
            "type": "integer"
          },
          "highest_credited_assessment_level": {
            "anyOf": [
              {
                "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Highest Credited Assessment Level"
          },
          "mastery_link_count": {
            "minimum": 0.0,
            "title": "Mastery Link Count",
            "type": "integer"
          },
          "objective": {
            "$ref": "#/components/schemas/CoverageObjectiveSnapshot"
          },
          "raw_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Raw Link Ids",
            "type": "array"
          },
          "role_measures": {
            "items": {
              "$ref": "#/components/schemas/CoverageRoleMeasure"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Role Measures",
            "type": "array"
          },
          "stale_link_count": {
            "minimum": 0.0,
            "title": "Stale Link Count",
            "type": "integer"
          },
          "unsupported_link_count": {
            "minimum": 0.0,
            "title": "Unsupported Link Count",
            "type": "integer"
          }
        },
        "required": [
          "objective",
          "role_measures",
          "mastery_link_count",
          "highest_credited_assessment_level",
          "stale_link_count",
          "unsupported_link_count",
          "duplicate_link_count",
          "raw_link_ids"
        ],
        "title": "CoverageObjectiveMeasure",
        "type": "object"
      },
      "CoverageObjectiveSnapshot": {
        "additionalProperties": false,
        "properties": {
          "cognitive_level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Cognitive Level",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "criterion_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Criterion Ids",
            "type": "array"
          },
          "evidence_requirement_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence Requirement Ids",
            "type": "array"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "pattern": "^objectiverev_[a-f0-9]{40}$",
            "title": "Objective Revision Id",
            "type": "string"
          },
          "required_for_outcome": {
            "title": "Required For Outcome",
            "type": "boolean"
          },
          "statement": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "objective_id",
          "objective_revision_id",
          "title",
          "statement",
          "required_for_outcome",
          "cognitive_level",
          "criterion_ids",
          "evidence_requirement_ids",
          "content_sha256"
        ],
        "title": "CoverageObjectiveSnapshot",
        "type": "object"
      },
      "CoveragePolicyFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "required_objective_undercoverage",
              "content_without_objective",
              "assessment_without_instruction",
              "excessive_weight",
              "excessive_frequency",
              "level_mismatch",
              "overassessment",
              "stale_link",
              "unsupported_link",
              "duplicate_link"
            ],
            "title": "Code",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^coverage_finding_[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "observed_measure": {
            "title": "Observed Measure",
            "type": "string"
          },
          "policy_source_ref": {
            "title": "Policy Source Ref",
            "type": "string"
          },
          "policy_threshold": {
            "title": "Policy Threshold",
            "type": "string"
          },
          "related_ids": {
            "items": {
              "type": "string"
            },
            "title": "Related Ids",
            "type": "array"
          },
          "severity": {
            "enum": ["warning", "blocking"],
            "title": "Severity",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["objective", "resource", "link"],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": [
          "finding_id",
          "code",
          "severity",
          "subject_kind",
          "subject_id",
          "related_ids",
          "observed_measure",
          "policy_threshold",
          "policy_source_ref",
          "message"
        ],
        "title": "CoveragePolicyFinding",
        "type": "object"
      },
      "CoveragePolicyModelResponse": {
        "additionalProperties": false,
        "properties": {
          "cognitive_vocabulary": {
            "items": {
              "$ref": "#/components/schemas/CoverageCognitiveDefinition"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Cognitive Vocabulary",
            "type": "array"
          },
          "default_thresholds": {
            "$ref": "#/components/schemas/CoverageThresholds-Output"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "policy_id": {
            "const": "metis.curriculum-coverage-policy",
            "default": "metis.curriculum-coverage-policy",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.08.1",
            "default": "2026.08.1",
            "title": "Policy Version",
            "type": "string"
          },
          "role_vocabulary": {
            "items": {
              "$ref": "#/components/schemas/CoverageRoleDefinition"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Role Vocabulary",
            "type": "array"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          }
        },
        "required": [
          "role_vocabulary",
          "cognitive_vocabulary",
          "default_thresholds",
          "source_refs",
          "limitations",
          "self_sha256"
        ],
        "title": "CoveragePolicyModelResponse",
        "type": "object"
      },
      "CoveragePolicySelection": {
        "additionalProperties": false,
        "properties": {
          "expected_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Policy Sha256",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.curriculum-coverage-policy",
            "default": "metis.curriculum-coverage-policy",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.08.1",
            "default": "2026.08.1",
            "title": "Policy Version",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "threshold_source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Threshold Source Ref",
            "type": "string"
          },
          "thresholds": {
            "$ref": "#/components/schemas/CoverageThresholds-Input"
          }
        },
        "required": ["expected_policy_sha256", "thresholds", "threshold_source_ref", "rationale"],
        "title": "CoveragePolicySelection",
        "type": "object"
      },
      "CoveragePolicyVerdict": {
        "additionalProperties": false,
        "properties": {
          "blocking_count": {
            "minimum": 0.0,
            "title": "Blocking Count",
            "type": "integer"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/CoveragePolicyFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "status": {
            "enum": ["pass", "review", "block"],
            "title": "Status",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          },
          "warning_count": {
            "minimum": 0.0,
            "title": "Warning Count",
            "type": "integer"
          }
        },
        "required": ["status", "blocking_count", "warning_count", "findings", "verdict_sha256"],
        "title": "CoveragePolicyVerdict",
        "type": "object"
      },
      "CoverageRawLinkMeasure": {
        "additionalProperties": false,
        "properties": {
          "duplicate_count": {
            "minimum": 1.0,
            "title": "Duplicate Count",
            "type": "integer"
          },
          "eligible_for_policy_credit": {
            "title": "Eligible For Policy Credit",
            "type": "boolean"
          },
          "freshness": {
            "enum": [
              "current",
              "stale_objective",
              "stale_resource",
              "stale_both",
              "missing_endpoint"
            ],
            "title": "Freshness",
            "type": "string"
          },
          "link": {
            "$ref": "#/components/schemas/CoverageLinkInput-Output"
          },
          "missing_evidence_ids": {
            "items": {
              "type": "string"
            },
            "title": "Missing Evidence Ids",
            "type": "array"
          },
          "objective_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Objective Title"
          },
          "resource_kind": {
            "anyOf": [
              {
                "enum": [
                  "module",
                  "lesson",
                  "block",
                  "activity",
                  "practice",
                  "item",
                  "assessment",
                  "rubric"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Kind"
          },
          "resource_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Title"
          },
          "support": {
            "enum": ["supported", "unsupported"],
            "title": "Support",
            "type": "string"
          }
        },
        "required": [
          "link",
          "objective_title",
          "resource_title",
          "resource_kind",
          "freshness",
          "support",
          "missing_evidence_ids",
          "duplicate_count",
          "eligible_for_policy_credit"
        ],
        "title": "CoverageRawLinkMeasure",
        "type": "object"
      },
      "CoverageRawMeasurement": {
        "additionalProperties": false,
        "properties": {
          "linked_resource_count": {
            "minimum": 0.0,
            "title": "Linked Resource Count",
            "type": "integer"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/CoverageRawLinkMeasure"
            },
            "title": "Links",
            "type": "array"
          },
          "matrix": {
            "items": {
              "$ref": "#/components/schemas/CoverageMatrixRow"
            },
            "title": "Matrix",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/CoverageObjectiveMeasure"
            },
            "title": "Objectives",
            "type": "array"
          },
          "raw_measurement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Raw Measurement Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "unlinked_resource_count": {
            "minimum": 0.0,
            "title": "Unlinked Resource Count",
            "type": "integer"
          }
        },
        "required": [
          "source_sha256",
          "links",
          "objectives",
          "matrix",
          "linked_resource_count",
          "unlinked_resource_count",
          "raw_measurement_sha256"
        ],
        "title": "CoverageRawMeasurement",
        "type": "object"
      },
      "CoverageRecomputeRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Workspace Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "policy": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CoveragePolicySelection"
              },
              {
                "type": "null"
              }
            ]
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CoverageSourceSnapshot-Input"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["idempotency_key", "expected_workspace_sha256", "rationale"],
        "title": "CoverageRecomputeRequest",
        "type": "object"
      },
      "CoverageRemediationSuggestion": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "add_instruction",
              "add_practice",
              "add_assessment",
              "add_evidence",
              "refresh_link",
              "remove_duplicate",
              "rebalance_weight",
              "reduce_frequency",
              "align_cognitive_level",
              "link_content",
              "review_policy"
            ],
            "title": "Action",
            "type": "string"
          },
          "automatic_change_applied": {
            "const": false,
            "default": false,
            "title": "Automatic Change Applied",
            "type": "boolean"
          },
          "finding_id": {
            "title": "Finding Id",
            "type": "string"
          },
          "remediation_id": {
            "pattern": "^coverage_remediation_[a-f0-9]{40}$",
            "title": "Remediation Id",
            "type": "string"
          },
          "suggestion": {
            "title": "Suggestion",
            "type": "string"
          },
          "target_ids": {
            "items": {
              "type": "string"
            },
            "title": "Target Ids",
            "type": "array"
          }
        },
        "required": ["remediation_id", "finding_id", "action", "target_ids", "suggestion"],
        "title": "CoverageRemediationSuggestion",
        "type": "object"
      },
      "CoverageReportCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "reports": {
            "items": {
              "$ref": "#/components/schemas/CoverageReportWorkspaceResponse"
            },
            "maxItems": 4096,
            "title": "Reports",
            "type": "array"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["generated_at", "reports"],
        "title": "CoverageReportCollectionResponse",
        "type": "object"
      },
      "CoverageReportRecord": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "created_by_name": {
            "title": "Created By Name",
            "type": "string"
          },
          "created_by_role": {
            "enum": ["instructor", "admin"],
            "title": "Created By Role",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/CoverageEffectivePolicy"
          },
          "policy_verdict": {
            "$ref": "#/components/schemas/CoveragePolicyVerdict"
          },
          "previous_report_id": {
            "anyOf": [
              {
                "pattern": "^coveragereport_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Report Id"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "raw_measurement": {
            "$ref": "#/components/schemas/CoverageRawMeasurement"
          },
          "recompute_reason": {
            "enum": ["initial", "source_revision_changed", "thresholds_changed", "both"],
            "title": "Recompute Reason",
            "type": "string"
          },
          "remediation": {
            "items": {
              "$ref": "#/components/schemas/CoverageRemediationSuggestion"
            },
            "title": "Remediation",
            "type": "array"
          },
          "report_id": {
            "pattern": "^coveragereport_[a-f0-9]{40}$",
            "title": "Report Id",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/CoverageSourceSnapshot-Output"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "report_id",
          "tenant_id",
          "source",
          "policy",
          "raw_measurement",
          "policy_verdict",
          "remediation",
          "recompute_reason",
          "rationale",
          "created_by",
          "created_by_name",
          "created_by_role",
          "created_at",
          "request_sha256",
          "self_sha256"
        ],
        "title": "CoverageReportRecord",
        "type": "object"
      },
      "CoverageReportRequest": {
        "additionalProperties": false,
        "properties": {
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/CoveragePolicySelection"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/CoverageSourceSnapshot-Input"
          }
        },
        "required": ["idempotency_key", "source", "policy", "rationale"],
        "title": "CoverageReportRequest",
        "type": "object"
      },
      "CoverageReportWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "lineage_report_ids": {
            "items": {
              "type": "string"
            },
            "title": "Lineage Report Ids",
            "type": "array"
          },
          "record": {
            "$ref": "#/components/schemas/CoverageReportRecord"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "superseded_by_report_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Superseded By Report Id"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": ["record", "lineage_report_ids", "workspace_sha256"],
        "title": "CoverageReportWorkspaceResponse",
        "type": "object"
      },
      "CoverageResourceSnapshot-Input": {
        "additionalProperties": false,
        "properties": {
          "available_weight_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
                "type": "string"
              }
            ],
            "default": "100",
            "title": "Available Weight Percent"
          },
          "cognitive_level": {
            "anyOf": [
              {
                "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cognitive Level"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "frequency": {
            "default": 1,
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Frequency",
            "type": "integer"
          },
          "kind": {
            "enum": [
              "module",
              "lesson",
              "block",
              "activity",
              "practice",
              "item",
              "assessment",
              "rubric"
            ],
            "title": "Kind",
            "type": "string"
          },
          "parent_resource_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Resource Id"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "sequence": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Sequence",
            "type": "integer"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["resource_id", "revision_id", "kind", "title", "sequence", "content_sha256"],
        "title": "CoverageResourceSnapshot",
        "type": "object"
      },
      "CoverageResourceSnapshot-Output": {
        "additionalProperties": false,
        "properties": {
          "available_weight_percent": {
            "default": "100",
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
            "title": "Available Weight Percent",
            "type": "string"
          },
          "cognitive_level": {
            "anyOf": [
              {
                "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cognitive Level"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "frequency": {
            "default": 1,
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Frequency",
            "type": "integer"
          },
          "kind": {
            "enum": [
              "module",
              "lesson",
              "block",
              "activity",
              "practice",
              "item",
              "assessment",
              "rubric"
            ],
            "title": "Kind",
            "type": "string"
          },
          "parent_resource_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Resource Id"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "sequence": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Sequence",
            "type": "integer"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["resource_id", "revision_id", "kind", "title", "sequence", "content_sha256"],
        "title": "CoverageResourceSnapshot",
        "type": "object"
      },
      "CoverageRoleDefinition": {
        "additionalProperties": false,
        "properties": {
          "counts_as_assessment": {
            "title": "Counts As Assessment",
            "type": "boolean"
          },
          "counts_as_instruction": {
            "title": "Counts As Instruction",
            "type": "boolean"
          },
          "description": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "group": {
            "enum": ["instruction", "practice", "assessment", "mastery"],
            "title": "Group",
            "type": "string"
          },
          "role": {
            "enum": [
              "instructional",
              "introduced",
              "practiced",
              "reinforced",
              "assessed",
              "mastered"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "role",
          "group",
          "description",
          "counts_as_instruction",
          "counts_as_assessment"
        ],
        "title": "CoverageRoleDefinition",
        "type": "object"
      },
      "CoverageRoleMeasure": {
        "additionalProperties": false,
        "properties": {
          "credited_direct_count": {
            "minimum": 0.0,
            "title": "Credited Direct Count",
            "type": "integer"
          },
          "credited_frequency": {
            "minimum": 0.0,
            "title": "Credited Frequency",
            "type": "integer"
          },
          "credited_indirect_count": {
            "minimum": 0.0,
            "title": "Credited Indirect Count",
            "type": "integer"
          },
          "credited_weight_percent": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,10}|(?=[\\d.]{1,13}0*$)\\d{0,10}\\.\\d{0,2}0*$)",
            "title": "Credited Weight Percent",
            "type": "string"
          },
          "group": {
            "enum": ["instruction", "practice", "assessment", "mastery"],
            "title": "Group",
            "type": "string"
          },
          "raw_link_count": {
            "minimum": 0.0,
            "title": "Raw Link Count",
            "type": "integer"
          },
          "raw_weight_percent": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,10}|(?=[\\d.]{1,13}0*$)\\d{0,10}\\.\\d{0,2}0*$)",
            "title": "Raw Weight Percent",
            "type": "string"
          }
        },
        "required": [
          "group",
          "raw_link_count",
          "credited_direct_count",
          "credited_indirect_count",
          "raw_weight_percent",
          "credited_weight_percent",
          "credited_frequency"
        ],
        "title": "CoverageRoleMeasure",
        "type": "object"
      },
      "CoverageSourceSnapshot-Input": {
        "additionalProperties": false,
        "properties": {
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "captured_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Captured By",
            "type": "string"
          },
          "curriculum_map_id": {
            "pattern": "^currmap_[a-f0-9]{40}$",
            "title": "Curriculum Map Id",
            "type": "string"
          },
          "curriculum_map_revision_id": {
            "pattern": "^currmaprev_[a-f0-9]{40}$",
            "title": "Curriculum Map Revision Id",
            "type": "string"
          },
          "curriculum_map_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Map Revision Sha256",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CoverageEvidenceSnapshot"
            },
            "maxItems": 10000,
            "title": "Evidence",
            "type": "array"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/CoverageLinkInput-Input"
            },
            "maxItems": 100000,
            "title": "Links",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/CoverageObjectiveSnapshot"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "outline_set_id": {
            "pattern": "^outlineset_[a-f0-9]{40}$",
            "title": "Outline Set Id",
            "type": "string"
          },
          "outline_variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Content Sha256",
            "type": "string"
          },
          "outline_variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Outline Variant Id",
            "type": "string"
          },
          "outline_variant_self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Self Sha256",
            "type": "string"
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/CoverageResourceSnapshot-Input"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Resources",
            "type": "array"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "snapshot_id": {
            "pattern": "^coveragesource_[a-f0-9]{40}$",
            "title": "Snapshot Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "snapshot_id",
          "tenant_id",
          "curriculum_map_id",
          "curriculum_map_revision_id",
          "curriculum_map_revision_sha256",
          "outline_set_id",
          "outline_variant_id",
          "outline_variant_content_sha256",
          "outline_variant_self_sha256",
          "objectives",
          "resources",
          "captured_at",
          "captured_by",
          "source_sha256"
        ],
        "title": "CoverageSourceSnapshot",
        "type": "object"
      },
      "CoverageSourceSnapshot-Output": {
        "additionalProperties": false,
        "properties": {
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "captured_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Captured By",
            "type": "string"
          },
          "curriculum_map_id": {
            "pattern": "^currmap_[a-f0-9]{40}$",
            "title": "Curriculum Map Id",
            "type": "string"
          },
          "curriculum_map_revision_id": {
            "pattern": "^currmaprev_[a-f0-9]{40}$",
            "title": "Curriculum Map Revision Id",
            "type": "string"
          },
          "curriculum_map_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Map Revision Sha256",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CoverageEvidenceSnapshot"
            },
            "maxItems": 10000,
            "title": "Evidence",
            "type": "array"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/CoverageLinkInput-Output"
            },
            "maxItems": 100000,
            "title": "Links",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/CoverageObjectiveSnapshot"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "outline_set_id": {
            "pattern": "^outlineset_[a-f0-9]{40}$",
            "title": "Outline Set Id",
            "type": "string"
          },
          "outline_variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Content Sha256",
            "type": "string"
          },
          "outline_variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Outline Variant Id",
            "type": "string"
          },
          "outline_variant_self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Self Sha256",
            "type": "string"
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/CoverageResourceSnapshot-Output"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Resources",
            "type": "array"
          },
          "schema_version": {
            "const": "2.15.0",
            "default": "2.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "snapshot_id": {
            "pattern": "^coveragesource_[a-f0-9]{40}$",
            "title": "Snapshot Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "snapshot_id",
          "tenant_id",
          "curriculum_map_id",
          "curriculum_map_revision_id",
          "curriculum_map_revision_sha256",
          "outline_set_id",
          "outline_variant_id",
          "outline_variant_content_sha256",
          "outline_variant_self_sha256",
          "objectives",
          "resources",
          "captured_at",
          "captured_by",
          "source_sha256"
        ],
        "title": "CoverageSourceSnapshot",
        "type": "object"
      },
      "CoverageThresholds-Input": {
        "additionalProperties": false,
        "properties": {
          "maximum_assessment_frequency_per_objective": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Maximum Assessment Frequency Per Objective",
            "type": "integer"
          },
          "maximum_assessment_to_instruction_ratio": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.1,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
                "type": "string"
              }
            ],
            "title": "Maximum Assessment To Instruction Ratio"
          },
          "maximum_downward_cognitive_level_gap": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Maximum Downward Cognitive Level Gap",
            "type": "integer"
          },
          "maximum_duplicate_links_per_pair_and_role": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Maximum Duplicate Links Per Pair And Role",
            "type": "integer"
          },
          "maximum_single_assessment_weight_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
                "type": "string"
              }
            ],
            "title": "Maximum Single Assessment Weight Percent"
          },
          "minimum_assessment_weight_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
                "type": "string"
              }
            ],
            "title": "Minimum Assessment Weight Percent"
          },
          "minimum_direct_assessment_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Direct Assessment Links",
            "type": "integer"
          },
          "minimum_direct_instruction_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Direct Instruction Links",
            "type": "integer"
          },
          "minimum_direct_practice_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Direct Practice Links",
            "type": "integer"
          },
          "minimum_instruction_weight_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
                "type": "string"
              }
            ],
            "title": "Minimum Instruction Weight Percent"
          },
          "minimum_mastery_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Mastery Links",
            "type": "integer"
          }
        },
        "required": [
          "minimum_direct_instruction_links",
          "minimum_direct_practice_links",
          "minimum_direct_assessment_links",
          "minimum_mastery_links",
          "minimum_instruction_weight_percent",
          "minimum_assessment_weight_percent",
          "maximum_single_assessment_weight_percent",
          "maximum_assessment_frequency_per_objective",
          "maximum_assessment_to_instruction_ratio",
          "maximum_downward_cognitive_level_gap",
          "maximum_duplicate_links_per_pair_and_role"
        ],
        "title": "CoverageThresholds",
        "type": "object"
      },
      "CoverageThresholds-Output": {
        "additionalProperties": false,
        "properties": {
          "maximum_assessment_frequency_per_objective": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Maximum Assessment Frequency Per Objective",
            "type": "integer"
          },
          "maximum_assessment_to_instruction_ratio": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
            "title": "Maximum Assessment To Instruction Ratio",
            "type": "string"
          },
          "maximum_downward_cognitive_level_gap": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Maximum Downward Cognitive Level Gap",
            "type": "integer"
          },
          "maximum_duplicate_links_per_pair_and_role": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Maximum Duplicate Links Per Pair And Role",
            "type": "integer"
          },
          "maximum_single_assessment_weight_percent": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
            "title": "Maximum Single Assessment Weight Percent",
            "type": "string"
          },
          "minimum_assessment_weight_percent": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
            "title": "Minimum Assessment Weight Percent",
            "type": "string"
          },
          "minimum_direct_assessment_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Direct Assessment Links",
            "type": "integer"
          },
          "minimum_direct_instruction_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Direct Instruction Links",
            "type": "integer"
          },
          "minimum_direct_practice_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Direct Practice Links",
            "type": "integer"
          },
          "minimum_instruction_weight_percent": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,4}|(?=[\\d.]{1,7}0*$)\\d{0,4}\\.\\d{0,2}0*$)",
            "title": "Minimum Instruction Weight Percent",
            "type": "string"
          },
          "minimum_mastery_links": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Mastery Links",
            "type": "integer"
          }
        },
        "required": [
          "minimum_direct_instruction_links",
          "minimum_direct_practice_links",
          "minimum_direct_assessment_links",
          "minimum_mastery_links",
          "minimum_instruction_weight_percent",
          "minimum_assessment_weight_percent",
          "maximum_single_assessment_weight_percent",
          "maximum_assessment_frequency_per_objective",
          "maximum_assessment_to_instruction_ratio",
          "maximum_downward_cognitive_level_gap",
          "maximum_duplicate_links_per_pair_and_role"
        ],
        "title": "CoverageThresholds",
        "type": "object"
      },
      "CredentialAchievement": {
        "properties": {
          "alignments": {
            "items": {
              "$ref": "#/components/schemas/CredentialAlignment"
            },
            "title": "Alignments",
            "type": "array"
          },
          "criteria": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Criteria",
            "type": "string"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "id": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "image": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image"
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          },
          "type": {
            "const": "Achievement",
            "default": "Achievement",
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["id", "name", "description", "criteria"],
        "title": "CredentialAchievement",
        "type": "object"
      },
      "CredentialAlignment": {
        "properties": {
          "target_code": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Code"
          },
          "target_framework": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Framework"
          },
          "target_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Target Name",
            "type": "string"
          },
          "target_url": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Url"
          }
        },
        "required": ["target_name"],
        "title": "CredentialAlignment",
        "type": "object"
      },
      "CredentialCandidate": {
        "additionalProperties": false,
        "description": "One person put forward for one template, with what has been gathered.",
        "properties": {
          "candidate_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Candidate Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CandidateEvidence"
            },
            "maxItems": 10000,
            "title": "Evidence",
            "type": "array"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "requested_by_role": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Requested By Role",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/CandidateSubject"
          },
          "template_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "minimum": 1.0,
            "title": "Template Version",
            "type": "integer"
          }
        },
        "required": [
          "candidate_id",
          "subject",
          "template_id",
          "template_version",
          "requested_by",
          "requested_by_role",
          "requested_at"
        ],
        "title": "CredentialCandidate",
        "type": "object"
      },
      "CredentialCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "pathway",
              "criteria",
              "evidence",
              "eligibility",
              "issuance",
              "lifecycle",
              "authority"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "CredentialCorpusCaseResult",
        "type": "object"
      },
      "CredentialCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "pathway",
              "criteria",
              "evidence",
              "eligibility",
              "issuance",
              "lifecycle",
              "authority"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "CredentialCorpusMetric",
        "type": "object"
      },
      "CredentialCriterion": {
        "additionalProperties": false,
        "description": "One thing a candidate must show, and what counts as showing it.",
        "properties": {
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "evidence_kind": {
            "enum": ["assessment", "artifact", "observation", "attendance", "external_credential"],
            "title": "Evidence Kind",
            "type": "string"
          },
          "freshness_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Freshness Days"
          },
          "minimum_count": {
            "default": 1,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Minimum Count",
            "type": "integer"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["criterion_id", "statement", "evidence_kind"],
        "title": "CredentialCriterion",
        "type": "object"
      },
      "CredentialEligibility": {
        "additionalProperties": false,
        "properties": {
          "credential_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Credential Id",
            "type": "string"
          },
          "credential_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Credential Revision Id",
            "type": "string"
          },
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "issued_here": {
            "const": false,
            "default": false,
            "title": "Issued Here",
            "type": "boolean"
          },
          "reason_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reason Code",
            "type": "string"
          }
        },
        "required": ["credential_id", "credential_revision_id", "eligible", "reason_code"],
        "title": "CredentialEligibility",
        "type": "object"
      },
      "CredentialEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/CredentialCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.18-credential-pathway-v1",
            "default": "metis-m6.18-credential-pathway-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_probe_refused": {
            "title": "Every Probe Refused",
            "type": "boolean"
          },
          "evidence_matrix": {
            "items": {
              "$ref": "#/components/schemas/CriterionCell"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Evidence Matrix",
            "type": "array"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/CredentialCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/AuthorityBypassProbe"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          },
          "schema_version": {
            "const": "6.18.0",
            "default": "6.18.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "probes",
          "every_probe_refused",
          "evidence_matrix"
        ],
        "title": "CredentialEvaluationReport",
        "type": "object"
      },
      "CredentialEvidence": {
        "properties": {
          "artifacts": {
            "items": {
              "type": "string"
            },
            "title": "Artifacts",
            "type": "array"
          },
          "id": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "narrative": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Narrative",
            "type": "string"
          },
          "type": {
            "const": "Evidence",
            "default": "Evidence",
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["id", "name", "narrative"],
        "title": "CredentialEvidence",
        "type": "object"
      },
      "CredentialIssuanceRequest": {
        "additionalProperties": false,
        "description": "An issuer asking for an award, with the state they are acting on.",
        "properties": {
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Actor Role",
            "type": "string"
          },
          "candidate_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Candidate Id",
            "type": "string"
          },
          "expected_evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Evidence Sha256",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "recipient_email": {
            "anyOf": [
              {
                "maxLength": 320,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Email"
          },
          "recipient_name": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Name"
          },
          "step_up_verified": {
            "default": false,
            "title": "Step Up Verified",
            "type": "boolean"
          }
        },
        "required": [
          "candidate_id",
          "actor_id",
          "actor_role",
          "reason",
          "expected_evidence_sha256"
        ],
        "title": "CredentialIssuanceRequest",
        "type": "object"
      },
      "CredentialIssueRequest": {
        "properties": {
          "achievement": {
            "$ref": "#/components/schemas/CredentialAchievement"
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "credential_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Id"
          },
          "credential_type": {
            "default": "open_badge",
            "enum": ["open_badge", "clr"],
            "title": "Credential Type",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CredentialEvidence"
            },
            "title": "Evidence",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "issued_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issued At"
          },
          "learner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Learner Id",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "recipient": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CredentialRecipient"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["learner_id", "achievement"],
        "title": "CredentialIssueRequest",
        "type": "object"
      },
      "CredentialIssuer": {
        "properties": {
          "id": {
            "default": "https://metis.oshun.local/issuers/metis",
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "name": {
            "default": "Metis",
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "type": {
            "const": "Profile",
            "default": "Profile",
            "title": "Type",
            "type": "string"
          },
          "url": {
            "default": "https://metis.oshun.local",
            "minLength": 1,
            "title": "Url",
            "type": "string"
          }
        },
        "title": "CredentialIssuer",
        "type": "object"
      },
      "CredentialLifecycleRequest": {
        "additionalProperties": false,
        "description": "A revoke, renew or supersede, and who is asking.",
        "properties": {
          "action": {
            "enum": ["revoke", "renew", "supersede"],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Actor Role",
            "type": "string"
          },
          "extend_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 7.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extend Days"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "replacement_credential_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Credential Id"
          },
          "step_up_verified": {
            "default": false,
            "title": "Step Up Verified",
            "type": "boolean"
          }
        },
        "required": ["action", "actor_id", "actor_role", "reason"],
        "title": "CredentialLifecycleRequest",
        "type": "object"
      },
      "CredentialListResponse": {
        "properties": {
          "credentials": {
            "items": {
              "$ref": "#/components/schemas/CredentialResponse"
            },
            "title": "Credentials",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["credentials", "total"],
        "title": "CredentialListResponse",
        "type": "object"
      },
      "CredentialPathway": {
        "additionalProperties": false,
        "description": "A versioned pathway: what it awards, who may award it, and on what terms.",
        "properties": {
          "audience": {
            "enum": ["learner", "educator", "professional"],
            "title": "Audience",
            "type": "string"
          },
          "completion_alone_is_sufficient": {
            "const": false,
            "default": false,
            "title": "Completion Alone Is Sufficient",
            "type": "boolean"
          },
          "groups": {
            "items": {
              "$ref": "#/components/schemas/CriterionGroup"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Groups",
            "type": "array"
          },
          "issuer": {
            "$ref": "#/components/schemas/IssuerAuthority"
          },
          "kind": {
            "enum": ["certificate", "badge", "micro_credential", "course_completion"],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2}(-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "pathway_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pathway Id",
            "type": "string"
          },
          "pathway_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Pathway Version",
            "type": "string"
          },
          "schema_version": {
            "const": "6.18.0",
            "default": "6.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "standard_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Standard Ids",
            "type": "array"
          },
          "title": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "validity_days": {
            "anyOf": [
              {
                "maximum": 36500.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Validity Days"
          }
        },
        "required": [
          "pathway_id",
          "pathway_version",
          "kind",
          "title",
          "locale",
          "audience",
          "issuer",
          "groups"
        ],
        "title": "CredentialPathway",
        "type": "object"
      },
      "CredentialProjection": {
        "additionalProperties": false,
        "description": "A recorded issuance outcome. A refusal has no credential id, because no\ncredential exists to name.",
        "properties": {
          "attempt_id": {
            "pattern": "^[a-f0-9]{40}$",
            "title": "Attempt Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "credential_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Id"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "response": {
            "$ref": "#/components/schemas/IssuanceResponse"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["attempt_id", "tenant_id", "created_at", "record_sha256", "response"],
        "title": "CredentialProjection",
        "type": "object"
      },
      "CredentialProjectionView": {
        "additionalProperties": false,
        "description": "An issued credential as one audience is allowed to see it.",
        "properties": {
          "achievement_name": {
            "title": "Achievement Name",
            "type": "string"
          },
          "audience": {
            "enum": ["public", "recipient", "guardian", "institution", "issuer"],
            "title": "Audience",
            "type": "string"
          },
          "credential_id": {
            "title": "Credential Id",
            "type": "string"
          },
          "criteria_met": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Criteria Met",
            "type": "array"
          },
          "evidence_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Sha256"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issuer_name": {
            "title": "Issuer Name",
            "type": "string"
          },
          "lineage_length": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lineage Length"
          },
          "outcome": {
            "enum": [
              "valid",
              "expired",
              "revoked",
              "superseded",
              "unknown",
              "not_found",
              "invalid"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "recipient_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Email"
          },
          "recipient_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Name"
          },
          "revocation_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revocation Reason"
          },
          "subject_pseudonym": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Pseudonym"
          },
          "superseded_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Superseded By"
          },
          "template_id": {
            "title": "Template Id",
            "type": "string"
          },
          "withheld": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": [
          "audience",
          "credential_id",
          "template_id",
          "achievement_name",
          "issuer_name",
          "issued_at",
          "outcome"
        ],
        "title": "CredentialProjectionView",
        "type": "object"
      },
      "CredentialProof": {
        "properties": {
          "canonical_hash": {
            "title": "Canonical Hash",
            "type": "string"
          },
          "created": {
            "format": "date-time",
            "title": "Created",
            "type": "string"
          },
          "cryptosuite": {
            "const": "HMAC-SHA256-2026",
            "default": "HMAC-SHA256-2026",
            "title": "Cryptosuite",
            "type": "string"
          },
          "proof_purpose": {
            "const": "assertionMethod",
            "default": "assertionMethod",
            "title": "Proof Purpose",
            "type": "string"
          },
          "proof_value": {
            "title": "Proof Value",
            "type": "string"
          },
          "type": {
            "const": "DataIntegrityProof",
            "default": "DataIntegrityProof",
            "title": "Type",
            "type": "string"
          },
          "verification_method": {
            "title": "Verification Method",
            "type": "string"
          }
        },
        "required": ["created", "verification_method", "canonical_hash", "proof_value"],
        "title": "CredentialProof",
        "type": "object"
      },
      "CredentialRecipient": {
        "properties": {
          "email": {
            "anyOf": [
              {
                "maxLength": 320,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "type": {
            "const": "Person",
            "default": "Person",
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["id"],
        "title": "CredentialRecipient",
        "type": "object"
      },
      "CredentialRecord": {
        "additionalProperties": false,
        "description": "A minted, sealed credential.\n\n``issued_at`` cannot precede the decision, and the decision cannot precede\nthe moment the last criterion was met \u2014 so a credential cannot be dated\nbefore the work that earned it. The digest is checked against a\nre-derivation, so a record edited on disk fails to load.",
        "properties": {
          "credential_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Credential Id",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/IssuerDecision"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issuer_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Issuer Id",
            "type": "string"
          },
          "last_criterion_satisfied_at": {
            "format": "date-time",
            "title": "Last Criterion Satisfied At",
            "type": "string"
          },
          "lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lock Sha256",
            "type": "string"
          },
          "pathway_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pathway Id",
            "type": "string"
          },
          "pathway_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Pathway Version",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.18.0",
            "default": "6.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "default": "active",
            "enum": ["active", "expired", "revoked", "replaced"],
            "title": "Status",
            "type": "string"
          },
          "subject_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Digest",
            "type": "string"
          }
        },
        "required": [
          "credential_id",
          "pathway_id",
          "pathway_version",
          "subject_digest",
          "issuer_id",
          "lock_sha256",
          "decision",
          "last_criterion_satisfied_at",
          "issued_at",
          "record_sha256"
        ],
        "title": "CredentialRecord",
        "type": "object"
      },
      "CredentialRef": {
        "additionalProperties": false,
        "description": "A pointer to a secret held by the secret store. There is no value field.",
        "properties": {
          "last_rotated_at": {
            "format": "date-time",
            "title": "Last Rotated At",
            "type": "string"
          },
          "rotation_due_at": {
            "format": "date-time",
            "title": "Rotation Due At",
            "type": "string"
          },
          "secret_ref": {
            "pattern": "^secret://[a-z0-9][a-z0-9._/-]{2,180}$",
            "title": "Secret Ref",
            "type": "string"
          }
        },
        "required": ["secret_ref", "rotation_due_at", "last_rotated_at"],
        "title": "CredentialRef",
        "type": "object"
      },
      "CredentialResponse": {
        "properties": {
          "achievement": {
            "$ref": "#/components/schemas/CredentialAchievement"
          },
          "clr": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Clr"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "credential_hash": {
            "title": "Credential Hash",
            "type": "string"
          },
          "credential_type": {
            "enum": ["open_badge", "clr"],
            "title": "Credential Type",
            "type": "string"
          },
          "credential_url": {
            "title": "Credential Url",
            "type": "string"
          },
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CredentialEvidence"
            },
            "title": "Evidence",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issuer": {
            "$ref": "#/components/schemas/CredentialIssuer"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "open_badge": {
            "additionalProperties": true,
            "title": "Open Badge",
            "type": "object"
          },
          "proof": {
            "$ref": "#/components/schemas/CredentialProof"
          },
          "recipient": {
            "$ref": "#/components/schemas/CredentialRecipient"
          },
          "status": {
            "enum": ["active", "expired", "revoked"],
            "title": "Status",
            "type": "string"
          },
          "verify_url": {
            "title": "Verify Url",
            "type": "string"
          }
        },
        "required": [
          "id",
          "credential_type",
          "learner_id",
          "recipient",
          "issuer",
          "achievement",
          "evidence",
          "issued_at",
          "status",
          "credential_url",
          "verify_url",
          "credential_hash",
          "proof",
          "open_badge",
          "metadata"
        ],
        "title": "CredentialResponse",
        "type": "object"
      },
      "CredentialReview": {
        "additionalProperties": false,
        "description": "One reviewer's conclusion, and the evidence set it was reached on.",
        "properties": {
          "candidate_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Candidate Id",
            "type": "string"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decision": {
            "enum": ["approve", "reject", "request_evidence"],
            "title": "Decision",
            "type": "string"
          },
          "declared_conflicts": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Declared Conflicts",
            "type": "array"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "review_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Review Id",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Reviewer Role",
            "type": "string"
          },
          "step_up_verified": {
            "default": false,
            "title": "Step Up Verified",
            "type": "boolean"
          }
        },
        "required": [
          "review_id",
          "candidate_id",
          "reviewer_id",
          "reviewer_role",
          "decision",
          "reason",
          "evidence_sha256",
          "decided_at"
        ],
        "title": "CredentialReview",
        "type": "object"
      },
      "CredentialRevocationRequest": {
        "properties": {
          "reason": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason"],
        "title": "CredentialRevocationRequest",
        "type": "object"
      },
      "CredentialRevocationResponse": {
        "properties": {
          "credential_id": {
            "format": "uuid",
            "title": "Credential Id",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "revoked_at": {
            "format": "date-time",
            "title": "Revoked At",
            "type": "string"
          },
          "status": {
            "const": "revoked",
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["credential_id", "status", "revoked_at", "reason"],
        "title": "CredentialRevocationResponse",
        "type": "object"
      },
      "CredentialTemplate": {
        "additionalProperties": false,
        "description": "What the award says, what it takes, and how long it lasts.",
        "properties": {
          "achievement": {
            "$ref": "#/components/schemas/CredentialAchievement"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/CredentialCriterion"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "issuer": {
            "$ref": "#/components/schemas/CredentialIssuer"
          },
          "locale": {
            "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "quorum": {
            "default": 1,
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Quorum",
            "type": "integer"
          },
          "state": {
            "enum": ["draft", "active", "retired"],
            "title": "State",
            "type": "string"
          },
          "step_up_required": {
            "default": true,
            "title": "Step Up Required",
            "type": "boolean"
          },
          "template_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Template Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "validity_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 7.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Validity Days"
          },
          "version": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "template_id",
          "version",
          "locale",
          "state",
          "achievement",
          "issuer",
          "criteria",
          "created_at",
          "updated_at"
        ],
        "title": "CredentialTemplate",
        "type": "object"
      },
      "CredentialVerificationCheck": {
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          }
        },
        "required": ["name", "passed", "detail"],
        "title": "CredentialVerificationCheck",
        "type": "object"
      },
      "CredentialVerificationRequest": {
        "properties": {
          "credential_document": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Document"
          },
          "credential_hash": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Hash"
          },
          "credential_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Id"
          },
          "proof_value": {
            "anyOf": [
              {
                "maxLength": 256,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proof Value"
          },
          "recipient_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipient Id"
          }
        },
        "title": "CredentialVerificationRequest",
        "type": "object"
      },
      "CredentialVerificationResponse": {
        "properties": {
          "achievement": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CredentialAchievement"
              },
              {
                "type": "null"
              }
            ]
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/CredentialVerificationCheck"
            },
            "title": "Checks",
            "type": "array"
          },
          "credential_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Hash"
          },
          "credential_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Id"
          },
          "issuer": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CredentialIssuer"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "enum": ["valid", "invalid", "expired", "revoked", "not_found"],
            "title": "Status",
            "type": "string"
          },
          "valid": {
            "title": "Valid",
            "type": "boolean"
          },
          "verified_at": {
            "format": "date-time",
            "title": "Verified At",
            "type": "string"
          }
        },
        "required": ["valid", "status", "verified_at", "checks"],
        "title": "CredentialVerificationResponse",
        "type": "object"
      },
      "CredentialVerificationView": {
        "additionalProperties": false,
        "description": "What a verifier is told, and what it is not.",
        "properties": {
          "checks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/VerificationCheckView"
            },
            "title": "Checks",
            "type": "array"
          },
          "credential": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CredentialProjectionView"
              },
              {
                "type": "null"
              }
            ]
          },
          "outcome": {
            "enum": [
              "valid",
              "expired",
              "revoked",
              "superseded",
              "unknown",
              "not_found",
              "invalid"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "verified_at": {
            "format": "date-time",
            "title": "Verified At",
            "type": "string"
          }
        },
        "required": ["outcome", "verified_at"],
        "title": "CredentialVerificationView",
        "type": "object"
      },
      "CredentialWorkspaceAggregate": {
        "additionalProperties": false,
        "description": "One issuing programme: its templates, candidates and reviews.",
        "properties": {
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/CredentialCandidate"
            },
            "maxItems": 100000,
            "title": "Candidates",
            "type": "array"
          },
          "conflicts": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "maxItems": 100000,
            "title": "Conflicts",
            "type": "array"
          },
          "programme_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Programme Id",
            "type": "string"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/CredentialReview"
            },
            "maxItems": 100000,
            "title": "Reviews",
            "type": "array"
          },
          "schema_version": {
            "const": "9.18.0",
            "default": "9.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "templates": {
            "items": {
              "$ref": "#/components/schemas/CredentialTemplate"
            },
            "maxItems": 1000,
            "title": "Templates",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["programme_id", "title"],
        "title": "CredentialWorkspaceAggregate",
        "type": "object"
      },
      "CriterionCell": {
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "title": "Accepted",
            "type": "boolean"
          },
          "criterion_kind": {
            "enum": [
              "objective_mastery",
              "course_completion",
              "assessment_score",
              "evidence_artefact",
              "supervised_experience",
              "elapsed_time"
            ],
            "title": "Criterion Kind",
            "type": "string"
          },
          "evidence_type": {
            "enum": [
              "assessment_result",
              "mastery_estimate",
              "verified_artefact",
              "supervisor_attestation",
              "attendance_record"
            ],
            "title": "Evidence Type",
            "type": "string"
          }
        },
        "required": ["criterion_kind", "evidence_type", "accepted"],
        "title": "CriterionCell",
        "type": "object"
      },
      "CriterionConsensus": {
        "additionalProperties": false,
        "properties": {
          "abstained_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Abstained Evaluator Ids",
            "type": "array"
          },
          "band_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Band Id"
          },
          "confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Confidence Basis Points",
            "type": "integer"
          },
          "contributing_group_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Contributing Group Ids",
            "type": "array"
          },
          "correlated_weight_capped": {
            "title": "Correlated Weight Capped",
            "type": "boolean"
          },
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "disposition": {
            "enum": ["advisory_auto", "manual_review", "reject"],
            "title": "Disposition",
            "type": "string"
          },
          "errored_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Errored Evaluator Ids",
            "type": "array"
          },
          "excluded_evaluators": {
            "items": {
              "$ref": "#/components/schemas/ExcludedEvaluator"
            },
            "maxItems": 50,
            "title": "Excluded Evaluators",
            "type": "array"
          },
          "independent_group_count": {
            "minimum": 0.0,
            "title": "Independent Group Count",
            "type": "integer"
          },
          "majority": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LabelWeight"
              },
              {
                "type": "null"
              }
            ]
          },
          "minority": {
            "items": {
              "$ref": "#/components/schemas/LabelWeight"
            },
            "maxItems": 20,
            "title": "Minority",
            "type": "array"
          },
          "minority_preserved": {
            "const": true,
            "default": true,
            "title": "Minority Preserved",
            "type": "boolean"
          },
          "state": {
            "enum": [
              "consensus",
              "disagreement",
              "insufficient_quorum",
              "insufficient_independence",
              "uncalibrated",
              "abstained",
              "timeout"
            ],
            "title": "State",
            "type": "string"
          },
          "timed_out_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Timed Out Evaluator Ids",
            "type": "array"
          }
        },
        "required": [
          "criterion_id",
          "state",
          "majority",
          "minority",
          "abstained_evaluator_ids",
          "timed_out_evaluator_ids",
          "errored_evaluator_ids",
          "excluded_evaluators",
          "contributing_group_ids",
          "independent_group_count",
          "correlated_weight_capped",
          "confidence_basis_points",
          "band_id",
          "disposition"
        ],
        "title": "CriterionConsensus",
        "type": "object"
      },
      "CriterionGroup": {
        "additionalProperties": false,
        "description": "Criteria combined by one rule. Nesting is one level, deliberately.\n\nArbitrary nesting is a second rule engine with a second evaluator to test.\nOne level of grouping expresses every pathway this estate has, and can be\nchecked by reading it.",
        "properties": {
          "at_least": {
            "anyOf": [
              {
                "maximum": 40.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "At Least"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/PathwayCriterion"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "group_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Group Id",
            "type": "string"
          },
          "rule": {
            "enum": ["all_of", "any_of", "at_least_n"],
            "title": "Rule",
            "type": "string"
          }
        },
        "required": ["group_id", "rule", "criteria"],
        "title": "CriterionGroup",
        "type": "object"
      },
      "CriterionStateView": {
        "additionalProperties": false,
        "description": "Where one criterion stands, and why.",
        "properties": {
          "contradicting_evidence_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Contradicting Evidence Ids",
            "type": "array"
          },
          "criterion_id": {
            "title": "Criterion Id",
            "type": "string"
          },
          "current_count": {
            "default": 0,
            "title": "Current Count",
            "type": "integer"
          },
          "detail": {
            "default": "",
            "title": "Detail",
            "type": "string"
          },
          "required_count": {
            "default": 1,
            "title": "Required Count",
            "type": "integer"
          },
          "satisfying_evidence_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Satisfying Evidence Ids",
            "type": "array"
          },
          "stale_evidence_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Stale Evidence Ids",
            "type": "array"
          },
          "state": {
            "enum": ["satisfied", "missing", "stale", "conflicting", "insufficient"],
            "title": "State",
            "type": "string"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["criterion_id", "statement", "state"],
        "title": "CriterionStateView",
        "type": "object"
      },
      "CriterionVerdict": {
        "additionalProperties": false,
        "description": "What one criterion says about one subject, and what it looked at.",
        "properties": {
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "evidence_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Evidence Ids",
            "type": "array"
          },
          "satisfied_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Satisfied At"
          },
          "state": {
            "enum": ["met", "not_met", "missing", "stale", "conflicting", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["criterion_id", "state", "detail"],
        "title": "CriterionVerdict",
        "type": "object"
      },
      "CulturalReviewAdmissionDecision": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "quorum": {
            "$ref": "#/components/schemas/CulturalReviewQuorumVerdict"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "surface": {
            "enum": ["build", "publication", "delivery"],
            "title": "Surface",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": [
          "allowed",
          "surface",
          "assignment_run_id",
          "target_id",
          "quorum",
          "reason_codes"
        ],
        "title": "CulturalReviewAdmissionDecision",
        "type": "object"
      },
      "CulturalReviewAdmissionRequest": {
        "additionalProperties": false,
        "properties": {
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "surface": {
            "enum": ["build", "publication", "delivery"],
            "title": "Surface",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          },
          "target_revision": {
            "minimum": 1.0,
            "title": "Target Revision",
            "type": "integer"
          },
          "target_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Revision Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "assignment_run_id",
          "surface",
          "target_id",
          "target_revision",
          "target_revision_sha256",
          "evaluated_at"
        ],
        "title": "CulturalReviewAdmissionRequest",
        "type": "object"
      },
      "CulturalReviewAssignment": {
        "additionalProperties": false,
        "properties": {
          "assigned_at": {
            "format": "date-time",
            "title": "Assigned At",
            "type": "string"
          },
          "assignment_id": {
            "pattern": "^cultural-review-assignment:[A-Za-z0-9._:-]{6,160}$",
            "title": "Assignment Id",
            "type": "string"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "initial_state": {
            "enum": ["assigned", "reserve"],
            "title": "Initial State",
            "type": "string"
          },
          "requirement_id": {
            "title": "Requirement Id",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "substitute"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "assignment_id",
          "assignment_run_id",
          "requirement_id",
          "reviewer_id",
          "role",
          "initial_state",
          "assigned_at",
          "due_at",
          "expires_at"
        ],
        "title": "CulturalReviewAssignment",
        "type": "object"
      },
      "CulturalReviewAssignmentEvent": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "assignment_id": {
            "title": "Assignment Id",
            "type": "string"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "event_id": {
            "pattern": "^cultural-review-event:[A-Za-z0-9._:-]{6,140}$",
            "title": "Event Id",
            "type": "string"
          },
          "event_kind": {
            "enum": ["substitute_activated", "conflict_declared", "escalated"],
            "title": "Event Kind",
            "type": "string"
          },
          "event_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Event Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^cultural-review-event:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "tenant_id",
          "assignment_run_id",
          "assignment_id",
          "event_kind",
          "occurred_at",
          "reason",
          "idempotency_key",
          "actor_id",
          "actor_role",
          "event_sha256"
        ],
        "title": "CulturalReviewAssignmentEvent",
        "type": "object"
      },
      "CulturalReviewAssignmentEventRequest": {
        "additionalProperties": false,
        "properties": {
          "assignment_id": {
            "title": "Assignment Id",
            "type": "string"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "event_id": {
            "pattern": "^cultural-review-event:[A-Za-z0-9._:-]{6,140}$",
            "title": "Event Id",
            "type": "string"
          },
          "event_kind": {
            "enum": ["substitute_activated", "conflict_declared", "escalated"],
            "title": "Event Kind",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^cultural-review-event:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "tenant_id",
          "assignment_run_id",
          "assignment_id",
          "event_kind",
          "occurred_at",
          "reason",
          "idempotency_key"
        ],
        "title": "CulturalReviewAssignmentEventRequest",
        "type": "object"
      },
      "CulturalReviewAssignmentRequest": {
        "additionalProperties": false,
        "properties": {
          "assignment_run_id": {
            "pattern": "^cultural-review-run:[A-Za-z0-9._:-]{6,140}$",
            "title": "Assignment Run Id",
            "type": "string"
          },
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/ReviewerCapabilityEnvelope"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Candidates",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^cultural-review-run:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/CulturalReviewTarget"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "assignment_run_id",
          "tenant_id",
          "target",
          "candidates",
          "requested_at",
          "reason",
          "idempotency_key"
        ],
        "title": "CulturalReviewAssignmentRequest",
        "type": "object"
      },
      "CulturalReviewAssignmentRun": {
        "additionalProperties": false,
        "properties": {
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "assignment_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Assignment Run Sha256",
            "type": "string"
          },
          "assignments": {
            "items": {
              "$ref": "#/components/schemas/CulturalReviewAssignment"
            },
            "title": "Assignments",
            "type": "array"
          },
          "candidate_evaluations": {
            "items": {
              "$ref": "#/components/schemas/ReviewerEligibility"
            },
            "title": "Candidate Evaluations",
            "type": "array"
          },
          "policy": {
            "$ref": "#/components/schemas/CulturalReviewPolicy"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requirements": {
            "items": {
              "$ref": "#/components/schemas/CulturalReviewRequirement"
            },
            "title": "Requirements",
            "type": "array"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/CulturalReviewTarget"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "assignment_run_id",
          "tenant_id",
          "target",
          "requirements",
          "candidate_evaluations",
          "assignments",
          "requested_at",
          "reason",
          "policy",
          "assignment_run_sha256"
        ],
        "title": "CulturalReviewAssignmentRun",
        "type": "object"
      },
      "CulturalReviewCatalog": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CulturalReviewCatalogSummary"
            },
            "title": "Items",
            "type": "array"
          },
          "policy": {
            "$ref": "#/components/schemas/CulturalReviewPolicy"
          }
        },
        "required": ["policy", "items"],
        "title": "CulturalReviewCatalog",
        "type": "object"
      },
      "CulturalReviewCatalogSummary": {
        "additionalProperties": false,
        "properties": {
          "assignment_count": {
            "minimum": 0.0,
            "title": "Assignment Count",
            "type": "integer"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "decision_count": {
            "minimum": 0.0,
            "title": "Decision Count",
            "type": "integer"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "publication_allowed": {
            "title": "Publication Allowed",
            "type": "boolean"
          },
          "quorum_state": {
            "enum": ["approved", "pending", "blocked", "expired", "conflicted"],
            "title": "Quorum State",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/CulturalReviewTarget"
          }
        },
        "required": [
          "assignment_run_id",
          "target",
          "assignment_count",
          "decision_count",
          "quorum_state",
          "publication_allowed",
          "evaluated_at"
        ],
        "title": "CulturalReviewCatalogSummary",
        "type": "object"
      },
      "CulturalReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "assignment_id": {
            "title": "Assignment Id",
            "type": "string"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "decision": {
            "enum": ["approve", "changes_requested", "reject", "abstain"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^cultural-review-decision:[A-Za-z0-9._:-]{6,140}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "dimension": {
            "enum": ["cultural", "regional", "language"],
            "title": "Dimension",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/StructuredCulturalReviewFinding"
            },
            "maxItems": 100,
            "title": "Findings",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^cultural-review-decision:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "packet": {
            "$ref": "#/components/schemas/CulturalReviewPacket"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "requirement_id": {
            "title": "Requirement Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "valid_until": {
            "format": "date-time",
            "title": "Valid Until",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "tenant_id",
          "assignment_run_id",
          "assignment_id",
          "reviewer_id",
          "packet",
          "decision",
          "findings",
          "reviewed_at",
          "rationale",
          "idempotency_key",
          "requirement_id",
          "dimension",
          "valid_until",
          "decision_sha256"
        ],
        "title": "CulturalReviewDecision",
        "type": "object"
      },
      "CulturalReviewDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "assignment_id": {
            "title": "Assignment Id",
            "type": "string"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "decision": {
            "enum": ["approve", "changes_requested", "reject", "abstain"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^cultural-review-decision:[A-Za-z0-9._:-]{6,140}$",
            "title": "Decision Id",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/StructuredCulturalReviewFinding"
            },
            "maxItems": 100,
            "title": "Findings",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^cultural-review-decision:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "packet": {
            "$ref": "#/components/schemas/CulturalReviewPacket"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "tenant_id",
          "assignment_run_id",
          "assignment_id",
          "reviewer_id",
          "packet",
          "decision",
          "findings",
          "reviewed_at",
          "rationale",
          "idempotency_key"
        ],
        "title": "CulturalReviewDecisionRequest",
        "type": "object"
      },
      "CulturalReviewEvidenceRef": {
        "additionalProperties": false,
        "properties": {
          "access_class": {
            "default": "review_restricted",
            "enum": ["metadata_only", "review_restricted"],
            "title": "Access Class",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^cultural-review-evidence:[A-Za-z0-9._:-]{6,140}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_kind": {
            "enum": [
              "source_snapshot",
              "locale_reference",
              "community_guidance",
              "regional_guidance",
              "terminology_record",
              "comparison_record"
            ],
            "title": "Evidence Kind",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Revision",
            "type": "string"
          }
        },
        "required": ["evidence_id", "evidence_kind", "revision", "evidence_sha256", "captured_at"],
        "title": "CulturalReviewEvidenceRef",
        "type": "object"
      },
      "CulturalReviewPacket": {
        "additionalProperties": false,
        "properties": {
          "comparison": {
            "$ref": "#/components/schemas/ReviewComparisonSnapshot"
          },
          "context": {
            "$ref": "#/components/schemas/ReviewContextSnapshot"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CulturalReviewEvidenceRef"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "locale_variant": {
            "$ref": "#/components/schemas/LocaleVariantSnapshot"
          },
          "packet_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Packet Sha256",
            "type": "string"
          },
          "target_id": {
            "maxLength": 180,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Target Id",
            "type": "string"
          },
          "target_revision": {
            "minimum": 1.0,
            "title": "Target Revision",
            "type": "integer"
          },
          "target_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "target_id",
          "target_revision",
          "target_revision_sha256",
          "locale_variant",
          "context",
          "comparison",
          "evidence",
          "packet_sha256"
        ],
        "title": "CulturalReviewPacket",
        "type": "object"
      },
      "CulturalReviewPolicy": {
        "additionalProperties": false,
        "properties": {
          "audience_rules": {
            "items": {
              "$ref": "#/components/schemas/AudienceReviewRule"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Audience Rules",
            "type": "array"
          },
          "candidate_output_allowlist": {
            "items": {
              "enum": [
                "reviewer_id",
                "eligible_requirement_ids",
                "ineligible_reason_codes",
                "active_assignment_count",
                "selection_rank"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Candidate Output Allowlist",
            "type": "array"
          },
          "conflict_free_quorum_required": {
            "const": true,
            "default": true,
            "title": "Conflict Free Quorum Required",
            "type": "boolean"
          },
          "content_kinds": {
            "items": {
              "enum": [
                "course",
                "lesson",
                "item",
                "assessment",
                "answer",
                "rationale",
                "feedback",
                "hint"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Content Kinds",
            "type": "array"
          },
          "dimensions": {
            "items": {
              "enum": ["cultural", "regional", "language"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Dimensions",
            "type": "array"
          },
          "exact_community_context_match_required": {
            "const": true,
            "default": true,
            "title": "Exact Community Context Match Required",
            "type": "boolean"
          },
          "exact_locale_match_required": {
            "const": true,
            "default": true,
            "title": "Exact Locale Match Required",
            "type": "boolean"
          },
          "exact_region_match_required": {
            "const": true,
            "default": true,
            "title": "Exact Region Match Required",
            "type": "boolean"
          },
          "fresh_decision_per_target_revision": {
            "const": true,
            "default": true,
            "title": "Fresh Decision Per Target Revision",
            "type": "boolean"
          },
          "max_active_assignments_per_reviewer": {
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Max Active Assignments Per Reviewer",
            "type": "integer"
          },
          "one_substitute_per_requirement": {
            "const": true,
            "default": true,
            "title": "One Substitute Per Requirement",
            "type": "boolean"
          },
          "policy_id": {
            "const": "metis.cultural-regional-language-review",
            "default": "metis.cultural-regional-language-review",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "protected_attribute_matching_prohibited": {
            "items": {
              "enum": [
                "race",
                "ethnicity",
                "religion",
                "nationality",
                "gender",
                "sexual_orientation",
                "disability",
                "age"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Protected Attribute Matching Prohibited",
            "type": "array"
          },
          "qualification_by_dimension": {
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "enum": ["cultural", "regional", "language"]
            },
            "title": "Qualification By Dimension",
            "type": "object"
          },
          "quorum_rules": {
            "items": {
              "$ref": "#/components/schemas/ReviewQuorumRule"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Quorum Rules",
            "type": "array"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "surfaces": {
            "items": {
              "enum": ["build", "publication", "delivery"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Surfaces",
            "type": "array"
          }
        },
        "required": [
          "dimensions",
          "content_kinds",
          "surfaces",
          "quorum_rules",
          "audience_rules",
          "qualification_by_dimension",
          "max_active_assignments_per_reviewer",
          "protected_attribute_matching_prohibited",
          "candidate_output_allowlist",
          "policy_sha256"
        ],
        "title": "CulturalReviewPolicy",
        "type": "object"
      },
      "CulturalReviewQuorumVerdict": {
        "additionalProperties": false,
        "properties": {
          "approved_community_context_ids": {
            "items": {
              "type": "string"
            },
            "title": "Approved Community Context Ids",
            "type": "array"
          },
          "approved_locales": {
            "items": {
              "type": "string"
            },
            "title": "Approved Locales",
            "type": "array"
          },
          "approved_regions": {
            "items": {
              "type": "string"
            },
            "title": "Approved Regions",
            "type": "array"
          },
          "assignment_run_id": {
            "title": "Assignment Run Id",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "publication_allowed": {
            "title": "Publication Allowed",
            "type": "boolean"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "required_community_context_ids": {
            "items": {
              "type": "string"
            },
            "title": "Required Community Context Ids",
            "type": "array"
          },
          "required_locales": {
            "items": {
              "type": "string"
            },
            "title": "Required Locales",
            "type": "array"
          },
          "required_regions": {
            "items": {
              "type": "string"
            },
            "title": "Required Regions",
            "type": "array"
          },
          "requirements": {
            "items": {
              "$ref": "#/components/schemas/ReviewRequirementQuorum"
            },
            "title": "Requirements",
            "type": "array"
          },
          "schema_version": {
            "const": "5.15.0",
            "default": "5.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": ["approved", "pending", "blocked", "expired", "conflicted"],
            "title": "State",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          },
          "target_revision": {
            "title": "Target Revision",
            "type": "integer"
          },
          "target_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Revision Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "trigger_id": {
            "title": "Trigger Id",
            "type": "string"
          },
          "trigger_kind": {
            "enum": ["assignment", "event", "decision", "admission"],
            "title": "Trigger Kind",
            "type": "string"
          },
          "verdict_id": {
            "title": "Verdict Id",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          }
        },
        "required": [
          "verdict_id",
          "tenant_id",
          "assignment_run_id",
          "target_id",
          "target_revision",
          "target_revision_sha256",
          "trigger_kind",
          "trigger_id",
          "state",
          "requirements",
          "required_locales",
          "approved_locales",
          "required_regions",
          "approved_regions",
          "required_community_context_ids",
          "approved_community_context_ids",
          "evaluated_at",
          "expires_at",
          "publication_allowed",
          "reason_codes",
          "verdict_sha256"
        ],
        "title": "CulturalReviewQuorumVerdict",
        "type": "object"
      },
      "CulturalReviewRequirement": {
        "additionalProperties": false,
        "properties": {
          "community_context_id": {
            "anyOf": [
              {
                "maxLength": 120,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Community Context Id"
          },
          "dimension": {
            "enum": ["cultural", "regional", "language"],
            "title": "Dimension",
            "type": "string"
          },
          "discipline_id": {
            "maxLength": 120,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Discipline Id",
            "type": "string"
          },
          "independence_required": {
            "title": "Independence Required",
            "type": "boolean"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "minimum_reviewers": {
            "maximum": 4.0,
            "minimum": 1.0,
            "title": "Minimum Reviewers",
            "type": "integer"
          },
          "region": {
            "anyOf": [
              {
                "maxLength": 120,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          },
          "required_qualification_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Required Qualification Ids",
            "type": "array"
          },
          "requirement_id": {
            "pattern": "^review-requirement:[A-Za-z0-9._:-]{6,160}$",
            "title": "Requirement Id",
            "type": "string"
          }
        },
        "required": [
          "requirement_id",
          "dimension",
          "locale",
          "discipline_id",
          "required_qualification_ids",
          "minimum_reviewers",
          "independence_required"
        ],
        "title": "CulturalReviewRequirement",
        "type": "object"
      },
      "CulturalReviewTarget": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "audience": {
            "enum": ["general_adult", "youth", "professional", "high_stakes"],
            "title": "Audience",
            "type": "string"
          },
          "content_kind": {
            "enum": [
              "course",
              "lesson",
              "item",
              "assessment",
              "answer",
              "rationale",
              "feedback",
              "hint"
            ],
            "title": "Content Kind",
            "type": "string"
          },
          "course_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "discipline_id": {
            "maxLength": 120,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Discipline Id",
            "type": "string"
          },
          "lesson_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "required_community_context_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Required Community Context Ids",
            "type": "array"
          },
          "required_locales": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Required Locales",
            "type": "array"
          },
          "required_regions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Required Regions",
            "type": "array"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "surfaces": {
            "items": {
              "enum": ["build", "publication", "delivery"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Surfaces",
            "type": "array"
          },
          "target_id": {
            "maxLength": 180,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": [
          "content_kind",
          "target_id",
          "revision",
          "revision_sha256",
          "audience",
          "risk",
          "discipline_id",
          "required_locales",
          "surfaces"
        ],
        "title": "CulturalReviewTarget",
        "type": "object"
      },
      "CulturalReviewWorkspace": {
        "additionalProperties": false,
        "properties": {
          "assignment_run": {
            "$ref": "#/components/schemas/CulturalReviewAssignmentRun"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/CulturalReviewDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/CulturalReviewAssignmentEvent"
            },
            "title": "Events",
            "type": "array"
          },
          "quorum": {
            "$ref": "#/components/schemas/CulturalReviewQuorumVerdict"
          }
        },
        "required": ["assignment_run", "events", "decisions", "quorum"],
        "title": "CulturalReviewWorkspace",
        "type": "object"
      },
      "CurationRecord": {
        "additionalProperties": false,
        "description": "Who curated the candidate into a dataset, and what they removed.\n\nCuration is a separate act from assembly: ``curated_by`` is checked against\nthe candidate's assembler by the engine, because the party who gathered the\nmaterial is not the party who says it is fit.",
        "properties": {
          "curated_at": {
            "format": "date-time",
            "title": "Curated At",
            "type": "string"
          },
          "curated_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Curated By",
            "type": "string"
          },
          "curated_by_role": {
            "enum": ["data_curator", "subject_lead"],
            "title": "Curated By Role",
            "type": "string"
          },
          "records_removed": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Records Removed",
            "type": "integer"
          },
          "removal_reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Removal Reason",
            "type": "string"
          }
        },
        "required": [
          "curated_by",
          "curated_by_role",
          "curated_at",
          "records_removed",
          "removal_reason"
        ],
        "title": "CurationRecord",
        "type": "object"
      },
      "CurriculumBriefAccessibilityConstraints": {
        "additionalProperties": false,
        "properties": {
          "accommodation_process": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Accommodation Process",
            "type": "string"
          },
          "conformance_target": {
            "enum": ["WCAG2.2-A", "WCAG2.2-AA", "WCAG2.2-AAA"],
            "title": "Conformance Target",
            "type": "string"
          },
          "requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Requirements",
            "type": "array"
          }
        },
        "required": ["conformance_target", "requirements", "accommodation_process"],
        "title": "CurriculumBriefAccessibilityConstraints",
        "type": "object"
      },
      "CurriculumBriefAssessmentComponent": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Accommodations",
            "type": "array"
          },
          "assessment_type": {
            "enum": ["formative", "summative", "diagnostic", "authentic"],
            "title": "Assessment Type",
            "type": "string"
          },
          "component_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Component Id",
            "type": "string"
          },
          "feedback_methods": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Feedback Methods",
            "type": "array"
          },
          "feedback_turnaround_hours": {
            "maximum": 8760.0,
            "minimum": 0.0,
            "title": "Feedback Turnaround Hours",
            "type": "integer"
          },
          "frequency_count": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Frequency Count",
            "type": "integer"
          },
          "frequency_unit": {
            "enum": ["course", "module", "week", "lesson"],
            "title": "Frequency Unit",
            "type": "string"
          },
          "outcome_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Outcome Ids",
            "type": "array"
          },
          "purpose": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "security": {
            "enum": ["open", "authenticated", "identity_verified", "proctored"],
            "title": "Security",
            "type": "string"
          },
          "weight_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Weight Percent",
            "type": "integer"
          }
        },
        "required": [
          "component_id",
          "assessment_type",
          "purpose",
          "weight_percent",
          "frequency_count",
          "frequency_unit",
          "security",
          "accommodations",
          "feedback_methods",
          "feedback_turnaround_hours",
          "outcome_ids"
        ],
        "title": "CurriculumBriefAssessmentComponent",
        "type": "object"
      },
      "CurriculumBriefAssessmentStrategy": {
        "additionalProperties": false,
        "properties": {
          "components": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefAssessmentComponent"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Components",
            "type": "array"
          },
          "integrity_policy": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Integrity Policy",
            "type": "string"
          },
          "passing_standard": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Passing Standard",
            "type": "string"
          },
          "retake_policy": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Retake Policy",
            "type": "string"
          }
        },
        "required": ["components", "passing_standard", "retake_policy", "integrity_policy"],
        "title": "CurriculumBriefAssessmentStrategy",
        "type": "object"
      },
      "CurriculumBriefAudience": {
        "additionalProperties": false,
        "properties": {
          "accessibility_needs": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Accessibility Needs",
            "type": "array"
          },
          "age_max": {
            "maximum": 120.0,
            "minimum": 3.0,
            "title": "Age Max",
            "type": "integer"
          },
          "age_min": {
            "maximum": 120.0,
            "minimum": 3.0,
            "title": "Age Min",
            "type": "integer"
          },
          "contexts": {
            "items": {
              "enum": [
                "early_learning",
                "k12",
                "higher_education",
                "workforce",
                "professional",
                "community",
                "self_directed",
                "special_education"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Contexts",
            "type": "array"
          },
          "enrollment_expected": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Enrollment Expected",
            "type": "integer"
          },
          "enrollment_max": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Enrollment Max",
            "type": "integer"
          },
          "enrollment_min": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Enrollment Min",
            "type": "integer"
          },
          "grade_max": {
            "anyOf": [
              {
                "maximum": 20.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grade Max"
          },
          "grade_min": {
            "anyOf": [
              {
                "maximum": 20.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grade Min"
          },
          "intended_learners": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Intended Learners",
            "type": "string"
          },
          "language_tags": {
            "items": {
              "maxLength": 63,
              "minLength": 2,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Language Tags",
            "type": "array"
          },
          "learner_context": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Learner Context",
            "type": "string"
          }
        },
        "required": [
          "intended_learners",
          "contexts",
          "age_min",
          "age_max",
          "enrollment_min",
          "enrollment_expected",
          "enrollment_max",
          "language_tags",
          "learner_context",
          "accessibility_needs"
        ],
        "title": "CurriculumBriefAudience",
        "type": "object"
      },
      "CurriculumBriefBudgetConstraints": {
        "additionalProperties": false,
        "properties": {
          "currency": {
            "anyOf": [
              {
                "pattern": "^[A-Z]{3}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "maximum_amount_minor_units": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Amount Minor Units"
          },
          "no_budget_limit": {
            "default": false,
            "title": "No Budget Limit",
            "type": "boolean"
          },
          "restrictions": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Restrictions",
            "type": "array"
          }
        },
        "title": "CurriculumBriefBudgetConstraints",
        "type": "object"
      },
      "CurriculumBriefCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "briefs": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefHistoryResponse"
            },
            "title": "Briefs",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["generated_at", "briefs"],
        "title": "CurriculumBriefCollectionResponse",
        "type": "object"
      },
      "CurriculumBriefConstraints": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/CurriculumBriefAccessibilityConstraints"
          },
          "budget": {
            "$ref": "#/components/schemas/CurriculumBriefBudgetConstraints"
          },
          "institution": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefInstitutionConstraint"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Institution",
            "type": "array"
          },
          "region_codes": {
            "items": {
              "maxLength": 16,
              "minLength": 2,
              "pattern": "^(?:[A-Z]{2}|[A-Z]{2}-[A-Z0-9]{1,8}|GLOBAL)$",
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Region Codes",
            "type": "array"
          },
          "rights": {
            "$ref": "#/components/schemas/CurriculumBriefRightsConstraints"
          },
          "safety": {
            "$ref": "#/components/schemas/CurriculumBriefSafetyConstraints"
          },
          "schedule": {
            "$ref": "#/components/schemas/CurriculumBriefScheduleConstraints"
          },
          "technology": {
            "$ref": "#/components/schemas/CurriculumBriefTechnologyConstraints"
          }
        },
        "required": [
          "institution",
          "region_codes",
          "safety",
          "accessibility",
          "rights",
          "technology",
          "budget",
          "schedule"
        ],
        "title": "CurriculumBriefConstraints",
        "type": "object"
      },
      "CurriculumBriefDeliveryPlan": {
        "additionalProperties": false,
        "properties": {
          "attendance_mode": {
            "enum": ["in_person", "online", "blended"],
            "title": "Attendance Mode",
            "type": "string"
          },
          "calendar_weeks": {
            "maximum": 520.0,
            "minimum": 1.0,
            "title": "Calendar Weeks",
            "type": "integer"
          },
          "device_types": {
            "items": {
              "enum": ["desktop", "laptop", "tablet", "phone", "shared_device", "assistive_device"],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Device Types",
            "type": "array"
          },
          "language_tags": {
            "items": {
              "maxLength": 63,
              "minLength": 2,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Language Tags",
            "type": "array"
          },
          "maximum_bandwidth_kbps": {
            "anyOf": [
              {
                "maximum": 10000000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Bandwidth Kbps"
          },
          "offline_access": {
            "enum": ["unavailable", "partial", "full"],
            "title": "Offline Access",
            "type": "string"
          },
          "offline_requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Offline Requirements",
            "type": "array"
          },
          "primary_locale": {
            "maxLength": 63,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Primary Locale",
            "type": "string"
          },
          "seat_time_minutes": {
            "maximum": 5000000.0,
            "minimum": 0.0,
            "title": "Seat Time Minutes",
            "type": "integer"
          },
          "self_study_minutes": {
            "maximum": 5000000.0,
            "minimum": 0.0,
            "title": "Self Study Minutes",
            "type": "integer"
          },
          "synchrony": {
            "enum": ["synchronous", "asynchronous", "mixed"],
            "title": "Synchrony",
            "type": "string"
          },
          "time_zone": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Time Zone",
            "type": "string"
          },
          "total_duration_minutes": {
            "maximum": 5000000.0,
            "minimum": 1.0,
            "title": "Total Duration Minutes",
            "type": "integer"
          }
        },
        "required": [
          "total_duration_minutes",
          "calendar_weeks",
          "seat_time_minutes",
          "self_study_minutes",
          "attendance_mode",
          "synchrony",
          "primary_locale",
          "language_tags",
          "time_zone",
          "offline_access"
        ],
        "title": "CurriculumBriefDeliveryPlan",
        "type": "object"
      },
      "CurriculumBriefFloorValues": {
        "additionalProperties": false,
        "properties": {
          "maximum_enrollment": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Enrollment"
          },
          "maximum_feedback_turnaround_hours": {
            "maximum": 8760.0,
            "minimum": 0.0,
            "title": "Maximum Feedback Turnaround Hours",
            "type": "integer"
          },
          "minimum_accessibility_level": {
            "enum": ["WCAG2.2-A", "WCAG2.2-AA", "WCAG2.2-AAA"],
            "title": "Minimum Accessibility Level",
            "type": "string"
          },
          "minimum_outcomes": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Minimum Outcomes",
            "type": "integer"
          },
          "minimum_standards": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Minimum Standards",
            "type": "integer"
          },
          "minimum_success_criteria_per_outcome": {
            "maximum": 32.0,
            "minimum": 1.0,
            "title": "Minimum Success Criteria Per Outcome",
            "type": "integer"
          },
          "offline_plan_required": {
            "title": "Offline Plan Required",
            "type": "boolean"
          },
          "required_assessment_types": {
            "items": {
              "enum": ["formative", "summative", "diagnostic", "authentic"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Required Assessment Types",
            "type": "array"
          }
        },
        "required": [
          "minimum_outcomes",
          "minimum_standards",
          "minimum_success_criteria_per_outcome",
          "required_assessment_types",
          "maximum_feedback_turnaround_hours",
          "minimum_accessibility_level",
          "offline_plan_required"
        ],
        "title": "CurriculumBriefFloorValues",
        "type": "object"
      },
      "CurriculumBriefHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Brief Id",
            "type": "string"
          },
          "current_revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Current Revision Id",
            "type": "string"
          },
          "planning_ready": {
            "title": "Planning Ready",
            "type": "boolean"
          },
          "review_status": {
            "enum": ["unreviewed", "accepted", "changes_requested", "rejected", "stale"],
            "title": "Review Status",
            "type": "string"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefReviewDecisionResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/CurriculumBriefScope"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "brief_id",
          "tenant_id",
          "title",
          "scope",
          "current_revision_id",
          "review_status",
          "planning_ready",
          "revisions",
          "reviews"
        ],
        "title": "CurriculumBriefHistoryResponse",
        "type": "object"
      },
      "CurriculumBriefInstitutionConstraint": {
        "additionalProperties": false,
        "properties": {
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "mandatory": {
            "default": true,
            "title": "Mandatory",
            "type": "boolean"
          },
          "policy_code": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Policy Code",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["policy_code", "policy_version", "statement", "evidence_ref"],
        "title": "CurriculumBriefInstitutionConstraint",
        "type": "object"
      },
      "CurriculumBriefInstitutionFloorRequest": {
        "additionalProperties": false,
        "properties": {
          "floor_version": {
            "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
            "title": "Floor Version",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "values": {
            "$ref": "#/components/schemas/CurriculumBriefFloorValues"
          }
        },
        "required": ["institution_id", "floor_version", "values", "rationale", "idempotency_key"],
        "title": "CurriculumBriefInstitutionFloorRequest",
        "type": "object"
      },
      "CurriculumBriefInstitutionFloorResponse": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "floor_id": {
            "pattern": "^brieffloor_[a-f0-9]{40}$",
            "title": "Floor Id",
            "type": "string"
          },
          "floor_version": {
            "title": "Floor Version",
            "type": "string"
          },
          "institution_id": {
            "title": "Institution Id",
            "type": "string"
          },
          "previous_floor_id": {
            "anyOf": [
              {
                "pattern": "^brieffloor_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Floor Id"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "values": {
            "$ref": "#/components/schemas/CurriculumBriefFloorValues"
          }
        },
        "required": [
          "floor_id",
          "institution_id",
          "floor_version",
          "values",
          "rationale",
          "created_by",
          "created_at",
          "self_sha256"
        ],
        "title": "CurriculumBriefInstitutionFloorResponse",
        "type": "object"
      },
      "CurriculumBriefOutcome": {
        "additionalProperties": false,
        "properties": {
          "evidence_expectations": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence Expectations",
            "type": "array"
          },
          "measurable_verb": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Measurable Verb",
            "type": "string"
          },
          "outcome_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Outcome Id",
            "type": "string"
          },
          "priority": {
            "enum": ["essential", "supporting", "extension"],
            "title": "Priority",
            "type": "string"
          },
          "standard_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Standard Codes",
            "type": "array"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "success_criteria": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Success Criteria",
            "type": "array"
          }
        },
        "required": [
          "outcome_id",
          "statement",
          "measurable_verb",
          "success_criteria",
          "evidence_expectations",
          "priority"
        ],
        "title": "CurriculumBriefOutcome",
        "type": "object"
      },
      "CurriculumBriefPlanningReadinessResponse": {
        "additionalProperties": false,
        "properties": {
          "brief_id": {
            "title": "Brief Id",
            "type": "string"
          },
          "checked_at": {
            "format": "date-time",
            "title": "Checked At",
            "type": "string"
          },
          "ready": {
            "const": true,
            "title": "Ready",
            "type": "boolean"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "revision_id": {
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          }
        },
        "required": [
          "brief_id",
          "revision_id",
          "revision_sha256",
          "validation_sha256",
          "review_id",
          "source_package_id",
          "ready",
          "checked_at"
        ],
        "title": "CurriculumBriefPlanningReadinessResponse",
        "type": "object"
      },
      "CurriculumBriefPolicyResponse": {
        "additionalProperties": false,
        "properties": {
          "code_floor": {
            "$ref": "#/components/schemas/CurriculumBriefFloorValues"
          },
          "code_floor_version": {
            "const": "metis-curriculum-brief-code-floor-v1",
            "title": "Code Floor Version",
            "type": "string"
          },
          "effective_floor": {
            "$ref": "#/components/schemas/CurriculumBriefFloorValues"
          },
          "institution_floor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CurriculumBriefInstitutionFloorResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["code_floor_version", "code_floor", "institution_floor", "effective_floor"],
        "title": "CurriculumBriefPolicyResponse",
        "type": "object"
      },
      "CurriculumBriefPrerequisite": {
        "additionalProperties": false,
        "properties": {
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "kind": {
            "enum": ["knowledge", "skill"],
            "title": "Kind",
            "type": "string"
          },
          "minimum_proficiency_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Proficiency Percent",
            "type": "integer"
          },
          "prerequisite_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Prerequisite Id",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": [
          "prerequisite_id",
          "kind",
          "statement",
          "minimum_proficiency_percent",
          "evidence_refs"
        ],
        "title": "CurriculumBriefPrerequisite",
        "type": "object"
      },
      "CurriculumBriefPrerequisitePlan": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefPrerequisite"
            },
            "maxItems": 256,
            "title": "Items",
            "type": "array"
          },
          "none_rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "None Rationale"
          },
          "state": {
            "enum": ["required", "none"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["state"],
        "title": "CurriculumBriefPrerequisitePlan",
        "type": "object"
      },
      "CurriculumBriefReviewDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Brief Id",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "review_id": {
            "pattern": "^briefreview_[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "brief_id",
          "revision_id",
          "revision_sha256",
          "validation_sha256",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewer_role",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "CurriculumBriefReviewDecisionResponse",
        "type": "object"
      },
      "CurriculumBriefReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "expected_validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Validation Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": [
          "action",
          "expected_revision_sha256",
          "expected_validation_sha256",
          "comment",
          "idempotency_key"
        ],
        "title": "CurriculumBriefReviewRequest",
        "type": "object"
      },
      "CurriculumBriefRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "assessment_strategy": {
            "$ref": "#/components/schemas/CurriculumBriefAssessmentStrategy"
          },
          "audience": {
            "$ref": "#/components/schemas/CurriculumBriefAudience"
          },
          "constraints": {
            "$ref": "#/components/schemas/CurriculumBriefConstraints"
          },
          "delivery": {
            "$ref": "#/components/schemas/CurriculumBriefDeliveryPlan"
          },
          "expected_previous_revision_id": {
            "anyOf": [
              {
                "pattern": "^briefrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Previous Revision Id"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "outcomes": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefOutcome"
            },
            "maxItems": 512,
            "minItems": 1,
            "title": "Outcomes",
            "type": "array"
          },
          "prerequisites": {
            "$ref": "#/components/schemas/CurriculumBriefPrerequisitePlan"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/CurriculumBriefScope"
          },
          "source_references": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefSourceReference"
            },
            "maxItems": 512,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          },
          "standards": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefStandardAlignment"
            },
            "maxItems": 512,
            "minItems": 1,
            "title": "Standards",
            "type": "array"
          },
          "submission_state": {
            "enum": ["draft", "submitted"],
            "title": "Submission State",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "submission_state",
          "title",
          "summary",
          "scope",
          "audience",
          "source_references",
          "prerequisites",
          "outcomes",
          "standards",
          "constraints",
          "delivery",
          "assessment_strategy"
        ],
        "title": "CurriculumBriefRevisionRequest",
        "type": "object"
      },
      "CurriculumBriefRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "assessment_strategy": {
            "$ref": "#/components/schemas/CurriculumBriefAssessmentStrategy"
          },
          "audience": {
            "$ref": "#/components/schemas/CurriculumBriefAudience"
          },
          "brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Brief Id",
            "type": "string"
          },
          "constraints": {
            "$ref": "#/components/schemas/CurriculumBriefConstraints"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "created_by_role": {
            "enum": ["instructor", "admin"],
            "title": "Created By Role",
            "type": "string"
          },
          "delivery": {
            "$ref": "#/components/schemas/CurriculumBriefDeliveryPlan"
          },
          "outcomes": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefOutcome"
            },
            "title": "Outcomes",
            "type": "array"
          },
          "prerequisites": {
            "$ref": "#/components/schemas/CurriculumBriefPrerequisitePlan"
          },
          "previous_revision_id": {
            "anyOf": [
              {
                "pattern": "^briefrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Id"
          },
          "revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/CurriculumBriefScope"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_references": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefSourceReference"
            },
            "title": "Source References",
            "type": "array"
          },
          "standards": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefStandardAlignment"
            },
            "title": "Standards",
            "type": "array"
          },
          "submission_state": {
            "enum": ["draft", "submitted"],
            "title": "Submission State",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "validation": {
            "$ref": "#/components/schemas/CurriculumBriefValidationResponse"
          }
        },
        "required": [
          "brief_id",
          "revision_id",
          "revision_number",
          "tenant_id",
          "submission_state",
          "title",
          "summary",
          "scope",
          "audience",
          "source_references",
          "prerequisites",
          "outcomes",
          "standards",
          "constraints",
          "delivery",
          "assessment_strategy",
          "validation",
          "created_by",
          "created_by_role",
          "created_at",
          "self_sha256"
        ],
        "title": "CurriculumBriefRevisionResponse",
        "type": "object"
      },
      "CurriculumBriefRightsConstraints": {
        "additionalProperties": false,
        "properties": {
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "required_permissions": {
            "items": {
              "enum": ["access", "use", "reproduce", "adapt", "teach", "train", "distribute"],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 1,
            "title": "Required Permissions",
            "type": "array"
          },
          "restrictions": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Restrictions",
            "type": "array"
          }
        },
        "required": ["required_permissions", "evidence_refs"],
        "title": "CurriculumBriefRightsConstraints",
        "type": "object"
      },
      "CurriculumBriefSafetyConstraints": {
        "additionalProperties": false,
        "properties": {
          "escalation_path": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Path"
          },
          "requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Requirements",
            "type": "array"
          },
          "risk_level": {
            "enum": ["none", "general", "elevated", "high"],
            "title": "Risk Level",
            "type": "string"
          }
        },
        "required": ["risk_level"],
        "title": "CurriculumBriefSafetyConstraints",
        "type": "object"
      },
      "CurriculumBriefScheduleConstraints": {
        "additionalProperties": false,
        "properties": {
          "blackout_dates": {
            "items": {
              "format": "date",
              "type": "string"
            },
            "maxItems": 512,
            "title": "Blackout Dates",
            "type": "array"
          },
          "delivery_deadline": {
            "format": "date",
            "title": "Delivery Deadline",
            "type": "string"
          },
          "planned_end": {
            "format": "date",
            "title": "Planned End",
            "type": "string"
          },
          "planned_start": {
            "format": "date",
            "title": "Planned Start",
            "type": "string"
          }
        },
        "required": ["planned_start", "planned_end", "delivery_deadline"],
        "title": "CurriculumBriefScheduleConstraints",
        "type": "object"
      },
      "CurriculumBriefScope": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "institution_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          },
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Name",
            "type": "string"
          },
          "program_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Program Id"
          },
          "scope_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scope Id",
            "type": "string"
          },
          "scope_type": {
            "enum": ["course", "program"],
            "title": "Scope Type",
            "type": "string"
          }
        },
        "required": ["scope_type", "scope_id", "institution_id", "owner_id", "owner_name"],
        "title": "CurriculumBriefScope",
        "type": "object"
      },
      "CurriculumBriefSourceReference": {
        "additionalProperties": false,
        "properties": {
          "external_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "pattern": "^https://",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Uri"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "reference_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reference Id",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "role": {
            "enum": ["primary", "supporting", "standards", "policy", "assessment"],
            "title": "Role",
            "type": "string"
          },
          "source_package_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "source_version_record_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Source Version Record Ids",
            "type": "array"
          }
        },
        "required": ["reference_id", "role", "label"],
        "title": "CurriculumBriefSourceReference",
        "type": "object"
      },
      "CurriculumBriefStandardAlignment": {
        "additionalProperties": false,
        "properties": {
          "alignment_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Alignment Id",
            "type": "string"
          },
          "coverage_level": {
            "enum": ["introduced", "reinforced", "mastered", "assessed"],
            "title": "Coverage Level",
            "type": "string"
          },
          "coverage_percent": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Coverage Percent",
            "type": "integer"
          },
          "framework_name": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Framework Name",
            "type": "string"
          },
          "framework_uri": {
            "maxLength": 2048,
            "pattern": "^https://",
            "title": "Framework Uri",
            "type": "string"
          },
          "framework_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Framework Version",
            "type": "string"
          },
          "outcome_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Outcome Ids",
            "type": "array"
          },
          "standard_code": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Standard Code",
            "type": "string"
          },
          "standard_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "pattern": "^https://",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Uri"
          }
        },
        "required": [
          "alignment_id",
          "framework_name",
          "framework_version",
          "framework_uri",
          "standard_code",
          "coverage_level",
          "coverage_percent",
          "outcome_ids"
        ],
        "title": "CurriculumBriefStandardAlignment",
        "type": "object"
      },
      "CurriculumBriefTechnologyConstraints": {
        "additionalProperties": false,
        "properties": {
          "data_classification": {
            "enum": ["public", "institution_internal", "confidential"],
            "title": "Data Classification",
            "type": "string"
          },
          "device_types": {
            "items": {
              "enum": ["desktop", "laptop", "tablet", "phone", "shared_device", "assistive_device"],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Device Types",
            "type": "array"
          },
          "prohibited_technologies": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Prohibited Technologies",
            "type": "array"
          },
          "required_software": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Required Software",
            "type": "array"
          }
        },
        "required": ["device_types", "data_classification"],
        "title": "CurriculumBriefTechnologyConstraints",
        "type": "object"
      },
      "CurriculumBriefValidationIssue": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "field_path": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "floor_source": {
            "enum": ["schema", "code", "institution", "source"],
            "title": "Floor Source",
            "type": "string"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "severity": {
            "enum": ["error", "warning"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "severity", "field_path", "message", "floor_source"],
        "title": "CurriculumBriefValidationIssue",
        "type": "object"
      },
      "CurriculumBriefValidationResponse": {
        "additionalProperties": false,
        "properties": {
          "eligible_for_submission": {
            "title": "Eligible For Submission",
            "type": "boolean"
          },
          "error_count": {
            "minimum": 0.0,
            "title": "Error Count",
            "type": "integer"
          },
          "input_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Sha256",
            "type": "string"
          },
          "issue_count": {
            "minimum": 0.0,
            "title": "Issue Count",
            "type": "integer"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefValidationIssue"
            },
            "title": "Issues",
            "type": "array"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "2.10.0",
            "default": "2.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "validated_at": {
            "format": "date-time",
            "title": "Validated At",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          },
          "warning_count": {
            "minimum": 0.0,
            "title": "Warning Count",
            "type": "integer"
          }
        },
        "required": [
          "input_sha256",
          "policy_sha256",
          "validation_sha256",
          "validated_at",
          "issue_count",
          "error_count",
          "warning_count",
          "eligible_for_submission",
          "issues"
        ],
        "title": "CurriculumBriefValidationResponse",
        "type": "object"
      },
      "CurriculumCanonicalTextResponse": {
        "description": "Reading-list entry for canonical or reference texts.",
        "properties": {
          "authors_or_tradition": {
            "title": "Authors Or Tradition",
            "type": "string"
          },
          "depth_tiers": {
            "items": {
              "enum": ["introductory", "intermediate", "advanced"],
              "type": "string"
            },
            "title": "Depth Tiers",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rights_note": {
            "title": "Rights Note",
            "type": "string"
          },
          "scope_note": {
            "title": "Scope Note",
            "type": "string"
          },
          "text_kind": {
            "enum": ["primary_text", "reference", "source_collection", "open_text"],
            "title": "Text Kind",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "authors_or_tradition",
          "text_kind",
          "scope_note",
          "rights_note"
        ],
        "title": "CurriculumCanonicalTextResponse",
        "type": "object"
      },
      "CurriculumConceptDraft": {
        "additionalProperties": false,
        "properties": {
          "aliases": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Aliases",
            "type": "array"
          },
          "annotation": {
            "default": "",
            "maxLength": 4000,
            "title": "Annotation",
            "type": "string"
          },
          "concept_id": {
            "pattern": "^concept_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Concept Id",
            "type": "string"
          },
          "definition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Definition",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "node_type": {
            "enum": ["topic", "skill", "fact", "principle", "procedure", "example"],
            "title": "Node Type",
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/CurriculumMapOwner"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptSource"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Sources",
            "type": "array"
          }
        },
        "required": [
          "concept_id",
          "node_type",
          "label",
          "definition",
          "locale",
          "owner",
          "sources"
        ],
        "title": "CurriculumConceptDraft",
        "type": "object"
      },
      "CurriculumConceptEdge": {
        "additionalProperties": false,
        "properties": {
          "edge_id": {
            "pattern": "^concept_edge_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Edge Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "relationship_kind": {
            "enum": ["prerequisite", "part_of", "example", "contrast", "causal", "related"],
            "title": "Relationship Kind",
            "type": "string"
          },
          "source_concept_id": {
            "pattern": "^concept_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Source Concept Id",
            "type": "string"
          },
          "target_concept_id": {
            "pattern": "^concept_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Target Concept Id",
            "type": "string"
          }
        },
        "required": [
          "edge_id",
          "source_concept_id",
          "target_concept_id",
          "relationship_kind",
          "rationale"
        ],
        "title": "CurriculumConceptEdge",
        "type": "object"
      },
      "CurriculumConceptGraphEdgeResponse": {
        "description": "Concept graph relation derived from seed-pack prerequisite structure.",
        "properties": {
          "confidence": {
            "default": 0.85,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "source_concept_id": {
            "title": "Source Concept Id",
            "type": "string"
          },
          "target_concept_id": {
            "title": "Target Concept Id",
            "type": "string"
          },
          "type": {
            "enum": ["prerequisite", "enables", "related"],
            "title": "Type",
            "type": "string"
          },
          "weight": {
            "default": 0.8,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Weight",
            "type": "number"
          }
        },
        "required": ["id", "source_concept_id", "target_concept_id", "type", "rationale"],
        "title": "CurriculumConceptGraphEdgeResponse",
        "type": "object"
      },
      "CurriculumConceptGraphNodeResponse": {
        "description": "Concept graph node derived from the core-discipline seed pack.",
        "properties": {
          "depth_tier": {
            "enum": ["introductory", "intermediate", "advanced"],
            "title": "Depth Tier",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "difficulty": {
            "default": 0.5,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Difficulty",
            "type": "number"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "glossary_term_id": {
            "title": "Glossary Term Id",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "importance": {
            "default": 0.5,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Importance",
            "type": "number"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "misconception_ids": {
            "items": {
              "type": "string"
            },
            "title": "Misconception Ids",
            "type": "array"
          },
          "related_terms": {
            "items": {
              "type": "string"
            },
            "title": "Related Terms",
            "type": "array"
          },
          "source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Item Ids",
            "type": "array"
          },
          "subfield_id": {
            "title": "Subfield Id",
            "type": "string"
          },
          "type": {
            "default": "topic",
            "enum": ["topic", "skill", "fact", "procedure", "principle"],
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["id", "label", "subfield_id", "depth_tier", "glossary_term_id"],
        "title": "CurriculumConceptGraphNodeResponse",
        "type": "object"
      },
      "CurriculumConceptGraphResponse": {
        "description": "Launch concept graph for one Metis core discipline.",
        "properties": {
          "citation_focus_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Citation Focus Concept Ids",
            "type": "array"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "edges": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptGraphEdgeResponse"
            },
            "title": "Edges",
            "type": "array"
          },
          "graph_id": {
            "title": "Graph Id",
            "type": "string"
          },
          "misconception_detector_ids": {
            "items": {
              "type": "string"
            },
            "title": "Misconception Detector Ids",
            "type": "array"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptGraphNodeResponse"
            },
            "title": "Nodes",
            "type": "array"
          },
          "retrieval_seed_terms": {
            "items": {
              "type": "string"
            },
            "title": "Retrieval Seed Terms",
            "type": "array"
          }
        },
        "required": ["graph_id", "discipline_id", "discipline_title"],
        "title": "CurriculumConceptGraphResponse",
        "type": "object"
      },
      "CurriculumConceptResponse": {
        "description": "One canonical concept in a core-discipline seed pack.",
        "properties": {
          "aliases": {
            "items": {
              "type": "string"
            },
            "title": "Aliases",
            "type": "array"
          },
          "depth_tier": {
            "enum": ["introductory", "intermediate", "advanced"],
            "title": "Depth Tier",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "subfield_id": {
            "title": "Subfield Id",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "subfield_id", "depth_tier", "summary"],
        "title": "CurriculumConceptResponse",
        "type": "object"
      },
      "CurriculumConceptRevision": {
        "additionalProperties": false,
        "properties": {
          "aliases": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Aliases",
            "type": "array"
          },
          "annotation": {
            "default": "",
            "maxLength": 4000,
            "title": "Annotation",
            "type": "string"
          },
          "concept_id": {
            "pattern": "^concept_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Concept Id",
            "type": "string"
          },
          "concept_revision_id": {
            "pattern": "^conceptrev_[a-f0-9]{40}$",
            "title": "Concept Revision Id",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "definition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Definition",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "node_type": {
            "enum": ["topic", "skill", "fact", "principle", "procedure", "example"],
            "title": "Node Type",
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/CurriculumMapOwner"
          },
          "previous_concept_revision_id": {
            "anyOf": [
              {
                "pattern": "^conceptrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Concept Revision Id"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptSource"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Sources",
            "type": "array"
          }
        },
        "required": [
          "concept_id",
          "node_type",
          "label",
          "definition",
          "locale",
          "owner",
          "sources",
          "concept_revision_id",
          "revision_number",
          "content_sha256"
        ],
        "title": "CurriculumConceptRevision",
        "type": "object"
      },
      "CurriculumConceptSource": {
        "additionalProperties": false,
        "properties": {
          "citation_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Citation Id"
          },
          "content_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Sha256"
          },
          "locator": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "source_id": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_kind": {
            "enum": ["curriculum_brief", "source_package", "standard", "external"],
            "title": "Source Kind",
            "type": "string"
          },
          "source_version": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Version",
            "type": "string"
          },
          "uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "pattern": "^https://",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Uri"
          }
        },
        "required": ["source_kind", "source_id", "source_version", "locator"],
        "title": "CurriculumConceptSource",
        "type": "object"
      },
      "CurriculumCrossCoreInterlockResponse": {
        "description": "One actively curated cross-core discipline pairing.",
        "properties": {
          "curated_concept_paths": {
            "items": {
              "type": "string"
            },
            "title": "Curated Concept Paths",
            "type": "array"
          },
          "discipline_ids": {
            "items": {
              "enum": [
                "philosophy",
                "religion",
                "psychology",
                "neuroscience",
                "anthropology",
                "astronomy"
              ],
              "type": "string"
            },
            "title": "Discipline Ids",
            "type": "array"
          },
          "gold_set_sample": {
            "$ref": "#/components/schemas/CurriculumInterlockGoldSetSampleResponse"
          },
          "interlock_id": {
            "title": "Interlock Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "review": {
            "$ref": "#/components/schemas/CurriculumInterlockReviewResponse"
          },
          "supporting_subject_hooks": {
            "items": {
              "type": "string"
            },
            "title": "Supporting Subject Hooks",
            "type": "array"
          },
          "themes": {
            "items": {
              "type": "string"
            },
            "title": "Themes",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["interlock_id", "title", "rationale", "gold_set_sample", "review"],
        "title": "CurriculumCrossCoreInterlockResponse",
        "type": "object"
      },
      "CurriculumDecisionAlternativeExpectation": {
        "additionalProperties": false,
        "description": "Caller witness for every alternative visible at decision time.",
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          },
          "variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": ["variant_id", "content_sha256", "self_sha256", "validation_sha256"],
        "title": "CurriculumDecisionAlternativeExpectation",
        "type": "object"
      },
      "CurriculumDecisionAlternativeSnapshot": {
        "additionalProperties": false,
        "properties": {
          "approach_summary": {
            "title": "Approach Summary",
            "type": "string"
          },
          "authoring_mode": {
            "enum": ["provider", "manual", "merge", "fork"],
            "title": "Authoring Mode",
            "type": "string"
          },
          "comparison_eligible": {
            "title": "Comparison Eligible",
            "type": "boolean"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "ordinal": {
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "validation_id": {
            "title": "Validation Id",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          },
          "variant_id": {
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": [
          "variant_id",
          "ordinal",
          "authoring_mode",
          "title",
          "approach_summary",
          "content_sha256",
          "self_sha256",
          "validation_id",
          "validation_sha256",
          "comparison_eligible"
        ],
        "title": "CurriculumDecisionAlternativeSnapshot",
        "type": "object"
      },
      "CurriculumDecisionAuthority": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_name": {
            "title": "Actor Name",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "basis": {
            "title": "Basis",
            "type": "string"
          },
          "scope": {
            "title": "Scope",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_name", "actor_role", "scope", "basis"],
        "title": "CurriculumDecisionAuthority",
        "type": "object"
      },
      "CurriculumDecisionBriefBinding": {
        "additionalProperties": false,
        "properties": {
          "binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Binding Sha256",
            "type": "string"
          },
          "brief_id": {
            "title": "Brief Id",
            "type": "string"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "revision_id": {
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          }
        },
        "required": [
          "brief_id",
          "revision_id",
          "revision_number",
          "revision_sha256",
          "validation_sha256",
          "review_id",
          "binding_sha256"
        ],
        "title": "CurriculumDecisionBriefBinding",
        "type": "object"
      },
      "CurriculumDecisionCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.16.0",
            "default": "2.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "workspaces": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionWorkspaceResponse"
            },
            "maxItems": 4096,
            "title": "Workspaces",
            "type": "array"
          }
        },
        "required": ["generated_at", "workspaces"],
        "title": "CurriculumDecisionCollectionResponse",
        "type": "object"
      },
      "CurriculumDecisionCondition": {
        "additionalProperties": false,
        "properties": {
          "condition_id": {
            "pattern": "^decision_condition_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Condition Id",
            "type": "string"
          },
          "due_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due At"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "owner": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["condition_id", "statement", "owner", "evidence_ref"],
        "title": "CurriculumDecisionCondition",
        "type": "object"
      },
      "CurriculumDecisionCoverageBinding": {
        "additionalProperties": false,
        "properties": {
          "binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Binding Sha256",
            "type": "string"
          },
          "curriculum_map_revision_id": {
            "title": "Curriculum Map Revision Id",
            "type": "string"
          },
          "curriculum_map_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Map Revision Sha256",
            "type": "string"
          },
          "outline_set_id": {
            "title": "Outline Set Id",
            "type": "string"
          },
          "outline_variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Content Sha256",
            "type": "string"
          },
          "outline_variant_id": {
            "title": "Outline Variant Id",
            "type": "string"
          },
          "outline_variant_self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Self Sha256",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "title": "Policy Version",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "report_id": {
            "title": "Report Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          },
          "verdict_status": {
            "enum": ["pass", "review", "block"],
            "title": "Verdict Status",
            "type": "string"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": [
          "report_id",
          "record_sha256",
          "workspace_sha256",
          "source_sha256",
          "outline_set_id",
          "outline_variant_id",
          "outline_variant_content_sha256",
          "outline_variant_self_sha256",
          "curriculum_map_revision_id",
          "curriculum_map_revision_sha256",
          "policy_id",
          "policy_version",
          "policy_sha256",
          "verdict_status",
          "verdict_sha256",
          "binding_sha256"
        ],
        "title": "CurriculumDecisionCoverageBinding",
        "type": "object"
      },
      "CurriculumDecisionEvidence": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^decision_evidence_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "review",
              "artifact",
              "analytics",
              "policy",
              "standards",
              "workload",
              "coverage",
              "other"
            ],
            "title": "Kind",
            "type": "string"
          },
          "reference": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Reference",
            "type": "string"
          },
          "revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "title", "reference", "revision", "content_sha256"],
        "title": "CurriculumDecisionEvidence",
        "type": "object"
      },
      "CurriculumDecisionObjectiveBinding": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "objective_id": {
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "title": "Objective Revision Id",
            "type": "string"
          },
          "standard_codes": {
            "items": {
              "type": "string"
            },
            "title": "Standard Codes",
            "type": "array"
          }
        },
        "required": ["objective_id", "objective_revision_id", "content_sha256", "standard_codes"],
        "title": "CurriculumDecisionObjectiveBinding",
        "type": "object"
      },
      "CurriculumDecisionOutlineBinding": {
        "additionalProperties": false,
        "properties": {
          "after_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "After Workspace Sha256",
            "type": "string"
          },
          "alternatives": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionAlternativeSnapshot"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Alternatives",
            "type": "array"
          },
          "before_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Before Workspace Sha256",
            "type": "string"
          },
          "binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Binding Sha256",
            "type": "string"
          },
          "set_id": {
            "title": "Set Id",
            "type": "string"
          },
          "set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Set Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "set_id",
          "set_sha256",
          "source_sha256",
          "before_workspace_sha256",
          "after_workspace_sha256",
          "alternatives",
          "binding_sha256"
        ],
        "title": "CurriculumDecisionOutlineBinding",
        "type": "object"
      },
      "CurriculumDecisionOutlineOperationBinding": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["merge", "fork"],
            "title": "Action",
            "type": "string"
          },
          "binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Binding Sha256",
            "type": "string"
          },
          "contributions": {
            "items": {
              "$ref": "#/components/schemas/OutlineVariantContribution"
            },
            "title": "Contributions",
            "type": "array"
          },
          "created_variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Created Variant Content Sha256",
            "type": "string"
          },
          "created_variant_id": {
            "title": "Created Variant Id",
            "type": "string"
          },
          "created_variant_self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Created Variant Self Sha256",
            "type": "string"
          },
          "outline_decision_id": {
            "title": "Outline Decision Id",
            "type": "string"
          },
          "outline_decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Decision Sha256",
            "type": "string"
          }
        },
        "required": [
          "outline_decision_id",
          "outline_decision_sha256",
          "action",
          "created_variant_id",
          "created_variant_content_sha256",
          "created_variant_self_sha256",
          "contributions",
          "binding_sha256"
        ],
        "title": "CurriculumDecisionOutlineOperationBinding",
        "type": "object"
      },
      "CurriculumDecisionPlanningBinding": {
        "additionalProperties": false,
        "properties": {
          "binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Binding Sha256",
            "type": "string"
          },
          "brief": {
            "$ref": "#/components/schemas/CurriculumDecisionBriefBinding"
          },
          "curriculum_map_id": {
            "title": "Curriculum Map Id",
            "type": "string"
          },
          "curriculum_map_revision_id": {
            "title": "Curriculum Map Revision Id",
            "type": "string"
          },
          "curriculum_map_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Map Revision Sha256",
            "type": "string"
          },
          "curriculum_map_validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Map Validation Sha256",
            "type": "string"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionObjectiveBinding"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "standards": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionStandardBinding"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Standards",
            "type": "array"
          }
        },
        "required": [
          "curriculum_map_id",
          "curriculum_map_revision_id",
          "curriculum_map_revision_sha256",
          "curriculum_map_validation_sha256",
          "brief",
          "objectives",
          "standards",
          "binding_sha256"
        ],
        "title": "CurriculumDecisionPlanningBinding",
        "type": "object"
      },
      "CurriculumDecisionProjection": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/CurriculumDecisionRecord"
          },
          "status": {
            "enum": ["current", "superseded"],
            "title": "Status",
            "type": "string"
          },
          "superseded_by_decision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Superseded By Decision Id"
          }
        },
        "required": ["decision", "status", "superseded_by_decision_id"],
        "title": "CurriculumDecisionProjection",
        "type": "object"
      },
      "CurriculumDecisionRecord": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "$ref": "#/components/schemas/CurriculumDecisionAuthority"
          },
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionCondition"
            },
            "title": "Conditions",
            "type": "array"
          },
          "coverage": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CurriculumDecisionCoverageBinding"
              },
              {
                "type": "null"
              }
            ]
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^currdecision_[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "disposition": {
            "enum": ["selected", "rejected", "deferred", "merged", "forked"],
            "title": "Disposition",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionEvidence"
            },
            "title": "Evidence",
            "type": "array"
          },
          "outline": {
            "$ref": "#/components/schemas/CurriculumDecisionOutlineBinding"
          },
          "outline_operation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CurriculumDecisionOutlineOperationBinding"
              },
              {
                "type": "null"
              }
            ]
          },
          "planning": {
            "$ref": "#/components/schemas/CurriculumDecisionPlanningBinding"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_changes": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionRequestedChange"
            },
            "title": "Requested Changes",
            "type": "array"
          },
          "schema_version": {
            "const": "2.16.0",
            "default": "2.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "set_id": {
            "title": "Set Id",
            "type": "string"
          },
          "subject_variant_ids": {
            "items": {
              "type": "string"
            },
            "title": "Subject Variant Ids",
            "type": "array"
          },
          "supersedes_decision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Decision Id"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "workload": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CurriculumDecisionWorkloadBinding"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "decision_id",
          "tenant_id",
          "set_id",
          "disposition",
          "subject_variant_ids",
          "rationale",
          "authority",
          "evidence",
          "conditions",
          "reason_codes",
          "requested_changes",
          "outline",
          "planning",
          "workload",
          "coverage",
          "outline_operation",
          "supersedes_decision_id",
          "decided_at",
          "request_sha256",
          "self_sha256"
        ],
        "title": "CurriculumDecisionRecord",
        "type": "object"
      },
      "CurriculumDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "authority_basis": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Authority Basis",
            "type": "string"
          },
          "authority_scope": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Authority Scope",
            "type": "string"
          },
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionCondition"
            },
            "maxItems": 128,
            "title": "Conditions",
            "type": "array"
          },
          "contributions": {
            "items": {
              "$ref": "#/components/schemas/OutlineVariantContribution"
            },
            "maxItems": 6,
            "title": "Contributions",
            "type": "array"
          },
          "coverage_report_id": {
            "anyOf": [
              {
                "pattern": "^coveragereport_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coverage Report Id"
          },
          "derived_variant": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OutlineVariantDraft"
              },
              {
                "type": "null"
              }
            ]
          },
          "disposition": {
            "enum": ["selected", "rejected", "deferred", "merged", "forked"],
            "title": "Disposition",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionEvidence"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "expected_alternatives": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionAlternativeExpectation"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Expected Alternatives",
            "type": "array"
          },
          "expected_coverage_workspace_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Coverage Workspace Sha256"
          },
          "expected_outline_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Outline Workspace Sha256",
            "type": "string"
          },
          "expected_workload_workspace_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Workload Workspace Sha256"
          },
          "expected_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Workspace Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Reason Codes",
            "type": "array"
          },
          "requested_changes": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionRequestedChange"
            },
            "maxItems": 128,
            "title": "Requested Changes",
            "type": "array"
          },
          "schema_version": {
            "const": "2.16.0",
            "default": "2.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject_variant_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Subject Variant Ids",
            "type": "array"
          },
          "supersedes_decision_id": {
            "anyOf": [
              {
                "pattern": "^currdecision_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Decision Id"
          },
          "workload_estimate_id": {
            "anyOf": [
              {
                "pattern": "^workestimate_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workload Estimate Id"
          }
        },
        "required": [
          "idempotency_key",
          "expected_workspace_sha256",
          "expected_outline_workspace_sha256",
          "expected_alternatives",
          "disposition",
          "subject_variant_ids",
          "rationale",
          "authority_scope",
          "authority_basis",
          "evidence"
        ],
        "title": "CurriculumDecisionRequest",
        "type": "object"
      },
      "CurriculumDecisionRequestedChange": {
        "additionalProperties": false,
        "properties": {
          "acceptance_criteria": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Acceptance Criteria",
            "type": "array"
          },
          "change_id": {
            "pattern": "^decision_change_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Change Id",
            "type": "string"
          },
          "request": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Request",
            "type": "string"
          },
          "target": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["change_id", "target", "request", "acceptance_criteria"],
        "title": "CurriculumDecisionRequestedChange",
        "type": "object"
      },
      "CurriculumDecisionStandardBinding": {
        "additionalProperties": false,
        "properties": {
          "alignment_id": {
            "title": "Alignment Id",
            "type": "string"
          },
          "coverage_level": {
            "enum": ["introduced", "reinforced", "mastered", "assessed"],
            "title": "Coverage Level",
            "type": "string"
          },
          "coverage_percent": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Coverage Percent",
            "type": "integer"
          },
          "framework_name": {
            "title": "Framework Name",
            "type": "string"
          },
          "framework_uri": {
            "title": "Framework Uri",
            "type": "string"
          },
          "framework_version": {
            "title": "Framework Version",
            "type": "string"
          },
          "outcome_ids": {
            "items": {
              "type": "string"
            },
            "title": "Outcome Ids",
            "type": "array"
          },
          "standard_code": {
            "title": "Standard Code",
            "type": "string"
          },
          "standard_uri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Uri"
          }
        },
        "required": [
          "alignment_id",
          "framework_name",
          "framework_version",
          "framework_uri",
          "standard_code",
          "standard_uri",
          "coverage_level",
          "coverage_percent",
          "outcome_ids"
        ],
        "title": "CurriculumDecisionStandardBinding",
        "type": "object"
      },
      "CurriculumDecisionWorkloadBinding": {
        "additionalProperties": false,
        "properties": {
          "binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Binding Sha256",
            "type": "string"
          },
          "brief_revision_id": {
            "title": "Brief Revision Id",
            "type": "string"
          },
          "brief_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Brief Revision Sha256",
            "type": "string"
          },
          "calculation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Calculation Sha256",
            "type": "string"
          },
          "effort_model_id": {
            "title": "Effort Model Id",
            "type": "string"
          },
          "effort_model_version": {
            "title": "Effort Model Version",
            "type": "string"
          },
          "estimate_id": {
            "title": "Estimate Id",
            "type": "string"
          },
          "outline_set_id": {
            "title": "Outline Set Id",
            "type": "string"
          },
          "outline_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Source Sha256",
            "type": "string"
          },
          "outline_variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Content Sha256",
            "type": "string"
          },
          "outline_variant_id": {
            "title": "Outline Variant Id",
            "type": "string"
          },
          "outline_variant_self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Variant Self Sha256",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": [
          "estimate_id",
          "record_sha256",
          "workspace_sha256",
          "outline_set_id",
          "outline_variant_id",
          "outline_variant_content_sha256",
          "outline_variant_self_sha256",
          "outline_source_sha256",
          "brief_revision_id",
          "brief_revision_sha256",
          "effort_model_id",
          "effort_model_version",
          "calculation_sha256",
          "binding_sha256"
        ],
        "title": "CurriculumDecisionWorkloadBinding",
        "type": "object"
      },
      "CurriculumDecisionWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "current_decision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Decision Id"
          },
          "current_disposition": {
            "anyOf": [
              {
                "enum": ["selected", "rejected", "deferred", "merged", "forked"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Disposition"
          },
          "current_selected_variant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Selected Variant Id"
          },
          "outline_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Outline Workspace Sha256",
            "type": "string"
          },
          "projections": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDecisionProjection"
            },
            "title": "Projections",
            "type": "array"
          },
          "schema_version": {
            "const": "2.16.0",
            "default": "2.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "set_id": {
            "title": "Set Id",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": [
          "set_id",
          "tenant_id",
          "outline_workspace_sha256",
          "current_decision_id",
          "current_disposition",
          "current_selected_variant_id",
          "projections",
          "workspace_sha256"
        ],
        "title": "CurriculumDecisionWorkspaceResponse",
        "type": "object"
      },
      "CurriculumDisciplineGoldSetsResponse": {
        "description": "All gold sets attached to one core discipline.",
        "properties": {
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "gold_sets": {
            "items": {
              "$ref": "#/components/schemas/CurriculumGoldSetResponse"
            },
            "title": "Gold Sets",
            "type": "array"
          },
          "reviewer_pool_id": {
            "title": "Reviewer Pool Id",
            "type": "string"
          }
        },
        "required": ["discipline_id", "discipline_title", "reviewer_pool_id"],
        "title": "CurriculumDisciplineGoldSetsResponse",
        "type": "object"
      },
      "CurriculumDiscoveryActionRecord": {
        "additionalProperties": false,
        "properties": {
          "acted_at": {
            "format": "date-time",
            "title": "Acted At",
            "type": "string"
          },
          "action": {
            "enum": ["preview", "bookmark", "request_import", "link_as_reference"],
            "title": "Action",
            "type": "string"
          },
          "action_id": {
            "pattern": "^discovery_action_[a-f0-9]{40}$",
            "title": "Action Id",
            "type": "string"
          },
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_name": {
            "title": "Actor Name",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "canonical_artifact_id": {
            "title": "Canonical Artifact Id",
            "type": "null"
          },
          "canonical_write_performed": {
            "const": false,
            "default": false,
            "title": "Canonical Write Performed",
            "type": "boolean"
          },
          "content_copied": {
            "const": false,
            "default": false,
            "title": "Content Copied",
            "type": "boolean"
          },
          "diagnostic_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Diagnostic Sha256",
            "type": "string"
          },
          "gates": {
            "$ref": "#/components/schemas/CurriculumDiscoveryReuseGates"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Sha256",
            "type": "string"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "preview": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CurriculumDiscoveryPreview"
              },
              {
                "type": "null"
              }
            ]
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "reuse_context": {
            "$ref": "#/components/schemas/CurriculumDiscoveryReuseContext"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "state": {
            "enum": ["previewed", "bookmarked", "awaiting_review", "reference_linked"],
            "title": "State",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "action_id",
          "action",
          "state",
          "actor_id",
          "actor_name",
          "actor_role",
          "tenant_id",
          "item_id",
          "item_sha256",
          "diagnostic_sha256",
          "reuse_context",
          "note",
          "preview",
          "gates",
          "acted_at",
          "request_sha256",
          "self_sha256"
        ],
        "title": "CurriculumDiscoveryActionRecord",
        "type": "object"
      },
      "CurriculumDiscoveryActionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["preview", "bookmark", "request_import", "link_as_reference"],
            "title": "Action",
            "type": "string"
          },
          "expected_diagnostic_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Diagnostic Sha256",
            "type": "string"
          },
          "expected_item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Item Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "note": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Note",
            "type": "string"
          },
          "reuse_context": {
            "$ref": "#/components/schemas/CurriculumDiscoveryReuseContext"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "action",
          "idempotency_key",
          "expected_item_sha256",
          "expected_diagnostic_sha256",
          "reuse_context",
          "note"
        ],
        "title": "CurriculumDiscoveryActionRequest",
        "type": "object"
      },
      "CurriculumDiscoveryActionWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "actions": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryActionRecord"
            },
            "title": "Actions",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryImportReviewRecord"
            },
            "title": "Reviews",
            "type": "array"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": ["generated_at", "actions", "reviews", "workspace_sha256"],
        "title": "CurriculumDiscoveryActionWorkspaceResponse",
        "type": "object"
      },
      "CurriculumDiscoveryAuthority": {
        "additionalProperties": false,
        "properties": {
          "authority_type": {
            "enum": [
              "course_owner",
              "content_owner",
              "standards_body",
              "graph_steward",
              "credential_issuer",
              "institution_registrar",
              "repository"
            ],
            "title": "Authority Type",
            "type": "string"
          },
          "evidence_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Uri",
            "type": "string"
          },
          "identifier": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Identifier",
            "type": "string"
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "status": {
            "enum": ["authoritative", "origin_asserted", "declared", "unverified"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["authority_type", "name", "identifier", "status", "evidence_uri"],
        "title": "CurriculumDiscoveryAuthority",
        "type": "object"
      },
      "CurriculumDiscoveryCatalogItemInput": {
        "additionalProperties": false,
        "properties": {
          "accessibility_features": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Accessibility Features",
            "type": "array"
          },
          "accessibility_hazards": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Accessibility Hazards",
            "type": "array"
          },
          "allowed_targets": {
            "items": {
              "enum": ["reference", "canonical_course", "module", "lesson"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Allowed Targets",
            "type": "array"
          },
          "alternate_locales": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Alternate Locales",
            "type": "array"
          },
          "audiences": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Audiences",
            "type": "array"
          },
          "authority": {
            "$ref": "#/components/schemas/CurriculumDiscoveryAuthority"
          },
          "authorization": {
            "$ref": "#/components/schemas/CurriculumDiscoveryIngestionAuthorization"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "excerpt": {
            "anyOf": [
              {
                "maxLength": 800,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "keywords": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Keywords",
            "type": "array"
          },
          "level": {
            "enum": ["beginner", "intermediate", "advanced", "expert", "mixed", "unspecified"],
            "title": "Level",
            "type": "string"
          },
          "locale": {
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "publisher": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Publisher",
            "type": "string"
          },
          "quality": {
            "$ref": "#/components/schemas/CurriculumDiscoverySourceQuality"
          },
          "relations": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryRelation"
            },
            "maxItems": 512,
            "title": "Relations",
            "type": "array"
          },
          "resource_type": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Resource Type",
            "type": "string"
          },
          "rights": {
            "$ref": "#/components/schemas/CurriculumDiscoveryRights"
          },
          "source_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,255}$",
            "title": "Source Key",
            "type": "string"
          },
          "source_version": {
            "$ref": "#/components/schemas/CurriculumDiscoverySourceVersion"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "update_frequency": {
            "enum": ["static", "annual", "quarterly", "monthly", "continuous", "unknown"],
            "title": "Update Frequency",
            "type": "string"
          },
          "visibility": {
            "enum": ["public", "tenant"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "source_key",
          "title",
          "description",
          "publisher",
          "locale",
          "resource_type",
          "audiences",
          "level",
          "allowed_targets",
          "update_frequency",
          "authority",
          "rights",
          "source_version",
          "quality",
          "authorization",
          "visibility"
        ],
        "title": "CurriculumDiscoveryCatalogItemInput",
        "type": "object"
      },
      "CurriculumDiscoveryComparison": {
        "additionalProperties": false,
        "properties": {
          "comparison_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Comparison Sha256",
            "type": "string"
          },
          "item_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 2,
            "title": "Item Ids",
            "type": "array"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoverySearchResult"
            },
            "maxItems": 4,
            "minItems": 2,
            "title": "Results",
            "type": "array"
          }
        },
        "required": ["item_ids", "results", "comparison_sha256"],
        "title": "CurriculumDiscoveryComparison",
        "type": "object"
      },
      "CurriculumDiscoveryConnectorCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "connectors": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryConnectorContract"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Connectors",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["generated_at", "connectors", "catalog_sha256"],
        "title": "CurriculumDiscoveryConnectorCatalogResponse",
        "type": "object"
      },
      "CurriculumDiscoveryConnectorContract": {
        "additionalProperties": false,
        "properties": {
          "authority_basis": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Authority Basis",
            "type": "string"
          },
          "catalog_kind": {
            "enum": [
              "existing_course",
              "open_resource",
              "standards_framework",
              "concept_graph",
              "prerequisite_map",
              "credential_catalog",
              "institution_catalog"
            ],
            "title": "Catalog Kind",
            "type": "string"
          },
          "connector_id": {
            "pattern": "^discovery_connector_[a-z0-9][a-z0-9_-]{2,80}$",
            "title": "Connector Id",
            "type": "string"
          },
          "documentation_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Documentation Uri",
            "type": "string"
          },
          "freshness_sla_hours": {
            "maximum": 8760.0,
            "minimum": 1.0,
            "title": "Freshness Sla Hours",
            "type": "integer"
          },
          "metadata_profile": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Metadata Profile",
            "type": "string"
          },
          "metadata_profile_version": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Metadata Profile Version",
            "type": "string"
          },
          "permits_public_snapshots": {
            "title": "Permits Public Snapshots",
            "type": "boolean"
          },
          "provider": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "supports_delta": {
            "title": "Supports Delta",
            "type": "boolean"
          }
        },
        "required": [
          "connector_id",
          "catalog_kind",
          "provider",
          "metadata_profile",
          "metadata_profile_version",
          "authority_basis",
          "documentation_uri",
          "freshness_sla_hours",
          "supports_delta",
          "permits_public_snapshots",
          "self_sha256"
        ],
        "title": "CurriculumDiscoveryConnectorContract",
        "type": "object"
      },
      "CurriculumDiscoveryCurrencyEvidence": {
        "additionalProperties": false,
        "properties": {
          "age_hours": {
            "minimum": 0.0,
            "title": "Age Hours",
            "type": "number"
          },
          "freshness_sla_hours": {
            "minimum": 1.0,
            "title": "Freshness Sla Hours",
            "type": "integer"
          },
          "is_latest_snapshot": {
            "const": true,
            "default": true,
            "title": "Is Latest Snapshot",
            "type": "boolean"
          },
          "retrieved_at": {
            "format": "date-time",
            "title": "Retrieved At",
            "type": "string"
          },
          "status": {
            "enum": ["current", "stale"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["retrieved_at", "age_hours", "freshness_sla_hours", "status"],
        "title": "CurriculumDiscoveryCurrencyEvidence",
        "type": "object"
      },
      "CurriculumDiscoveryDiagnosticCheck": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "license",
              "audience",
              "locale",
              "standards",
              "prerequisites",
              "level",
              "accessibility",
              "target",
              "source_quality",
              "update_risk"
            ],
            "title": "Category",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "status": {
            "enum": ["pass", "review", "block"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["category", "status", "summary", "evidence"],
        "title": "CurriculumDiscoveryDiagnosticCheck",
        "type": "object"
      },
      "CurriculumDiscoveryFacetGroup": {
        "additionalProperties": false,
        "properties": {
          "field": {
            "enum": ["catalog_kind", "connector", "locale", "rights", "audience", "level"],
            "title": "Field",
            "type": "string"
          },
          "values": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryFacetValue"
            },
            "title": "Values",
            "type": "array"
          }
        },
        "required": ["field", "values"],
        "title": "CurriculumDiscoveryFacetGroup",
        "type": "object"
      },
      "CurriculumDiscoveryFacetValue": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "minimum": 1.0,
            "title": "Count",
            "type": "integer"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "count"],
        "title": "CurriculumDiscoveryFacetValue",
        "type": "object"
      },
      "CurriculumDiscoveryImportReviewRecord": {
        "additionalProperties": false,
        "properties": {
          "action_id": {
            "title": "Action Id",
            "type": "string"
          },
          "canonical_artifact_id": {
            "title": "Canonical Artifact Id",
            "type": "null"
          },
          "canonical_authoring_allowed": {
            "title": "Canonical Authoring Allowed",
            "type": "boolean"
          },
          "canonical_write_performed": {
            "const": false,
            "default": false,
            "title": "Canonical Write Performed",
            "type": "boolean"
          },
          "gates": {
            "$ref": "#/components/schemas/CurriculumDiscoveryReuseGates"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^discovery_review_[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "enum": ["instructor", "admin"],
            "title": "Reviewer Role",
            "type": "string"
          },
          "rights_evidence_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rights Evidence Sha256"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "validation_evidence_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Validation Evidence Sha256"
          },
          "verdict": {
            "enum": ["approve", "reject"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "action_id",
          "reviewer_id",
          "reviewer_name",
          "reviewer_role",
          "verdict",
          "rationale",
          "rights_evidence_sha256",
          "validation_evidence_sha256",
          "gates",
          "canonical_authoring_allowed",
          "reviewed_at",
          "request_sha256",
          "self_sha256"
        ],
        "title": "CurriculumDiscoveryImportReviewRecord",
        "type": "object"
      },
      "CurriculumDiscoveryImportReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_action_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Action Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "rights_evidence_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rights Evidence Sha256"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "validation_evidence_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Validation Evidence Sha256"
          },
          "verdict": {
            "enum": ["approve", "reject"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_action_sha256", "verdict", "rationale"],
        "title": "CurriculumDiscoveryImportReviewRequest",
        "type": "object"
      },
      "CurriculumDiscoveryIndexRecord": {
        "additionalProperties": false,
        "properties": {
          "catalog_kind": {
            "enum": [
              "existing_course",
              "open_resource",
              "standards_framework",
              "concept_graph",
              "prerequisite_map",
              "credential_catalog",
              "institution_catalog"
            ],
            "title": "Catalog Kind",
            "type": "string"
          },
          "connector_id": {
            "title": "Connector Id",
            "type": "string"
          },
          "indexed_at": {
            "format": "date-time",
            "title": "Indexed At",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/CurriculumDiscoveryCatalogItemInput"
          },
          "item_id": {
            "pattern": "^discovery_item_[a-f0-9]{40}$",
            "title": "Item Id",
            "type": "string"
          },
          "owner_tenant_id": {
            "title": "Owner Tenant Id",
            "type": "string"
          },
          "retrieved_at": {
            "format": "date-time",
            "title": "Retrieved At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "snapshot_id": {
            "pattern": "^discovery_snapshot_[a-f0-9]{40}$",
            "title": "Snapshot Id",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "snapshot_id",
          "connector_id",
          "catalog_kind",
          "owner_tenant_id",
          "retrieved_at",
          "indexed_at",
          "item",
          "self_sha256"
        ],
        "title": "CurriculumDiscoveryIndexRecord",
        "type": "object"
      },
      "CurriculumDiscoveryIngestionAuthorization": {
        "additionalProperties": false,
        "properties": {
          "contains_learner_data": {
            "const": false,
            "default": false,
            "title": "Contains Learner Data",
            "type": "boolean"
          },
          "contains_protected_answers": {
            "const": false,
            "default": false,
            "title": "Contains Protected Answers",
            "type": "boolean"
          },
          "evidence_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Uri",
            "type": "string"
          },
          "excerpt_authorized": {
            "title": "Excerpt Authorized",
            "type": "boolean"
          },
          "fingerprint_authorized": {
            "const": true,
            "title": "Fingerprint Authorized",
            "type": "boolean"
          },
          "metadata_authorized": {
            "const": true,
            "title": "Metadata Authorized",
            "type": "boolean"
          }
        },
        "required": [
          "metadata_authorized",
          "excerpt_authorized",
          "fingerprint_authorized",
          "evidence_uri"
        ],
        "title": "CurriculumDiscoveryIngestionAuthorization",
        "type": "object"
      },
      "CurriculumDiscoveryPreview": {
        "additionalProperties": false,
        "properties": {
          "canonical_uri": {
            "title": "Canonical Uri",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "excerpt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "rights": {
            "$ref": "#/components/schemas/CurriculumDiscoveryRights"
          },
          "source_version": {
            "title": "Source Version",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title",
          "description",
          "excerpt",
          "canonical_uri",
          "source_version",
          "rights"
        ],
        "title": "CurriculumDiscoveryPreview",
        "type": "object"
      },
      "CurriculumDiscoveryRankEvidence": {
        "additionalProperties": false,
        "properties": {
          "authority_score": {
            "maximum": 10.0,
            "minimum": 0.0,
            "title": "Authority Score",
            "type": "integer"
          },
          "currency_score": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Currency Score",
            "type": "integer"
          },
          "rationale": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Rationale",
            "type": "array"
          },
          "relation_score": {
            "maximum": 20.0,
            "minimum": 0.0,
            "title": "Relation Score",
            "type": "integer"
          },
          "rights_score": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Rights Score",
            "type": "integer"
          },
          "text_score": {
            "maximum": 60.0,
            "minimum": 0.0,
            "title": "Text Score",
            "type": "integer"
          },
          "total_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Total Score",
            "type": "integer"
          }
        },
        "required": [
          "total_score",
          "text_score",
          "relation_score",
          "authority_score",
          "currency_score",
          "rights_score",
          "rationale"
        ],
        "title": "CurriculumDiscoveryRankEvidence",
        "type": "object"
      },
      "CurriculumDiscoveryRelation": {
        "additionalProperties": false,
        "properties": {
          "identifier": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Identifier",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "relation_type": {
            "enum": ["standard", "objective", "concept", "prerequisite", "credential"],
            "title": "Relation Type",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Uri",
            "type": "string"
          },
          "version": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["relation_type", "identifier", "title", "version", "uri", "rationale"],
        "title": "CurriculumDiscoveryRelation",
        "type": "object"
      },
      "CurriculumDiscoveryReuseContext": {
        "additionalProperties": false,
        "properties": {
          "audiences": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Audiences",
            "type": "array"
          },
          "available_prerequisite_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Available Prerequisite Ids",
            "type": "array"
          },
          "commercial_use": {
            "default": false,
            "title": "Commercial Use",
            "type": "boolean"
          },
          "destination_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Destination Id",
            "type": "string"
          },
          "level": {
            "enum": ["beginner", "intermediate", "advanced", "expert", "mixed", "unspecified"],
            "title": "Level",
            "type": "string"
          },
          "locale": {
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "required_accessibility_features": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Required Accessibility Features",
            "type": "array"
          },
          "required_standard_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Required Standard Codes",
            "type": "array"
          },
          "target": {
            "enum": ["reference", "canonical_course", "module", "lesson"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["target", "destination_id", "locale", "audiences", "level"],
        "title": "CurriculumDiscoveryReuseContext",
        "type": "object"
      },
      "CurriculumDiscoveryReuseDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "checks": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryDiagnosticCheck"
            },
            "maxItems": 10,
            "minItems": 10,
            "title": "Checks",
            "type": "array"
          },
          "diagnostic_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Diagnostic Sha256",
            "type": "string"
          },
          "overall_status": {
            "enum": ["compatible", "review", "blocked"],
            "title": "Overall Status",
            "type": "string"
          },
          "target": {
            "enum": ["reference", "canonical_course", "module", "lesson"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["target", "overall_status", "checks", "diagnostic_sha256"],
        "title": "CurriculumDiscoveryReuseDiagnostic",
        "type": "object"
      },
      "CurriculumDiscoveryReuseGates": {
        "additionalProperties": false,
        "properties": {
          "human_review": {
            "enum": ["not_required", "pending", "approved", "rejected"],
            "title": "Human Review",
            "type": "string"
          },
          "rights_review": {
            "enum": ["not_required", "pending", "approved", "rejected"],
            "title": "Rights Review",
            "type": "string"
          },
          "validation": {
            "enum": ["not_required", "pending", "approved", "rejected"],
            "title": "Validation",
            "type": "string"
          }
        },
        "required": ["human_review", "rights_review", "validation"],
        "title": "CurriculumDiscoveryReuseGates",
        "type": "object"
      },
      "CurriculumDiscoveryRights": {
        "additionalProperties": false,
        "properties": {
          "attribution_text": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attribution Text"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evidence_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Uri",
            "type": "string"
          },
          "license_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Uri"
          },
          "obligations": {
            "default": [],
            "items": {
              "enum": ["attribution", "share_alike", "noncommercial"],
              "type": "string"
            },
            "title": "Obligations",
            "type": "array"
          },
          "permissions": {
            "default": [],
            "items": {
              "enum": ["preview", "link", "copy", "adapt"],
              "type": "string"
            },
            "title": "Permissions",
            "type": "array"
          },
          "prohibitions": {
            "default": [],
            "items": {
              "enum": ["commercial_use", "adaptation", "redistribution"],
              "type": "string"
            },
            "title": "Prohibitions",
            "type": "array"
          },
          "status": {
            "enum": [
              "unknown",
              "unchecked",
              "registry_reported",
              "declared",
              "permitted",
              "restricted",
              "public_domain"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "evidence_uri", "evaluated_at"],
        "title": "CurriculumDiscoveryRights",
        "type": "object"
      },
      "CurriculumDiscoverySearchFilters": {
        "additionalProperties": false,
        "properties": {
          "accessibility_features": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Accessibility Features",
            "type": "array"
          },
          "audiences": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Audiences",
            "type": "array"
          },
          "catalog_kinds": {
            "default": [],
            "items": {
              "enum": [
                "existing_course",
                "open_resource",
                "standards_framework",
                "concept_graph",
                "prerequisite_map",
                "credential_catalog",
                "institution_catalog"
              ],
              "type": "string"
            },
            "title": "Catalog Kinds",
            "type": "array"
          },
          "concept_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "connector_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Connector Ids",
            "type": "array"
          },
          "credential_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Credential Ids",
            "type": "array"
          },
          "freshness": {
            "default": "any",
            "enum": ["any", "current", "stale"],
            "title": "Freshness",
            "type": "string"
          },
          "levels": {
            "default": [],
            "items": {
              "enum": ["beginner", "intermediate", "advanced", "expert", "mixed", "unspecified"],
              "type": "string"
            },
            "title": "Levels",
            "type": "array"
          },
          "locales": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Locales",
            "type": "array"
          },
          "rights_statuses": {
            "default": [],
            "items": {
              "enum": [
                "unknown",
                "unchecked",
                "registry_reported",
                "declared",
                "permitted",
                "restricted",
                "public_domain"
              ],
              "type": "string"
            },
            "title": "Rights Statuses",
            "type": "array"
          },
          "standard_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Standard Codes",
            "type": "array"
          }
        },
        "title": "CurriculumDiscoverySearchFilters",
        "type": "object"
      },
      "CurriculumDiscoverySearchRequest": {
        "additionalProperties": false,
        "properties": {
          "compare_item_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 4,
            "title": "Compare Item Ids",
            "type": "array"
          },
          "filters": {
            "$ref": "#/components/schemas/CurriculumDiscoverySearchFilters"
          },
          "page": {
            "default": 1,
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "default": 25,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Page Size",
            "type": "integer"
          },
          "query": {
            "default": "",
            "maxLength": 500,
            "title": "Query",
            "type": "string"
          },
          "reuse_context": {
            "$ref": "#/components/schemas/CurriculumDiscoveryReuseContext"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sort": {
            "default": "relevance",
            "enum": ["relevance", "freshness", "authority"],
            "title": "Sort",
            "type": "string"
          }
        },
        "required": ["reuse_context"],
        "title": "CurriculumDiscoverySearchRequest",
        "type": "object"
      },
      "CurriculumDiscoverySearchResponse": {
        "additionalProperties": false,
        "properties": {
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CurriculumDiscoveryComparison"
              },
              {
                "type": "null"
              }
            ]
          },
          "facets": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryFacetGroup"
            },
            "title": "Facets",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
          },
          "page_size": {
            "minimum": 1.0,
            "title": "Page Size",
            "type": "integer"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "response_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Sha256",
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoverySearchResult"
            },
            "title": "Results",
            "type": "array"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "generated_at",
          "query",
          "total",
          "page",
          "page_size",
          "results",
          "facets",
          "comparison",
          "response_sha256"
        ],
        "title": "CurriculumDiscoverySearchResponse",
        "type": "object"
      },
      "CurriculumDiscoverySearchResult": {
        "additionalProperties": false,
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/CurriculumDiscoveryCurrencyEvidence"
          },
          "diagnostic": {
            "$ref": "#/components/schemas/CurriculumDiscoveryReuseDiagnostic"
          },
          "match_reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Match Reasons",
            "type": "array"
          },
          "rank": {
            "$ref": "#/components/schemas/CurriculumDiscoveryRankEvidence"
          },
          "record": {
            "$ref": "#/components/schemas/CurriculumDiscoveryIndexRecord"
          },
          "result_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Result Sha256",
            "type": "string"
          }
        },
        "required": ["record", "currency", "rank", "match_reasons", "diagnostic", "result_sha256"],
        "title": "CurriculumDiscoverySearchResult",
        "type": "object"
      },
      "CurriculumDiscoverySnapshotRecord": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "connector": {
            "$ref": "#/components/schemas/CurriculumDiscoveryConnectorContract"
          },
          "indexed_at": {
            "format": "date-time",
            "title": "Indexed At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryIndexRecord"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          },
          "owner_tenant_id": {
            "title": "Owner Tenant Id",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "retrieved_at": {
            "format": "date-time",
            "title": "Retrieved At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "snapshot_id": {
            "pattern": "^discovery_snapshot_[a-f0-9]{40}$",
            "title": "Snapshot Id",
            "type": "string"
          },
          "source_catalog_version": {
            "title": "Source Catalog Version",
            "type": "string"
          },
          "source_manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Manifest Sha256",
            "type": "string"
          },
          "source_manifest_uri": {
            "title": "Source Manifest Uri",
            "type": "string"
          }
        },
        "required": [
          "snapshot_id",
          "connector",
          "owner_tenant_id",
          "actor_id",
          "actor_role",
          "source_catalog_version",
          "source_manifest_uri",
          "source_manifest_sha256",
          "retrieved_at",
          "indexed_at",
          "items",
          "request_sha256",
          "self_sha256"
        ],
        "title": "CurriculumDiscoverySnapshotRecord",
        "type": "object"
      },
      "CurriculumDiscoverySnapshotRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_connector_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Connector Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoveryCatalogItemInput"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          },
          "retrieved_at": {
            "format": "date-time",
            "title": "Retrieved At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_catalog_version": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Catalog Version",
            "type": "string"
          },
          "source_manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Manifest Sha256",
            "type": "string"
          },
          "source_manifest_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Manifest Uri",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_connector_sha256",
          "source_catalog_version",
          "source_manifest_uri",
          "source_manifest_sha256",
          "retrieved_at",
          "items"
        ],
        "title": "CurriculumDiscoverySnapshotRequest",
        "type": "object"
      },
      "CurriculumDiscoverySnapshotWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "connector_id": {
            "title": "Connector Id",
            "type": "string"
          },
          "current_snapshot_id": {
            "title": "Current Snapshot Id",
            "type": "string"
          },
          "owner_tenant_id": {
            "title": "Owner Tenant Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.17.0",
            "default": "2.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "snapshots": {
            "items": {
              "$ref": "#/components/schemas/CurriculumDiscoverySnapshotRecord"
            },
            "title": "Snapshots",
            "type": "array"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": [
          "connector_id",
          "owner_tenant_id",
          "current_snapshot_id",
          "snapshots",
          "workspace_sha256"
        ],
        "title": "CurriculumDiscoverySnapshotWorkspaceResponse",
        "type": "object"
      },
      "CurriculumDiscoverySourceQuality": {
        "additionalProperties": false,
        "properties": {
          "completeness": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Completeness",
            "type": "number"
          },
          "issues": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Issues",
            "type": "array"
          },
          "validation_status": {
            "enum": ["unvalidated", "reviewed", "verified"],
            "title": "Validation Status",
            "type": "string"
          }
        },
        "required": ["completeness", "validation_status"],
        "title": "CurriculumDiscoverySourceQuality",
        "type": "object"
      },
      "CurriculumDiscoverySourceVersion": {
        "additionalProperties": false,
        "properties": {
          "canonical_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Canonical Uri",
            "type": "string"
          },
          "external_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "External Id",
            "type": "string"
          },
          "fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Fingerprint Sha256",
            "type": "string"
          },
          "modified_at": {
            "format": "date-time",
            "title": "Modified At",
            "type": "string"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          },
          "version_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Version Uri",
            "type": "string"
          }
        },
        "required": [
          "external_id",
          "version",
          "version_uri",
          "canonical_uri",
          "published_at",
          "modified_at",
          "fingerprint_sha256"
        ],
        "title": "CurriculumDiscoverySourceVersion",
        "type": "object"
      },
      "CurriculumExpertReviewerResponse": {
        "description": "One active expert reviewer seat in a discipline pool.",
        "properties": {
          "active": {
            "default": true,
            "title": "Active",
            "type": "boolean"
          },
          "conflict_disclosures": {
            "items": {
              "$ref": "#/components/schemas/CurriculumReviewerConflictDisclosureResponse"
            },
            "title": "Conflict Disclosures",
            "type": "array"
          },
          "credential_requirement_ids": {
            "items": {
              "type": "string"
            },
            "title": "Credential Requirement Ids",
            "type": "array"
          },
          "credential_summary": {
            "title": "Credential Summary",
            "type": "string"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "enum": ["discipline_methods", "safety_or_ethics", "assessment_calibration"],
            "title": "Reviewer Role",
            "type": "string"
          },
          "rotation_group": {
            "title": "Rotation Group",
            "type": "string"
          },
          "seat_name": {
            "title": "Seat Name",
            "type": "string"
          }
        },
        "required": [
          "reviewer_id",
          "seat_name",
          "discipline_id",
          "reviewer_role",
          "credential_summary",
          "rotation_group"
        ],
        "title": "CurriculumExpertReviewerResponse",
        "type": "object"
      },
      "CurriculumGlossaryTermResponse": {
        "description": "Canonical glossary entry used by grounding, citation, and tutoring.",
        "properties": {
          "aliases": {
            "items": {
              "type": "string"
            },
            "title": "Aliases",
            "type": "array"
          },
          "citation_guidance": {
            "title": "Citation Guidance",
            "type": "string"
          },
          "concept_id": {
            "title": "Concept Id",
            "type": "string"
          },
          "definition": {
            "title": "Definition",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "misconception_ids": {
            "items": {
              "type": "string"
            },
            "title": "Misconception Ids",
            "type": "array"
          },
          "retrieval_terms": {
            "items": {
              "type": "string"
            },
            "title": "Retrieval Terms",
            "type": "array"
          },
          "term": {
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["id", "term", "concept_id", "definition", "citation_guidance"],
        "title": "CurriculumGlossaryTermResponse",
        "type": "object"
      },
      "CurriculumGoldSetCatalogResponse": {
        "description": "Catalog of all core-discipline curriculum gold sets.",
        "properties": {
          "catalog_id": {
            "const": "metis-core-curriculum-gold-sets",
            "title": "Catalog Id",
            "type": "string"
          },
          "coverage_dashboard": {
            "$ref": "#/components/schemas/CurriculumGoldSetReleaseGateDashboardResponse"
          },
          "discipline_ids": {
            "items": {
              "enum": [
                "philosophy",
                "religion",
                "psychology",
                "neuroscience",
                "anthropology",
                "astronomy"
              ],
              "type": "string"
            },
            "title": "Discipline Ids",
            "type": "array"
          },
          "gold_sets": {
            "items": {
              "$ref": "#/components/schemas/CurriculumGoldSetResponse"
            },
            "title": "Gold Sets",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["catalog_id", "version", "published_at", "coverage_dashboard"],
        "title": "CurriculumGoldSetCatalogResponse",
        "type": "object"
      },
      "CurriculumGoldSetCoverageRowResponse": {
        "description": "Release-gate dashboard row for one discipline's gold-set coverage.",
        "properties": {
          "assessment_calibration_items": {
            "minimum": 0.0,
            "title": "Assessment Calibration Items",
            "type": "integer"
          },
          "assessment_calibration_target": {
            "minimum": 1.0,
            "title": "Assessment Calibration Target",
            "type": "integer"
          },
          "authorship_credited": {
            "title": "Authorship Credited",
            "type": "boolean"
          },
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "grounded_answer_items": {
            "minimum": 0.0,
            "title": "Grounded Answer Items",
            "type": "integer"
          },
          "grounded_answer_target": {
            "minimum": 1.0,
            "title": "Grounded Answer Target",
            "type": "integer"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          },
          "reviewer_pool_id": {
            "title": "Reviewer Pool Id",
            "type": "string"
          },
          "tutor_pedagogy_items": {
            "minimum": 0.0,
            "title": "Tutor Pedagogy Items",
            "type": "integer"
          },
          "tutor_pedagogy_target": {
            "minimum": 1.0,
            "title": "Tutor Pedagogy Target",
            "type": "integer"
          }
        },
        "required": [
          "discipline_id",
          "discipline_title",
          "reviewer_pool_id",
          "grounded_answer_items",
          "grounded_answer_target",
          "tutor_pedagogy_items",
          "tutor_pedagogy_target",
          "assessment_calibration_items",
          "assessment_calibration_target",
          "authorship_credited",
          "passed"
        ],
        "title": "CurriculumGoldSetCoverageRowResponse",
        "type": "object"
      },
      "CurriculumGoldSetItemResponse": {
        "description": "One reviewer-authored evaluation item for a curriculum gold set.",
        "properties": {
          "acceptance_criteria": {
            "items": {
              "type": "string"
            },
            "title": "Acceptance Criteria",
            "type": "array"
          },
          "common_failure_modes": {
            "items": {
              "type": "string"
            },
            "title": "Common Failure Modes",
            "type": "array"
          },
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "depth_tier": {
            "enum": ["introductory", "intermediate", "advanced"],
            "title": "Depth Tier",
            "type": "string"
          },
          "expected_behavior": {
            "title": "Expected Behavior",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "prompt": {
            "title": "Prompt",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "title": "Source Refs",
            "type": "array"
          }
        },
        "required": ["id", "prompt", "expected_behavior", "depth_tier"],
        "title": "CurriculumGoldSetItemResponse",
        "type": "object"
      },
      "CurriculumGoldSetReleaseGateDashboardResponse": {
        "description": "Launch coverage dashboard for per-discipline curriculum gold sets.",
        "properties": {
          "dashboard_id": {
            "const": "metis-core-gold-set-release-gate",
            "title": "Dashboard Id",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "release_blocked": {
            "title": "Release Blocked",
            "type": "boolean"
          },
          "rows": {
            "items": {
              "$ref": "#/components/schemas/CurriculumGoldSetCoverageRowResponse"
            },
            "title": "Rows",
            "type": "array"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["dashboard_id", "version", "generated_at", "release_blocked"],
        "title": "CurriculumGoldSetReleaseGateDashboardResponse",
        "type": "object"
      },
      "CurriculumGoldSetResponse": {
        "description": "Versioned gold set for one discipline and evaluation kind.",
        "properties": {
          "author_reviewer_ids": {
            "items": {
              "type": "string"
            },
            "title": "Author Reviewer Ids",
            "type": "array"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "evaluation_kind": {
            "enum": ["grounded_answer", "tutor_pedagogy", "assessment_calibration"],
            "title": "Evaluation Kind",
            "type": "string"
          },
          "gold_set_id": {
            "title": "Gold Set Id",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/CurriculumGoldSetItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "minimum_item_target": {
            "minimum": 1.0,
            "title": "Minimum Item Target",
            "type": "integer"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "reviewer_pool_id": {
            "title": "Reviewer Pool Id",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "gold_set_id",
          "discipline_id",
          "discipline_title",
          "evaluation_kind",
          "version",
          "published_at",
          "reviewer_pool_id",
          "minimum_item_target"
        ],
        "title": "CurriculumGoldSetResponse",
        "type": "object"
      },
      "CurriculumInterlockCatalogResponse": {
        "description": "Catalog of Metis V1 cross-core interlocks.",
        "properties": {
          "catalog_id": {
            "const": "metis-core-cross-discipline-interlocks",
            "title": "Catalog Id",
            "type": "string"
          },
          "interlocks": {
            "items": {
              "$ref": "#/components/schemas/CurriculumCrossCoreInterlockResponse"
            },
            "title": "Interlocks",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["catalog_id", "version", "published_at"],
        "title": "CurriculumInterlockCatalogResponse",
        "type": "object"
      },
      "CurriculumInterlockGoldSetSampleResponse": {
        "description": "Gold-set sample attached to a cross-core interlock.",
        "properties": {
          "acceptance_criteria": {
            "items": {
              "type": "string"
            },
            "title": "Acceptance Criteria",
            "type": "array"
          },
          "common_failure_modes": {
            "items": {
              "type": "string"
            },
            "title": "Common Failure Modes",
            "type": "array"
          },
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "expected_behavior": {
            "title": "Expected Behavior",
            "type": "string"
          },
          "prompt": {
            "title": "Prompt",
            "type": "string"
          },
          "sample_id": {
            "title": "Sample Id",
            "type": "string"
          }
        },
        "required": ["sample_id", "prompt", "expected_behavior"],
        "title": "CurriculumInterlockGoldSetSampleResponse",
        "type": "object"
      },
      "CurriculumInterlockReviewResponse": {
        "description": "Dual-discipline review requirements for an interlock.",
        "properties": {
          "quorum_rule": {
            "title": "Quorum Rule",
            "type": "string"
          },
          "required_reviewer_count": {
            "minimum": 2.0,
            "title": "Required Reviewer Count",
            "type": "integer"
          },
          "review_focus": {
            "items": {
              "type": "string"
            },
            "title": "Review Focus",
            "type": "array"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "reviewer_pool_ids": {
            "items": {
              "type": "string"
            },
            "title": "Reviewer Pool Ids",
            "type": "array"
          },
          "status": {
            "default": "ready_for_review",
            "enum": ["ready_for_review", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["review_id", "required_reviewer_count", "quorum_rule"],
        "title": "CurriculumInterlockReviewResponse",
        "type": "object"
      },
      "CurriculumLaunchGateDashboardResponse": {
        "description": "Metis V1 launch gate across the core six disciplines.",
        "properties": {
          "dashboard_id": {
            "const": "metis-v1-core-discipline-launch-gate",
            "title": "Dashboard Id",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "release_blocked": {
            "title": "Release Blocked",
            "type": "boolean"
          },
          "rows": {
            "items": {
              "$ref": "#/components/schemas/CurriculumLaunchGateRowResponse"
            },
            "title": "Rows",
            "type": "array"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["dashboard_id", "version", "generated_at", "release_blocked"],
        "title": "CurriculumLaunchGateDashboardResponse",
        "type": "object"
      },
      "CurriculumLaunchGateMinimumsResponse": {
        "description": "Minimum coverage required before a discipline can clear launch.",
        "properties": {
          "approved_assessment_items": {
            "minimum": 0.0,
            "title": "Approved Assessment Items",
            "type": "integer"
          },
          "approved_courses": {
            "minimum": 0.0,
            "title": "Approved Courses",
            "type": "integer"
          },
          "gold_set_items": {
            "minimum": 0.0,
            "title": "Gold Set Items",
            "type": "integer"
          },
          "reviewer_pool_size": {
            "minimum": 0.0,
            "title": "Reviewer Pool Size",
            "type": "integer"
          },
          "supporting_scaffolding_hooks": {
            "minimum": 0.0,
            "title": "Supporting Scaffolding Hooks",
            "type": "integer"
          }
        },
        "required": [
          "approved_courses",
          "approved_assessment_items",
          "reviewer_pool_size",
          "gold_set_items",
          "supporting_scaffolding_hooks"
        ],
        "title": "CurriculumLaunchGateMinimumsResponse",
        "type": "object"
      },
      "CurriculumLaunchGateRowResponse": {
        "description": "Launch-gate coverage row for one core discipline.",
        "properties": {
          "approved_assessment_items": {
            "minimum": 0.0,
            "title": "Approved Assessment Items",
            "type": "integer"
          },
          "approved_courses": {
            "minimum": 0.0,
            "title": "Approved Courses",
            "type": "integer"
          },
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "gold_set_items": {
            "minimum": 0.0,
            "title": "Gold Set Items",
            "type": "integer"
          },
          "minimums": {
            "$ref": "#/components/schemas/CurriculumLaunchGateMinimumsResponse"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          },
          "reviewer_pool_size": {
            "minimum": 0.0,
            "title": "Reviewer Pool Size",
            "type": "integer"
          },
          "supporting_scaffolding_hooks": {
            "minimum": 0.0,
            "title": "Supporting Scaffolding Hooks",
            "type": "integer"
          }
        },
        "required": [
          "discipline_id",
          "discipline_title",
          "minimums",
          "approved_courses",
          "approved_assessment_items",
          "reviewer_pool_size",
          "gold_set_items",
          "supporting_scaffolding_hooks",
          "passed"
        ],
        "title": "CurriculumLaunchGateRowResponse",
        "type": "object"
      },
      "CurriculumMapCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "maps": {
            "items": {
              "$ref": "#/components/schemas/CurriculumMapHistoryResponse"
            },
            "title": "Maps",
            "type": "array"
          },
          "schema_version": {
            "const": "2.11.0",
            "default": "2.11.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["generated_at", "maps"],
        "title": "CurriculumMapCollectionResponse",
        "type": "object"
      },
      "CurriculumMapHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "current_revision_id": {
            "title": "Current Revision Id",
            "type": "string"
          },
          "map_id": {
            "title": "Map Id",
            "type": "string"
          },
          "planning_ready": {
            "title": "Planning Ready",
            "type": "boolean"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/CurriculumMapRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "2.11.0",
            "default": "2.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/CurriculumMapScope"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "map_id",
          "tenant_id",
          "scope",
          "current_revision_id",
          "revisions",
          "planning_ready"
        ],
        "title": "CurriculumMapHistoryResponse",
        "type": "object"
      },
      "CurriculumMapOperation": {
        "additionalProperties": false,
        "properties": {
          "operation": {
            "enum": ["add", "edit", "link", "unlink", "reorder", "group", "annotate", "import"],
            "title": "Operation",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "target_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 512,
            "minItems": 1,
            "title": "Target Ids",
            "type": "array"
          },
          "target_kind": {
            "enum": ["objective", "concept", "objective_edge", "concept_edge", "sequence", "map"],
            "title": "Target Kind",
            "type": "string"
          }
        },
        "required": ["operation", "target_kind", "target_ids", "rationale"],
        "title": "CurriculumMapOperation",
        "type": "object"
      },
      "CurriculumMapOwner": {
        "additionalProperties": false,
        "properties": {
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Name",
            "type": "string"
          },
          "owner_role": {
            "enum": ["instructor", "curriculum_lead", "administrator"],
            "title": "Owner Role",
            "type": "string"
          }
        },
        "required": ["owner_id", "owner_name", "owner_role"],
        "title": "CurriculumMapOwner",
        "type": "object"
      },
      "CurriculumMapPlanningReadinessResponse": {
        "additionalProperties": false,
        "properties": {
          "checked_at": {
            "format": "date-time",
            "title": "Checked At",
            "type": "string"
          },
          "curriculum_brief_id": {
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "curriculum_brief_revision_id": {
            "title": "Curriculum Brief Revision Id",
            "type": "string"
          },
          "map_id": {
            "title": "Map Id",
            "type": "string"
          },
          "ready": {
            "const": true,
            "title": "Ready",
            "type": "boolean"
          },
          "revision_id": {
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "2.11.0",
            "default": "2.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          }
        },
        "required": [
          "map_id",
          "revision_id",
          "ready",
          "revision_sha256",
          "validation_sha256",
          "curriculum_brief_id",
          "curriculum_brief_revision_id",
          "checked_at"
        ],
        "title": "CurriculumMapPlanningReadinessResponse",
        "type": "object"
      },
      "CurriculumMapRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "change_summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Change Summary",
            "type": "string"
          },
          "concept_edges": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptEdge"
            },
            "maxItems": 1000000,
            "title": "Concept Edges",
            "type": "array"
          },
          "concepts": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptDraft"
            },
            "maxItems": 100000,
            "minItems": 1,
            "title": "Concepts",
            "type": "array"
          },
          "expected_previous_revision_id": {
            "anyOf": [
              {
                "pattern": "^currmaprev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Previous Revision Id"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "objective_concept_links": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveConceptLink"
            },
            "maxItems": 1000000,
            "minItems": 1,
            "title": "Objective Concept Links",
            "type": "array"
          },
          "objective_edges": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveEdge"
            },
            "maxItems": 100000,
            "title": "Objective Edges",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveDraft"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "operations": {
            "items": {
              "$ref": "#/components/schemas/CurriculumMapOperation"
            },
            "maxItems": 512,
            "minItems": 1,
            "title": "Operations",
            "type": "array"
          },
          "root_concept_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100000,
            "title": "Root Concept Ids",
            "type": "array"
          },
          "root_objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Root Objective Ids",
            "type": "array"
          },
          "schema_version": {
            "const": "2.11.0",
            "default": "2.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/CurriculumMapScope"
          },
          "sequence": {
            "items": {
              "$ref": "#/components/schemas/CurriculumSequenceItem"
            },
            "maxItems": 100000,
            "minItems": 1,
            "title": "Sequence",
            "type": "array"
          },
          "submission_state": {
            "enum": ["draft", "validated"],
            "title": "Submission State",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "submission_state",
          "title",
          "change_summary",
          "scope",
          "objectives",
          "concepts",
          "objective_concept_links",
          "sequence",
          "operations"
        ],
        "title": "CurriculumMapRevisionRequest",
        "type": "object"
      },
      "CurriculumMapRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "authored_by": {
            "title": "Authored By",
            "type": "string"
          },
          "authored_role": {
            "title": "Authored Role",
            "type": "string"
          },
          "change_summary": {
            "title": "Change Summary",
            "type": "string"
          },
          "concept_edges": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptEdge"
            },
            "title": "Concept Edges",
            "type": "array"
          },
          "concepts": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptRevision"
            },
            "title": "Concepts",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "map_id": {
            "pattern": "^currmap_[a-f0-9]{40}$",
            "title": "Map Id",
            "type": "string"
          },
          "objective_concept_links": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveConceptLink"
            },
            "title": "Objective Concept Links",
            "type": "array"
          },
          "objective_edges": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveEdge"
            },
            "title": "Objective Edges",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveRevision"
            },
            "title": "Objectives",
            "type": "array"
          },
          "operations": {
            "items": {
              "$ref": "#/components/schemas/CurriculumMapOperation"
            },
            "title": "Operations",
            "type": "array"
          },
          "previous_revision_id": {
            "anyOf": [
              {
                "pattern": "^currmaprev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Id"
          },
          "revision_id": {
            "pattern": "^currmaprev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "root_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Root Concept Ids",
            "type": "array"
          },
          "root_objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Root Objective Ids",
            "type": "array"
          },
          "schema_version": {
            "const": "2.11.0",
            "default": "2.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/CurriculumMapScope"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "sequence": {
            "items": {
              "$ref": "#/components/schemas/CurriculumSequenceItem"
            },
            "title": "Sequence",
            "type": "array"
          },
          "submission_state": {
            "enum": ["draft", "validated"],
            "title": "Submission State",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "validation": {
            "$ref": "#/components/schemas/CurriculumMapValidationResponse"
          }
        },
        "required": [
          "map_id",
          "revision_id",
          "revision_number",
          "submission_state",
          "title",
          "change_summary",
          "scope",
          "objectives",
          "objective_edges",
          "concepts",
          "concept_edges",
          "objective_concept_links",
          "sequence",
          "root_objective_ids",
          "root_concept_ids",
          "operations",
          "validation",
          "authored_by",
          "authored_role",
          "created_at",
          "self_sha256"
        ],
        "title": "CurriculumMapRevisionResponse",
        "type": "object"
      },
      "CurriculumMapScope": {
        "additionalProperties": false,
        "properties": {
          "curriculum_brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "curriculum_brief_revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Curriculum Brief Revision Id",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          },
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Name",
            "type": "string"
          },
          "scope_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scope Id",
            "type": "string"
          },
          "scope_type": {
            "enum": ["course", "program"],
            "title": "Scope Type",
            "type": "string"
          }
        },
        "required": [
          "institution_id",
          "owner_id",
          "owner_name",
          "scope_type",
          "scope_id",
          "curriculum_brief_id",
          "curriculum_brief_revision_id"
        ],
        "title": "CurriculumMapScope",
        "type": "object"
      },
      "CurriculumMapValidationIssue": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "entity_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Id"
          },
          "entity_kind": {
            "enum": ["map", "objective", "concept", "objective_edge", "concept_edge", "sequence"],
            "title": "Entity Kind",
            "type": "string"
          },
          "field_path": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "remediation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Remediation",
            "type": "string"
          },
          "severity": {
            "enum": ["error", "warning"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "severity", "entity_kind", "field_path", "message", "remediation"],
        "title": "CurriculumMapValidationIssue",
        "type": "object"
      },
      "CurriculumMapValidationResponse": {
        "additionalProperties": false,
        "properties": {
          "eligible_for_validation": {
            "title": "Eligible For Validation",
            "type": "boolean"
          },
          "error_count": {
            "minimum": 0.0,
            "title": "Error Count",
            "type": "integer"
          },
          "input_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Sha256",
            "type": "string"
          },
          "issue_count": {
            "minimum": 0.0,
            "title": "Issue Count",
            "type": "integer"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/CurriculumMapValidationIssue"
            },
            "title": "Issues",
            "type": "array"
          },
          "schema_version": {
            "const": "2.11.0",
            "default": "2.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "validated_at": {
            "format": "date-time",
            "title": "Validated At",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          },
          "warning_count": {
            "minimum": 0.0,
            "title": "Warning Count",
            "type": "integer"
          }
        },
        "required": [
          "input_sha256",
          "validation_sha256",
          "validated_at",
          "issue_count",
          "error_count",
          "warning_count",
          "eligible_for_validation",
          "issues"
        ],
        "title": "CurriculumMapValidationResponse",
        "type": "object"
      },
      "CurriculumMisconceptionResponse": {
        "description": "Common misconception with correction guidance.",
        "properties": {
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "correction": {
            "title": "Correction",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "misconception": {
            "title": "Misconception",
            "type": "string"
          },
          "severity": {
            "default": "medium",
            "enum": ["low", "medium", "high"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["id", "misconception", "correction"],
        "title": "CurriculumMisconceptionResponse",
        "type": "object"
      },
      "CurriculumObjectiveConceptLink": {
        "additionalProperties": false,
        "properties": {
          "concept_id": {
            "pattern": "^concept_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Concept Id",
            "type": "string"
          },
          "link_id": {
            "pattern": "^objective_concept_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Link Id",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "role": {
            "enum": ["requires", "introduces", "practices", "assesses"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["link_id", "objective_id", "concept_id", "role", "rationale"],
        "title": "CurriculumObjectiveConceptLink",
        "type": "object"
      },
      "CurriculumObjectiveCriterion": {
        "additionalProperties": false,
        "properties": {
          "acceptable_evidence_kinds": {
            "items": {
              "enum": [
                "selected_response",
                "constructed_response",
                "essay",
                "math_work",
                "code_execution",
                "media_artifact",
                "simulation_observation",
                "portfolio_artifact",
                "oral_performance",
                "human_observation"
              ],
              "type": "string"
            },
            "maxItems": 11,
            "minItems": 1,
            "title": "Acceptable Evidence Kinds",
            "type": "array"
          },
          "conditions": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Conditions",
            "type": "array"
          },
          "criterion_id": {
            "pattern": "^criterion_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "threshold": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Threshold",
            "type": "number"
          },
          "threshold_unit": {
            "enum": ["percent", "points", "count", "rubric_level"],
            "title": "Threshold Unit",
            "type": "string"
          }
        },
        "required": [
          "criterion_id",
          "statement",
          "conditions",
          "threshold",
          "threshold_unit",
          "acceptable_evidence_kinds"
        ],
        "title": "CurriculumObjectiveCriterion",
        "type": "object"
      },
      "CurriculumObjectiveDraft": {
        "additionalProperties": false,
        "properties": {
          "annotation": {
            "default": "",
            "maxLength": 4000,
            "title": "Annotation",
            "type": "string"
          },
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 512,
            "title": "Concept Ids",
            "type": "array"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveCriterion"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "evidence_requirements": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveEvidenceRequirement"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence Requirements",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/CurriculumMapOwner"
          },
          "required_for_outcome": {
            "default": true,
            "title": "Required For Outcome",
            "type": "boolean"
          },
          "scope": {
            "enum": ["course", "module", "lesson", "assessment"],
            "title": "Scope",
            "type": "string"
          },
          "scope_resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scope Resource Id",
            "type": "string"
          },
          "standards": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveStandard"
            },
            "maxItems": 128,
            "title": "Standards",
            "type": "array"
          },
          "statement": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "taxonomy": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveTaxonomy"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Taxonomy",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "objective_id",
          "title",
          "statement",
          "locale",
          "scope",
          "scope_resource_id",
          "owner",
          "taxonomy",
          "criteria",
          "evidence_requirements"
        ],
        "title": "CurriculumObjectiveDraft",
        "type": "object"
      },
      "CurriculumObjectiveEdge": {
        "additionalProperties": false,
        "properties": {
          "edge_id": {
            "pattern": "^objective_edge_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Edge Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "relationship_kind": {
            "enum": ["prerequisite", "related"],
            "title": "Relationship Kind",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "source_objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Source Objective Id",
            "type": "string"
          },
          "target_objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Target Objective Id",
            "type": "string"
          }
        },
        "required": [
          "edge_id",
          "source_objective_id",
          "target_objective_id",
          "relationship_kind",
          "rationale"
        ],
        "title": "CurriculumObjectiveEdge",
        "type": "object"
      },
      "CurriculumObjectiveEvidenceRequirement": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^evidence_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_kind": {
            "enum": ["assessment", "artifact", "performance", "observation", "portfolio"],
            "title": "Evidence Kind",
            "type": "string"
          },
          "minimum_count": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Minimum Count",
            "type": "integer"
          },
          "rubric_ref": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rubric Ref"
          }
        },
        "required": ["evidence_id", "evidence_kind", "description", "minimum_count"],
        "title": "CurriculumObjectiveEvidenceRequirement",
        "type": "object"
      },
      "CurriculumObjectiveRevision": {
        "additionalProperties": false,
        "properties": {
          "annotation": {
            "default": "",
            "maxLength": 4000,
            "title": "Annotation",
            "type": "string"
          },
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 512,
            "title": "Concept Ids",
            "type": "array"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveCriterion"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "evidence_requirements": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveEvidenceRequirement"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence Requirements",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "pattern": "^objectiverev_[a-f0-9]{40}$",
            "title": "Objective Revision Id",
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/CurriculumMapOwner"
          },
          "previous_objective_revision_id": {
            "anyOf": [
              {
                "pattern": "^objectiverev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Objective Revision Id"
          },
          "required_for_outcome": {
            "default": true,
            "title": "Required For Outcome",
            "type": "boolean"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "scope": {
            "enum": ["course", "module", "lesson", "assessment"],
            "title": "Scope",
            "type": "string"
          },
          "scope_resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scope Resource Id",
            "type": "string"
          },
          "standards": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveStandard"
            },
            "maxItems": 128,
            "title": "Standards",
            "type": "array"
          },
          "statement": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "taxonomy": {
            "items": {
              "$ref": "#/components/schemas/CurriculumObjectiveTaxonomy"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Taxonomy",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "objective_id",
          "title",
          "statement",
          "locale",
          "scope",
          "scope_resource_id",
          "owner",
          "taxonomy",
          "criteria",
          "evidence_requirements",
          "objective_revision_id",
          "revision_number",
          "content_sha256"
        ],
        "title": "CurriculumObjectiveRevision",
        "type": "object"
      },
      "CurriculumObjectiveStandard": {
        "additionalProperties": false,
        "properties": {
          "alignment_id": {
            "pattern": "^alignment_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Alignment Id",
            "type": "string"
          },
          "framework_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Framework Id",
            "type": "string"
          },
          "framework_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Framework Version",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "standard_code": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Standard Code",
            "type": "string"
          },
          "standard_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "pattern": "^https://",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Uri"
          },
          "strength": {
            "enum": ["exact", "strong", "moderate", "weak"],
            "title": "Strength",
            "type": "string"
          }
        },
        "required": [
          "alignment_id",
          "framework_id",
          "framework_version",
          "standard_code",
          "strength",
          "rationale"
        ],
        "title": "CurriculumObjectiveStandard",
        "type": "object"
      },
      "CurriculumObjectiveTaxonomy": {
        "additionalProperties": false,
        "properties": {
          "classification_code": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Classification Code",
            "type": "string"
          },
          "cognitive_level": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Cognitive Level",
            "type": "string"
          },
          "measurable_verb": {
            "maxLength": 100,
            "minLength": 2,
            "pattern": "^[A-Za-z][A-Za-z -]*$",
            "title": "Measurable Verb",
            "type": "string"
          },
          "taxonomy_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Taxonomy Id",
            "type": "string"
          },
          "taxonomy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Taxonomy Version",
            "type": "string"
          }
        },
        "required": [
          "taxonomy_id",
          "taxonomy_version",
          "classification_code",
          "cognitive_level",
          "measurable_verb"
        ],
        "title": "CurriculumObjectiveTaxonomy",
        "type": "object"
      },
      "CurriculumPrerequisiteEdgeResponse": {
        "description": "Prerequisite relation between canonical concepts.",
        "properties": {
          "depth_tier": {
            "enum": ["introductory", "intermediate", "advanced"],
            "title": "Depth Tier",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "relation": {
            "enum": ["requires", "supports", "extends"],
            "title": "Relation",
            "type": "string"
          },
          "source_concept_id": {
            "title": "Source Concept Id",
            "type": "string"
          },
          "target_concept_id": {
            "title": "Target Concept Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "source_concept_id",
          "target_concept_id",
          "relation",
          "depth_tier",
          "rationale"
        ],
        "title": "CurriculumPrerequisiteEdgeResponse",
        "type": "object"
      },
      "CurriculumReviewerConflictDisclosureResponse": {
        "description": "Conflict-of-interest disclosure rule attached to a reviewer seat.",
        "properties": {
          "active_conflict": {
            "default": false,
            "title": "Active Conflict",
            "type": "boolean"
          },
          "disclosure_type": {
            "enum": ["authorship", "financial", "institutional", "personal", "source_affiliation"],
            "title": "Disclosure Type",
            "type": "string"
          },
          "mitigation": {
            "title": "Mitigation",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["disclosure_type", "summary", "mitigation"],
        "title": "CurriculumReviewerConflictDisclosureResponse",
        "type": "object"
      },
      "CurriculumReviewerCredentialRequirementResponse": {
        "description": "Named credential requirement for one expert reviewer pool.",
        "properties": {
          "applies_to_roles": {
            "items": {
              "enum": ["discipline_methods", "safety_or_ethics", "assessment_calibration"],
              "type": "string"
            },
            "title": "Applies To Roles",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "required_evidence": {
            "items": {
              "type": "string"
            },
            "title": "Required Evidence",
            "type": "array"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "summary"],
        "title": "CurriculumReviewerCredentialRequirementResponse",
        "type": "object"
      },
      "CurriculumReviewerPoolCatalogResponse": {
        "description": "Catalog of all launch expert reviewer pools.",
        "properties": {
          "catalog_id": {
            "const": "metis-core-expert-reviewer-pools",
            "title": "Catalog Id",
            "type": "string"
          },
          "discipline_ids": {
            "items": {
              "enum": [
                "philosophy",
                "religion",
                "psychology",
                "neuroscience",
                "anthropology",
                "astronomy"
              ],
              "type": "string"
            },
            "title": "Discipline Ids",
            "type": "array"
          },
          "pools": {
            "items": {
              "$ref": "#/components/schemas/CurriculumReviewerPoolResponse"
            },
            "title": "Pools",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["catalog_id", "version", "published_at"],
        "title": "CurriculumReviewerPoolCatalogResponse",
        "type": "object"
      },
      "CurriculumReviewerPoolResponse": {
        "description": "Versioned expert reviewer pool for one core discipline.",
        "properties": {
          "credential_requirements": {
            "items": {
              "$ref": "#/components/schemas/CurriculumReviewerCredentialRequirementResponse"
            },
            "title": "Credential Requirements",
            "type": "array"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "pool_id": {
            "title": "Pool Id",
            "type": "string"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "quorum_rule": {
            "$ref": "#/components/schemas/CurriculumReviewerQuorumRuleResponse"
          },
          "reviewers": {
            "items": {
              "$ref": "#/components/schemas/CurriculumExpertReviewerResponse"
            },
            "title": "Reviewers",
            "type": "array"
          },
          "rotation_rule": {
            "$ref": "#/components/schemas/CurriculumReviewerRotationRuleResponse"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          },
          "workflow_bindings": {
            "items": {
              "enum": ["source_bundle", "grounded_build", "publication_package"],
              "type": "string"
            },
            "title": "Workflow Bindings",
            "type": "array"
          }
        },
        "required": [
          "pool_id",
          "discipline_id",
          "discipline_title",
          "version",
          "published_at",
          "rotation_rule",
          "quorum_rule"
        ],
        "title": "CurriculumReviewerPoolResponse",
        "type": "object"
      },
      "CurriculumReviewerQuorumRuleResponse": {
        "description": "Human-review quorum rule for one discipline pool.",
        "properties": {
          "approval_rule": {
            "title": "Approval Rule",
            "type": "string"
          },
          "conflict_free_required": {
            "title": "Conflict Free Required",
            "type": "boolean"
          },
          "escalation_rule": {
            "title": "Escalation Rule",
            "type": "string"
          },
          "min_reviewers": {
            "minimum": 2.0,
            "title": "Min Reviewers",
            "type": "integer"
          },
          "required_roles": {
            "items": {
              "enum": ["discipline_methods", "safety_or_ethics", "assessment_calibration"],
              "type": "string"
            },
            "title": "Required Roles",
            "type": "array"
          }
        },
        "required": ["min_reviewers", "conflict_free_required", "approval_rule", "escalation_rule"],
        "title": "CurriculumReviewerQuorumRuleResponse",
        "type": "object"
      },
      "CurriculumReviewerRotationRuleResponse": {
        "description": "Assignment rotation rule for an expert reviewer pool.",
        "properties": {
          "assignment_strategy": {
            "title": "Assignment Strategy",
            "type": "string"
          },
          "backup_reviewer_required": {
            "title": "Backup Reviewer Required",
            "type": "boolean"
          },
          "max_consecutive_reviews": {
            "minimum": 1.0,
            "title": "Max Consecutive Reviews",
            "type": "integer"
          },
          "rotation_interval_days": {
            "minimum": 1.0,
            "title": "Rotation Interval Days",
            "type": "integer"
          }
        },
        "required": [
          "rotation_interval_days",
          "max_consecutive_reviews",
          "backup_reviewer_required",
          "assignment_strategy"
        ],
        "title": "CurriculumReviewerRotationRuleResponse",
        "type": "object"
      },
      "CurriculumSafetyPolicyCatalogResponse": {
        "description": "Catalog of implemented core-discipline curriculum safety policies.",
        "properties": {
          "catalog_id": {
            "const": "metis-core-curriculum-safety-policies",
            "title": "Catalog Id",
            "type": "string"
          },
          "discipline_ids": {
            "items": {
              "enum": [
                "philosophy",
                "religion",
                "psychology",
                "neuroscience",
                "anthropology",
                "astronomy"
              ],
              "type": "string"
            },
            "title": "Discipline Ids",
            "type": "array"
          },
          "policies": {
            "items": {
              "$ref": "#/components/schemas/CurriculumSafetyPolicyResponse"
            },
            "title": "Policies",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["catalog_id", "version", "published_at"],
        "title": "CurriculumSafetyPolicyCatalogResponse",
        "type": "object"
      },
      "CurriculumSafetyPolicyEvaluationRequest": {
        "description": "Request to evaluate learner or generated content against a discipline policy.",
        "properties": {
          "content": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "pipeline": {
            "default": "tutor",
            "enum": ["tutor", "course_generation"],
            "title": "Pipeline",
            "type": "string"
          }
        },
        "required": ["content"],
        "title": "CurriculumSafetyPolicyEvaluationRequest",
        "type": "object"
      },
      "CurriculumSafetyPolicyEvaluationResponse": {
        "description": "Policy-screening result for curriculum-specific safety constraints.",
        "properties": {
          "abstain_required": {
            "title": "Abstain Required",
            "type": "boolean"
          },
          "blocked": {
            "title": "Blocked",
            "type": "boolean"
          },
          "correction_required": {
            "default": false,
            "title": "Correction Required",
            "type": "boolean"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "finding_labels": {
            "items": {
              "type": "string"
            },
            "title": "Finding Labels",
            "type": "array"
          },
          "pipeline": {
            "enum": ["tutor", "course_generation"],
            "title": "Pipeline",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "response_directives": {
            "items": {
              "type": "string"
            },
            "title": "Response Directives",
            "type": "array"
          },
          "safe_response": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Safe Response"
          },
          "triggered_rule_ids": {
            "items": {
              "type": "string"
            },
            "title": "Triggered Rule Ids",
            "type": "array"
          }
        },
        "required": ["policy_id", "discipline_id", "pipeline", "blocked", "abstain_required"],
        "title": "CurriculumSafetyPolicyEvaluationResponse",
        "type": "object"
      },
      "CurriculumSafetyPolicyResponse": {
        "description": "Versioned safety policy for one core discipline.",
        "properties": {
          "abstention_message": {
            "title": "Abstention Message",
            "type": "string"
          },
          "course_generation_directives": {
            "items": {
              "type": "string"
            },
            "title": "Course Generation Directives",
            "type": "array"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/CurriculumSafetyPolicyRuleResponse"
            },
            "title": "Rules",
            "type": "array"
          },
          "safe_redirect": {
            "title": "Safe Redirect",
            "type": "string"
          },
          "source_frameworks": {
            "items": {
              "type": "string"
            },
            "title": "Source Frameworks",
            "type": "array"
          },
          "stance": {
            "title": "Stance",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "tutor_directives": {
            "items": {
              "type": "string"
            },
            "title": "Tutor Directives",
            "type": "array"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "policy_id",
          "discipline_id",
          "discipline_title",
          "version",
          "published_at",
          "stance",
          "summary",
          "abstention_message",
          "safe_redirect"
        ],
        "title": "CurriculumSafetyPolicyResponse",
        "type": "object"
      },
      "CurriculumSafetyPolicyRuleResponse": {
        "description": "One enforceable rule in a core-discipline safety policy.",
        "properties": {
          "blocked_actions": {
            "items": {
              "type": "string"
            },
            "title": "Blocked Actions",
            "type": "array"
          },
          "category": {
            "enum": [
              "comparative_stance",
              "equal_treatment",
              "proselytizing",
              "denigration",
              "sacred_language",
              "sacred_text",
              "metaphysical_abstention",
              "medical_boundary",
              "treatment_recommendation",
              "neuromyth",
              "evidence_labeling",
              "clinical_boundary",
              "therapy_delivery",
              "crisis_handoff",
              "subfield_separation",
              "replication_labeling",
              "cultural_respect",
              "insider_outsider_labeling",
              "evolutionary_hierarchy",
              "human_remains_repatriation",
              "living_community_consultation",
              "argument_not_authority",
              "charitable_interpretation",
              "descriptive_normative_separation",
              "contested_positions",
              "false_neutrality",
              "fringe_cosmology",
              "astrology_as_science",
              "established_vs_research",
              "scale_uncertainty"
            ],
            "title": "Category",
            "type": "string"
          },
          "directive": {
            "title": "Directive",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "required_actions": {
            "items": {
              "type": "string"
            },
            "title": "Required Actions",
            "type": "array"
          },
          "severity": {
            "enum": ["directive", "block", "abstain", "correct"],
            "title": "Severity",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "trigger_phrases": {
            "items": {
              "type": "string"
            },
            "title": "Trigger Phrases",
            "type": "array"
          }
        },
        "required": ["id", "category", "severity", "title", "directive"],
        "title": "CurriculumSafetyPolicyRuleResponse",
        "type": "object"
      },
      "CurriculumScopeSequenceUnitResponse": {
        "description": "Reference scope-and-sequence unit for a depth tier.",
        "properties": {
          "assessment_focus": {
            "title": "Assessment Focus",
            "type": "string"
          },
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "depth_tier": {
            "enum": ["introductory", "intermediate", "advanced"],
            "title": "Depth Tier",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "objectives": {
            "items": {
              "type": "string"
            },
            "title": "Objectives",
            "type": "array"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "depth_tier", "sequence", "title", "assessment_focus"],
        "title": "CurriculumScopeSequenceUnitResponse",
        "type": "object"
      },
      "CurriculumSeedPackCatalogResponse": {
        "description": "Catalog of all core-discipline curriculum seed packs.",
        "properties": {
          "catalog_id": {
            "const": "metis-core-curriculum-seed-packs",
            "title": "Catalog Id",
            "type": "string"
          },
          "discipline_ids": {
            "items": {
              "enum": [
                "philosophy",
                "religion",
                "psychology",
                "neuroscience",
                "anthropology",
                "astronomy"
              ],
              "type": "string"
            },
            "title": "Discipline Ids",
            "type": "array"
          },
          "packs": {
            "items": {
              "$ref": "#/components/schemas/CurriculumSeedPackResponse"
            },
            "title": "Packs",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["catalog_id", "version", "published_at"],
        "title": "CurriculumSeedPackCatalogResponse",
        "type": "object"
      },
      "CurriculumSeedPackResponse": {
        "description": "Complete seed pack for one Metis core discipline.",
        "properties": {
          "canonical_concepts": {
            "items": {
              "$ref": "#/components/schemas/CurriculumConceptResponse"
            },
            "title": "Canonical Concepts",
            "type": "array"
          },
          "canonical_texts": {
            "items": {
              "$ref": "#/components/schemas/CurriculumCanonicalTextResponse"
            },
            "title": "Canonical Texts",
            "type": "array"
          },
          "concept_graph": {
            "$ref": "#/components/schemas/CurriculumConceptGraphResponse"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "glossary_terms": {
            "items": {
              "$ref": "#/components/schemas/CurriculumGlossaryTermResponse"
            },
            "title": "Glossary Terms",
            "type": "array"
          },
          "misconception_bank": {
            "items": {
              "$ref": "#/components/schemas/CurriculumMisconceptionResponse"
            },
            "title": "Misconception Bank",
            "type": "array"
          },
          "prerequisite_graph": {
            "items": {
              "$ref": "#/components/schemas/CurriculumPrerequisiteEdgeResponse"
            },
            "title": "Prerequisite Graph",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "scope_sequence": {
            "items": {
              "$ref": "#/components/schemas/CurriculumScopeSequenceUnitResponse"
            },
            "title": "Scope Sequence",
            "type": "array"
          },
          "subfields": {
            "items": {
              "$ref": "#/components/schemas/CurriculumSubfieldResponse"
            },
            "title": "Subfields",
            "type": "array"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          },
          "worked_examples": {
            "items": {
              "$ref": "#/components/schemas/CurriculumWorkedExampleResponse"
            },
            "title": "Worked Examples",
            "type": "array"
          }
        },
        "required": [
          "discipline_id",
          "discipline_title",
          "version",
          "published_at",
          "concept_graph"
        ],
        "title": "CurriculumSeedPackResponse",
        "type": "object"
      },
      "CurriculumSequenceItem": {
        "additionalProperties": false,
        "properties": {
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 512,
            "title": "Concept Ids",
            "type": "array"
          },
          "kind": {
            "enum": ["module", "lesson", "assessment"],
            "title": "Kind",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 512,
            "title": "Objective Ids",
            "type": "array"
          },
          "parent_sequence_id": {
            "anyOf": [
              {
                "pattern": "^sequence_[a-z0-9][a-z0-9_-]{2,127}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Sequence Id"
          },
          "position": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "sequence_id": {
            "pattern": "^sequence_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Sequence Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["sequence_id", "kind", "resource_id", "title", "position"],
        "title": "CurriculumSequenceItem",
        "type": "object"
      },
      "CurriculumStandardsAlignmentResponse": {
        "description": "One alignment between a standards frame and Metis concepts.",
        "properties": {
          "coverage_status": {
            "enum": ["covered", "partial", "contextual"],
            "title": "Coverage Status",
            "type": "string"
          },
          "depth_tiers": {
            "items": {
              "enum": ["introductory", "intermediate", "advanced"],
              "type": "string"
            },
            "title": "Depth Tiers",
            "type": "array"
          },
          "evidence_note": {
            "title": "Evidence Note",
            "type": "string"
          },
          "framework_id": {
            "title": "Framework Id",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "mapped_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Mapped Concept Ids",
            "type": "array"
          },
          "standard_code": {
            "title": "Standard Code",
            "type": "string"
          },
          "standard_title": {
            "title": "Standard Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "framework_id",
          "standard_code",
          "standard_title",
          "coverage_status",
          "evidence_note"
        ],
        "title": "CurriculumStandardsAlignmentResponse",
        "type": "object"
      },
      "CurriculumStandardsFrameworkResponse": {
        "description": "External or institutional reference framework mapped to a discipline.",
        "properties": {
          "framework_kind": {
            "enum": [
              "international_baccalaureate",
              "advanced_placement",
              "professional_association",
              "university_reference",
              "medical_admissions",
              "science_standards"
            ],
            "title": "Framework Kind",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "scope_note": {
            "title": "Scope Note",
            "type": "string"
          },
          "source_url": {
            "title": "Source Url",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "provider", "source_url", "framework_kind", "scope_note"],
        "title": "CurriculumStandardsFrameworkResponse",
        "type": "object"
      },
      "CurriculumStandardsMappingCatalogResponse": {
        "description": "Catalog of standards mappings across all core disciplines.",
        "properties": {
          "catalog_id": {
            "const": "metis-core-standards-mappings",
            "title": "Catalog Id",
            "type": "string"
          },
          "discipline_ids": {
            "items": {
              "enum": [
                "philosophy",
                "religion",
                "psychology",
                "neuroscience",
                "anthropology",
                "astronomy"
              ],
              "type": "string"
            },
            "title": "Discipline Ids",
            "type": "array"
          },
          "mappings": {
            "items": {
              "$ref": "#/components/schemas/CurriculumStandardsMappingResponse"
            },
            "title": "Mappings",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["catalog_id", "version", "published_at"],
        "title": "CurriculumStandardsMappingCatalogResponse",
        "type": "object"
      },
      "CurriculumStandardsMappingResponse": {
        "description": "Complete standards mapping for one core discipline.",
        "properties": {
          "alignments": {
            "items": {
              "$ref": "#/components/schemas/CurriculumStandardsAlignmentResponse"
            },
            "title": "Alignments",
            "type": "array"
          },
          "discipline_id": {
            "enum": [
              "philosophy",
              "religion",
              "psychology",
              "neuroscience",
              "anthropology",
              "astronomy"
            ],
            "title": "Discipline Id",
            "type": "string"
          },
          "discipline_title": {
            "title": "Discipline Title",
            "type": "string"
          },
          "frameworks": {
            "items": {
              "$ref": "#/components/schemas/CurriculumStandardsFrameworkResponse"
            },
            "title": "Frameworks",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["discipline_id", "discipline_title", "version", "published_at"],
        "title": "CurriculumStandardsMappingResponse",
        "type": "object"
      },
      "CurriculumSubfieldResponse": {
        "description": "One subfield node in a discipline ontology.",
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "summary"],
        "title": "CurriculumSubfieldResponse",
        "type": "object"
      },
      "CurriculumWorkedExampleResponse": {
        "description": "Worked example used by lesson and tutor generation.",
        "properties": {
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "depth_tier": {
            "enum": ["introductory", "intermediate", "advanced"],
            "title": "Depth Tier",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "prompt": {
            "title": "Prompt",
            "type": "string"
          },
          "solution_outline": {
            "items": {
              "type": "string"
            },
            "title": "Solution Outline",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "prompt", "depth_tier"],
        "title": "CurriculumWorkedExampleResponse",
        "type": "object"
      },
      "DashboardActivityResponse": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "type": {
            "enum": ["user_management", "course_management", "moderation", "system", "analytics"],
            "title": "Type",
            "type": "string"
          },
          "user": {
            "title": "User",
            "type": "string"
          }
        },
        "required": ["id", "timestamp", "user", "action", "target", "type"],
        "title": "DashboardActivityResponse",
        "type": "object"
      },
      "DashboardCourseProgressResponse": {
        "description": "Per-course learner progress summary.",
        "properties": {
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "estimated_time_remaining_hours": {
            "minimum": 0.0,
            "title": "Estimated Time Remaining Hours",
            "type": "number"
          },
          "last_accessed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Accessed At"
          },
          "lessons_completed": {
            "minimum": 0.0,
            "title": "Lessons Completed",
            "type": "integer"
          },
          "progress_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Progress Percent",
            "type": "number"
          },
          "total_lessons": {
            "minimum": 0.0,
            "title": "Total Lessons",
            "type": "integer"
          }
        },
        "required": [
          "course_id",
          "course_title",
          "progress_percent",
          "lessons_completed",
          "total_lessons",
          "estimated_time_remaining_hours"
        ],
        "title": "DashboardCourseProgressResponse",
        "type": "object"
      },
      "DashboardRecentActivityResponse": {
        "description": "A learner-visible activity timeline entry.",
        "properties": {
          "activity_type": {
            "title": "Activity Type",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "activity_type", "title", "description", "timestamp"],
        "title": "DashboardRecentActivityResponse",
        "type": "object"
      },
      "DashboardSeriesPointResponse": {
        "properties": {
          "enrollments": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enrollments"
          },
          "month": {
            "title": "Month",
            "type": "string"
          },
          "users": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Users"
          }
        },
        "required": ["month"],
        "title": "DashboardSeriesPointResponse",
        "type": "object"
      },
      "DashboardSkillResponse": {
        "description": "Derived skill-level signal for the learner dashboard.",
        "properties": {
          "confidence_high": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Confidence High",
            "type": "integer"
          },
          "confidence_low": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Confidence Low",
            "type": "integer"
          },
          "evidence_count": {
            "minimum": 0.0,
            "title": "Evidence Count",
            "type": "integer"
          },
          "level": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Level",
            "type": "integer"
          },
          "next_action_label": {
            "title": "Next Action Label",
            "type": "string"
          },
          "next_action_path": {
            "title": "Next Action Path",
            "type": "string"
          },
          "prerequisite_state": {
            "title": "Prerequisite State",
            "type": "string"
          },
          "recency_days": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recency Days"
          },
          "skill": {
            "title": "Skill",
            "type": "string"
          }
        },
        "required": [
          "skill",
          "level",
          "confidence_low",
          "confidence_high",
          "evidence_count",
          "prerequisite_state",
          "next_action_label",
          "next_action_path"
        ],
        "title": "DashboardSkillResponse",
        "type": "object"
      },
      "DashboardStatsResponse": {
        "properties": {
          "active_courses": {
            "minimum": 0.0,
            "title": "Active Courses",
            "type": "integer"
          },
          "active_courses_trend": {
            "title": "Active Courses Trend",
            "type": "number"
          },
          "assessments_completed": {
            "minimum": 0.0,
            "title": "Assessments Completed",
            "type": "integer"
          },
          "assessments_completed_trend": {
            "title": "Assessments Completed Trend",
            "type": "number"
          },
          "revenue": {
            "minimum": 0.0,
            "title": "Revenue",
            "type": "number"
          },
          "revenue_trend": {
            "title": "Revenue Trend",
            "type": "number"
          },
          "total_users": {
            "minimum": 0.0,
            "title": "Total Users",
            "type": "integer"
          },
          "total_users_trend": {
            "title": "Total Users Trend",
            "type": "number"
          }
        },
        "required": [
          "total_users",
          "total_users_trend",
          "active_courses",
          "active_courses_trend",
          "assessments_completed",
          "assessments_completed_trend",
          "revenue",
          "revenue_trend"
        ],
        "title": "DashboardStatsResponse",
        "type": "object"
      },
      "DashboardStreakResponse": {
        "description": "Learner streak and weekly activity summary.",
        "properties": {
          "current_streak": {
            "minimum": 0.0,
            "title": "Current Streak",
            "type": "integer"
          },
          "last_active_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Active Date"
          },
          "longest_streak": {
            "minimum": 0.0,
            "title": "Longest Streak",
            "type": "integer"
          },
          "weekly_activity_hours": {
            "items": {
              "type": "number"
            },
            "title": "Weekly Activity Hours",
            "type": "array"
          }
        },
        "required": ["current_streak", "longest_streak"],
        "title": "DashboardStreakResponse",
        "type": "object"
      },
      "DashboardTutoringMetricsResponse": {
        "description": "Learner-facing tutoring quality and continuity metrics.",
        "properties": {
          "active_sessions": {
            "minimum": 0.0,
            "title": "Active Sessions",
            "type": "integer"
          },
          "average_response_latency_ms": {
            "minimum": 0.0,
            "title": "Average Response Latency Ms",
            "type": "integer"
          },
          "completed_sessions": {
            "minimum": 0.0,
            "title": "Completed Sessions",
            "type": "integer"
          },
          "continuity_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Continuity Coverage Percent",
            "type": "number"
          },
          "continuity_linked_session_count": {
            "minimum": 0.0,
            "title": "Continuity Linked Session Count",
            "type": "integer"
          },
          "escalated_sessions": {
            "minimum": 0.0,
            "title": "Escalated Sessions",
            "type": "integer"
          },
          "interrupted_session_count": {
            "minimum": 0.0,
            "title": "Interrupted Session Count",
            "type": "integer"
          },
          "interruption_recovery_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Interruption Recovery Rate",
            "type": "number"
          },
          "longest_interruption_gap_hours": {
            "minimum": 0.0,
            "title": "Longest Interruption Gap Hours",
            "type": "number"
          },
          "peak_response_latency_ms": {
            "minimum": 0.0,
            "title": "Peak Response Latency Ms",
            "type": "integer"
          },
          "stalled_response_session_count": {
            "minimum": 0.0,
            "title": "Stalled Response Session Count",
            "type": "integer"
          },
          "total_sessions": {
            "minimum": 0.0,
            "title": "Total Sessions",
            "type": "integer"
          }
        },
        "required": [
          "total_sessions",
          "active_sessions",
          "completed_sessions",
          "escalated_sessions",
          "average_response_latency_ms",
          "peak_response_latency_ms",
          "interrupted_session_count",
          "stalled_response_session_count",
          "interruption_recovery_rate",
          "continuity_linked_session_count",
          "continuity_coverage_percent",
          "longest_interruption_gap_hours"
        ],
        "title": "DashboardTutoringMetricsResponse",
        "type": "object"
      },
      "DataAnalysisArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_kind": {
            "const": "data_analysis",
            "default": "data_analysis",
            "title": "Artifact Kind",
            "type": "string"
          },
          "cleaning_steps": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Cleaning Steps",
            "type": "array"
          },
          "code": {
            "$ref": "#/components/schemas/DataCodeEvidence"
          },
          "dataset_source": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Dataset Source",
            "type": "string"
          },
          "dataset_version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Dataset Version",
            "type": "string"
          },
          "method": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Method",
            "type": "string"
          },
          "reproducibility": {
            "$ref": "#/components/schemas/ReproducibilityEvidence"
          },
          "results": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Results",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          },
          "variables": {
            "items": {
              "$ref": "#/components/schemas/DataVariable"
            },
            "minItems": 1,
            "title": "Variables",
            "type": "array"
          },
          "visualization": {
            "$ref": "#/components/schemas/DataVisualizationEvidence"
          }
        },
        "required": [
          "dataset_source",
          "dataset_version",
          "variables",
          "cleaning_steps",
          "method",
          "code",
          "results",
          "visualization",
          "uncertainty",
          "reproducibility"
        ],
        "title": "DataAnalysisArtifact",
        "type": "object"
      },
      "DataCodeEvidence": {
        "additionalProperties": false,
        "properties": {
          "language": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Language",
            "type": "string"
          },
          "runtime_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Runtime Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Uri",
            "type": "string"
          }
        },
        "required": ["language", "runtime_version", "source_uri", "source_sha256"],
        "title": "DataCodeEvidence",
        "type": "object"
      },
      "DataVariable": {
        "additionalProperties": false,
        "properties": {
          "data_type": {
            "enum": ["integer", "number", "boolean", "string", "datetime", "category"],
            "title": "Data Type",
            "type": "string"
          },
          "name": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "role": {
            "enum": ["input", "outcome", "control", "identifier"],
            "title": "Role",
            "type": "string"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["name", "data_type", "unit", "role"],
        "title": "DataVariable",
        "type": "object"
      },
      "DataVisualizationEvidence": {
        "additionalProperties": false,
        "properties": {
          "alt_text": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Alt Text",
            "type": "string"
          },
          "chart_type": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Chart Type",
            "type": "string"
          },
          "data_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Data Uri",
            "type": "string"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["chart_type", "title", "alt_text", "data_uri"],
        "title": "DataVisualizationEvidence",
        "type": "object"
      },
      "DatasetCandidate": {
        "additionalProperties": false,
        "description": "A sealed candidate, whose digest covers everything above it.",
        "properties": {
          "assembled_at": {
            "format": "date-time",
            "title": "Assembled At",
            "type": "string"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Sha256",
            "type": "string"
          },
          "licence_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Licence Ids",
            "type": "array"
          },
          "lineage": {
            "items": {
              "$ref": "#/components/schemas/LineageEntry"
            },
            "maxItems": 100000,
            "minItems": 1,
            "title": "Lineage",
            "type": "array"
          },
          "purpose": {
            "enum": ["model_training", "model_evaluation", "quality_monitoring"],
            "title": "Purpose",
            "type": "string"
          },
          "retention": {
            "$ref": "#/components/schemas/RetentionState"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "trainable": {
            "const": false,
            "default": false,
            "title": "Trainable",
            "type": "boolean"
          }
        },
        "required": [
          "candidate_id",
          "tenant_id",
          "purpose",
          "lineage",
          "licence_ids",
          "retention",
          "assembled_at",
          "candidate_sha256"
        ],
        "title": "DatasetCandidate",
        "type": "object"
      },
      "DatasetManifest": {
        "additionalProperties": false,
        "description": "A versioned manifest whose splits share no record.\n\nDisjointness is checked here rather than asserted, because a record in both\ntrain and test is the leak every evaluation number would then be wrong by.",
        "properties": {
          "manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          },
          "manifest_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Manifest Version",
            "type": "string"
          },
          "splits": {
            "items": {
              "$ref": "#/components/schemas/ManifestSplit"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Splits",
            "type": "array"
          }
        },
        "required": ["manifest_version", "splits", "manifest_sha256"],
        "title": "DatasetManifest",
        "type": "object"
      },
      "DatasetRelease": {
        "additionalProperties": false,
        "description": "The only artefact anything may train on.\n\nIt cannot be constructed without the curation record, a quorum of\ngovernance approvals over this exact candidate digest, all three discipline\nreviews cleared, and a manifest whose splits are disjoint. ``trainable`` is\na ``Literal[True]`` here and a ``Literal[False]`` on the candidate, so the\ndifference between reviewable and trainable is a type rather than a flag.",
        "properties": {
          "approvals": {
            "items": {
              "$ref": "#/components/schemas/GovernanceApproval"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Approvals",
            "type": "array"
          },
          "candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Sha256",
            "type": "string"
          },
          "curation": {
            "$ref": "#/components/schemas/CurationRecord"
          },
          "manifest": {
            "$ref": "#/components/schemas/DatasetManifest"
          },
          "purpose": {
            "enum": ["model_training", "model_evaluation", "quality_monitoring"],
            "title": "Purpose",
            "type": "string"
          },
          "release_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Release Id",
            "type": "string"
          },
          "released_at": {
            "format": "date-time",
            "title": "Released At",
            "type": "string"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/DisciplineReview"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Reviews",
            "type": "array"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "trainable": {
            "const": true,
            "default": true,
            "title": "Trainable",
            "type": "boolean"
          }
        },
        "required": [
          "release_id",
          "candidate_sha256",
          "purpose",
          "curation",
          "approvals",
          "reviews",
          "manifest",
          "released_at"
        ],
        "title": "DatasetRelease",
        "type": "object"
      },
      "DeadlineProbe": {
        "additionalProperties": false,
        "properties": {
          "breach_state": {
            "enum": ["on_track", "warned", "breached"],
            "title": "Breach State",
            "type": "string"
          },
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "elapsed_business_seconds": {
            "minimum": 0.0,
            "title": "Elapsed Business Seconds",
            "type": "integer"
          },
          "opened_at": {
            "format": "date-time",
            "title": "Opened At",
            "type": "string"
          },
          "priority": {
            "enum": ["routine", "elevated", "urgent"],
            "title": "Priority",
            "type": "string"
          },
          "scenario": {
            "maxLength": 100,
            "minLength": 3,
            "title": "Scenario",
            "type": "string"
          }
        },
        "required": [
          "scenario",
          "priority",
          "opened_at",
          "due_at",
          "elapsed_business_seconds",
          "breach_state"
        ],
        "title": "DeadlineProbe",
        "type": "object"
      },
      "DecisionApplicability": {
        "additionalProperties": false,
        "properties": {
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "status": {
            "enum": ["applicable", "not_applicable", "undetermined"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "rationale", "evidence_refs"],
        "title": "DecisionApplicability",
        "type": "object"
      },
      "DecisionEvidence": {
        "additionalProperties": false,
        "properties": {
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "measurement_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Measurement Id",
            "type": "string"
          },
          "measurement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Measurement Sha256",
            "type": "string"
          },
          "metric_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Metric Id",
            "type": "string"
          }
        },
        "required": ["measurement_id", "measurement_sha256", "metric_id", "evidence_refs"],
        "title": "DecisionEvidence",
        "type": "object"
      },
      "DecisionReason": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "pattern": "^outcome_[a-z0-9_]{3,100}$",
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Detail",
            "type": "string"
          }
        },
        "required": ["code", "detail"],
        "title": "DecisionReason",
        "type": "object"
      },
      "DecisionRecord": {
        "additionalProperties": false,
        "description": "What an author decided, the draft it minted if any, and the lineage.",
        "properties": {
          "authority": {
            "$ref": "#/components/schemas/AuthorityDecision"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "lineage": {
            "$ref": "#/components/schemas/LineageRecord"
          },
          "queue_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Queue Id",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "queue_id",
          "tenant_id",
          "created_at",
          "record_sha256",
          "authority",
          "lineage"
        ],
        "title": "DecisionRecord",
        "type": "object"
      },
      "DecisionRequest": {
        "additionalProperties": false,
        "description": "An author's call on one queue item.",
        "properties": {
          "decision": {
            "enum": ["accept", "reject", "defer", "request_research"],
            "title": "Decision",
            "type": "string"
          },
          "queue_item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Queue Item Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["queue_item_id", "decision", "rationale"],
        "title": "DecisionRequest",
        "type": "object"
      },
      "DecisionSubstance": {
        "additionalProperties": false,
        "properties": {
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "outcome": {
            "enum": ["no_finding", "finding", "finding_with_remedy"],
            "title": "Outcome",
            "type": "string"
          },
          "rationale_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rationale Sha256",
            "type": "string"
          },
          "remedy": {
            "enum": [
              "none",
              "educator_review",
              "learner_warning",
              "score_hold",
              "submission_reject",
              "institution_escalation"
            ],
            "title": "Remedy",
            "type": "string"
          },
          "standard": {
            "enum": ["balance_of_probabilities", "clear_and_convincing"],
            "title": "Standard",
            "type": "string"
          }
        },
        "required": ["decision_id", "outcome", "remedy", "standard", "rationale_sha256"],
        "title": "DecisionSubstance",
        "type": "object"
      },
      "DecisionView": {
        "additionalProperties": false,
        "properties": {
          "about_output": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "About Output",
            "type": "string"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by_role": {
            "enum": [
              "curriculum_lead",
              "assessment_lead",
              "accessibility_lead",
              "integrity_lead",
              "course_owner"
            ],
            "title": "Decided By Role",
            "type": "string"
          },
          "decision": {
            "enum": ["accepted", "rejected", "returned_for_revision"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "about_output",
          "decided_by_role",
          "decided_at",
          "decision",
          "rationale"
        ],
        "title": "DecisionView",
        "type": "object"
      },
      "DeclarationCoverage": {
        "additionalProperties": false,
        "description": "Whether this reviewer has said anything current about this subject.",
        "properties": {
          "considered_declaration_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Considered Declaration Ids",
            "type": "array"
          },
          "covered": {
            "title": "Covered",
            "type": "boolean"
          },
          "fresh_days": {
            "minimum": 1.0,
            "title": "Fresh Days",
            "type": "integer"
          },
          "gaps": {
            "default": [],
            "items": {
              "enum": ["no_declaration", "stale", "does_not_cover_subject", "unsure_unresolved"],
              "type": "string"
            },
            "title": "Gaps",
            "type": "array"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ConflictSubject"
          }
        },
        "required": ["reviewer_digest", "subject", "risk", "covered", "fresh_days"],
        "title": "DeclarationCoverage",
        "type": "object"
      },
      "DeclaredInterest": {
        "additionalProperties": false,
        "description": "What an approver has to do with the thing they are approving.",
        "properties": {
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "kind": {
            "enum": ["none", "authored", "employed_by_supplier", "financial", "personal", "other"],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["kind"],
        "title": "DeclaredInterest",
        "type": "object"
      },
      "DeclaredVersusEmpirical": {
        "additionalProperties": false,
        "description": "What the author said the item was, beside what the data says.",
        "properties": {
          "declared": {
            "title": "Declared",
            "type": "number"
          },
          "empirical": {
            "$ref": "#/components/schemas/Estimate"
          },
          "outside_interval": {
            "title": "Outside Interval",
            "type": "boolean"
          },
          "statistic": {
            "enum": [
              "p_value",
              "point_biserial",
              "difficulty",
              "discrimination",
              "guessing",
              "infit",
              "outfit",
              "information"
            ],
            "title": "Statistic",
            "type": "string"
          }
        },
        "required": ["statistic", "declared", "empirical", "outside_interval"],
        "title": "DeclaredVersusEmpirical",
        "type": "object"
      },
      "DeliverRequest": {
        "additionalProperties": false,
        "properties": {
          "already_sent_keys": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Already Sent Keys",
            "type": "array"
          },
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "channel": {
            "enum": ["in_product", "email", "sms", "pager"],
            "title": "Channel",
            "type": "string"
          },
          "kind": {
            "enum": ["reminder", "escalation", "assignment", "acknowledgement_request"],
            "title": "Kind",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/NotificationPolicy"
          },
          "ratification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UrgencyRatification"
              },
              {
                "type": "null"
              }
            ]
          },
          "task": {
            "$ref": "#/components/schemas/ReviewTask"
          }
        },
        "required": ["task", "kind", "policy", "channel"],
        "title": "DeliverRequest",
        "type": "object"
      },
      "DeliverResponse": {
        "additionalProperties": false,
        "properties": {
          "already_sent": {
            "title": "Already Sent",
            "type": "boolean"
          },
          "notification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Notification"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["already_sent"],
        "title": "DeliverResponse",
        "type": "object"
      },
      "DeliveryPolicy": {
        "additionalProperties": false,
        "properties": {
          "integrity_mode": {
            "enum": ["open", "monitored", "proctored", "lockdown"],
            "title": "Integrity Mode",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "required_supports": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Required Supports",
            "type": "array"
          },
          "safety_gates": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Safety Gates",
            "type": "array"
          }
        },
        "required": ["locale", "integrity_mode"],
        "title": "DeliveryPolicy",
        "type": "object"
      },
      "DeliveryRule": {
        "additionalProperties": false,
        "properties": {
          "allowed_delivery_modes": {
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Allowed Delivery Modes",
            "type": "array"
          },
          "allowed_platforms": {
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Allowed Platforms",
            "type": "array"
          }
        },
        "required": ["allowed_delivery_modes", "allowed_platforms"],
        "title": "DeliveryRule",
        "type": "object"
      },
      "DependencyEdge": {
        "additionalProperties": false,
        "properties": {
          "choice_group_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Choice Group Id"
          },
          "edge_kind": {
            "enum": ["required", "optional", "choice", "remedial", "parallel"],
            "title": "Edge Kind",
            "type": "string"
          },
          "from_node_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "From Node Id",
            "type": "string"
          },
          "to_node_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "To Node Id",
            "type": "string"
          }
        },
        "required": ["from_node_id", "to_node_id", "edge_kind"],
        "title": "DependencyEdge",
        "type": "object"
      },
      "DependencyFreshnessImpact": {
        "additionalProperties": false,
        "properties": {
          "affected": {
            "items": {
              "$ref": "#/components/schemas/ContentFreshnessWorkspace"
            },
            "title": "Affected",
            "type": "array"
          },
          "affected_count": {
            "minimum": 0.0,
            "title": "Affected Count",
            "type": "integer"
          },
          "signal": {
            "$ref": "#/components/schemas/DependencyFreshnessSignal"
          }
        },
        "required": ["signal", "affected", "affected_count"],
        "title": "DependencyFreshnessImpact",
        "type": "object"
      },
      "DependencyFreshnessSignal": {
        "additionalProperties": false,
        "properties": {
          "dependency": {
            "$ref": "#/components/schemas/DependencyObservation"
          },
          "idempotency_key": {
            "pattern": "^freshness-signal:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reported_by": {
            "format": "uuid",
            "title": "Reported By",
            "type": "string"
          },
          "schema_version": {
            "const": "5.14.0",
            "default": "5.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signal_id": {
            "pattern": "^freshness-signal:[A-Za-z0-9._:-]{6,140}$",
            "title": "Signal Id",
            "type": "string"
          },
          "signal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signal Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "signal_id",
          "tenant_id",
          "dependency",
          "reported_by",
          "reason",
          "idempotency_key",
          "signal_sha256"
        ],
        "title": "DependencyFreshnessSignal",
        "type": "object"
      },
      "DependencyFreshnessSignalRequest": {
        "additionalProperties": false,
        "properties": {
          "dependency": {
            "$ref": "#/components/schemas/DependencyObservation"
          },
          "idempotency_key": {
            "pattern": "^freshness-signal:[A-Za-z0-9._:-]{6,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reported_by": {
            "format": "uuid",
            "title": "Reported By",
            "type": "string"
          },
          "schema_version": {
            "const": "5.14.0",
            "default": "5.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signal_id": {
            "pattern": "^freshness-signal:[A-Za-z0-9._:-]{6,140}$",
            "title": "Signal Id",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "signal_id",
          "tenant_id",
          "dependency",
          "reported_by",
          "reason",
          "idempotency_key"
        ],
        "title": "DependencyFreshnessSignalRequest",
        "type": "object"
      },
      "DependencyObservation": {
        "additionalProperties": false,
        "properties": {
          "dependency_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{2,239}$",
            "title": "Dependency Id",
            "type": "string"
          },
          "dependency_kind": {
            "enum": ["source", "claim", "citation", "standard", "objective", "tool", "policy"],
            "title": "Dependency Kind",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/FreshnessEvidenceRef"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "observed_revision": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Revision"
          },
          "observed_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Revision Sha256"
          },
          "replacement_revision": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Revision"
          },
          "replacement_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Revision Sha256"
          },
          "status": {
            "enum": [
              "current",
              "updated",
              "retracted",
              "superseded",
              "unavailable",
              "conflicting_current_evidence"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["dependency_kind", "dependency_id", "status", "observed_at", "evidence"],
        "title": "DependencyObservation",
        "type": "object"
      },
      "DependencyStalenessRecord": {
        "additionalProperties": false,
        "properties": {
          "cause_id": {
            "title": "Cause Id",
            "type": "string"
          },
          "cause_type": {
            "enum": ["stimulus_revision", "stimulus_set_revision"],
            "title": "Cause Type",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current_cause_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Cause Revision Sha256",
            "type": "string"
          },
          "dependent_id": {
            "title": "Dependent Id",
            "type": "string"
          },
          "dependent_revision": {
            "title": "Dependent Revision",
            "type": "integer"
          },
          "dependent_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dependent Revision Sha256",
            "type": "string"
          },
          "dependent_rewritten": {
            "const": false,
            "default": false,
            "title": "Dependent Rewritten",
            "type": "boolean"
          },
          "dependent_type": {
            "enum": ["item", "assessment", "build", "stimulus_set"],
            "title": "Dependent Type",
            "type": "string"
          },
          "gate_state": {
            "const": "stale",
            "default": "stale",
            "title": "Gate State",
            "type": "string"
          },
          "previous_cause_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Previous Cause Revision Sha256",
            "type": "string"
          },
          "review_gate_ids": {
            "items": {
              "type": "string"
            },
            "title": "Review Gate Ids",
            "type": "array"
          },
          "review_state": {
            "const": "stale",
            "default": "stale",
            "title": "Review State",
            "type": "string"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "staleness_id": {
            "format": "uuid",
            "title": "Staleness Id",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "staleness_id",
          "tenant_id",
          "cause_type",
          "cause_id",
          "previous_cause_revision_sha256",
          "current_cause_revision_sha256",
          "dependent_type",
          "dependent_id",
          "dependent_revision",
          "dependent_revision_sha256",
          "review_gate_ids",
          "created_at"
        ],
        "title": "DependencyStalenessRecord",
        "type": "object"
      },
      "DerivedShape": {
        "additionalProperties": false,
        "description": "A contract shape given no table, and why it was given none.",
        "properties": {
          "aggregate": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Aggregate",
            "type": "string"
          },
          "module": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Module",
            "type": "string"
          },
          "reason": {
            "enum": [
              "no_identifier_field",
              "computed_report",
              "request_or_response_shape",
              "authoritative_elsewhere"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["module", "aggregate", "reason"],
        "title": "DerivedShape",
        "type": "object"
      },
      "DetectionSignal": {
        "additionalProperties": false,
        "description": "What a detector noticed. `is_conclusion` is a Literal[False]: it indicates only.",
        "properties": {
          "detector_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Detector Id",
            "type": "string"
          },
          "detector_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Detector Version",
            "type": "string"
          },
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ConflictEvidenceRef"
            },
            "maxItems": 20,
            "title": "Evidence",
            "type": "array"
          },
          "is_conclusion": {
            "const": false,
            "default": false,
            "title": "Is Conclusion",
            "type": "boolean"
          },
          "kind": {
            "enum": [
              "shared_affiliation",
              "co_authorship",
              "same_institution",
              "prior_review_of_subject",
              "supplier_relationship"
            ],
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "const": "detector_indicates",
            "default": "detector_indicates",
            "title": "Language",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          }
        },
        "required": ["signal_id", "kind", "detector_id", "detector_version", "observed_at"],
        "title": "DetectionSignal",
        "type": "object"
      },
      "DeterministicVerifierProbe": {
        "additionalProperties": false,
        "description": "One recorded answer to \"could a deterministic verifier decide this?\".",
        "properties": {
          "availability": {
            "enum": ["available", "incomplete", "unavailable"],
            "title": "Availability",
            "type": "string"
          },
          "coverage_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Coverage Basis Points",
            "type": "integer"
          },
          "covered_criterion_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Covered Criterion Ids",
            "type": "array"
          },
          "evidence_ref": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "kind": {
            "enum": ["rule", "source", "executable", "symbolic", "process"],
            "title": "Kind",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          },
          "verifier_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verifier Id",
            "type": "string"
          }
        },
        "required": [
          "verifier_id",
          "kind",
          "availability",
          "covered_criterion_ids",
          "coverage_basis_points",
          "evidence_ref",
          "rationale"
        ],
        "title": "DeterministicVerifierProbe",
        "type": "object"
      },
      "DiagnosticCounts": {
        "additionalProperties": false,
        "description": "How many of each, and how many were left out of the list.\n\n**AN AGGREGATE THAT DOES NOT NAME WHAT IT LEFT OUT IS NOT AN AGGREGATE.** A\nreport that shows the first fifty diagnostics and a headline percentage\nhides whatever is at position fifty-one, and the blocking one is as likely\nto be there as anywhere else.",
        "properties": {
          "by_family": {
            "additionalProperties": {
              "type": "integer"
            },
            "propertyNames": {
              "enum": [
                "interaction",
                "scoring",
                "accessibility",
                "media",
                "locale",
                "metadata",
                "layout"
              ]
            },
            "title": "By Family",
            "type": "object"
          },
          "by_severity": {
            "additionalProperties": {
              "type": "integer"
            },
            "propertyNames": {
              "enum": ["blocking", "lossy", "advisory", "informational"]
            },
            "title": "By Severity",
            "type": "object"
          },
          "by_support": {
            "additionalProperties": {
              "type": "integer"
            },
            "propertyNames": {
              "enum": [
                "supported",
                "partially_supported",
                "unsupported",
                "extension_required",
                "unknown"
              ]
            },
            "title": "By Support",
            "type": "object"
          },
          "elided": {
            "minimum": 0.0,
            "title": "Elided",
            "type": "integer"
          },
          "listed": {
            "minimum": 0.0,
            "title": "Listed",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["by_severity", "by_support", "by_family", "total", "listed", "elided"],
        "title": "DiagnosticCounts",
        "type": "object"
      },
      "DifAnalysisCatalog": {
        "additionalProperties": false,
        "properties": {
          "runs": {
            "items": {
              "$ref": "#/components/schemas/DifAnalysisSummary"
            },
            "maxItems": 1000,
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["runs"],
        "title": "DifAnalysisCatalog",
        "type": "object"
      },
      "DifAnalysisCheck": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "exact_input",
              "cohort_ratification",
              "privacy",
              "sample",
              "response_quality",
              "model_applicability",
              "model_fit",
              "multiplicity"
            ],
            "title": "Category",
            "type": "string"
          },
          "check_id": {
            "pattern": "^dif-analysis-check:[a-z0-9-]{3,100}$",
            "title": "Check Id",
            "type": "string"
          },
          "criterion": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Criterion",
            "type": "string"
          },
          "evidence_paths": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Evidence Paths",
            "type": "array"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "observed": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Observed",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "insufficient", "not_applicable", "error", "conflict"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "check_id",
          "category",
          "status",
          "observed",
          "criterion",
          "evidence_paths",
          "message"
        ],
        "title": "DifAnalysisCheck",
        "type": "object"
      },
      "DifAnalysisEvidence": {
        "additionalProperties": false,
        "properties": {
          "analysis_family_id": {
            "pattern": "^dif-analysis-family:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Analysis Family Id",
            "type": "string"
          },
          "cohort_dimension": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Cohort Dimension",
            "type": "string"
          },
          "exclusion_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exclusion Policy Sha256",
            "type": "string"
          },
          "focal_cohort": {
            "$ref": "#/components/schemas/DifCohortDescriptor"
          },
          "inclusion_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Inclusion Policy Sha256",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/DifItemResponseEvidence"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          },
          "population_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Population Revision Sha256",
            "type": "string"
          },
          "reference_cohort": {
            "$ref": "#/components/schemas/DifCohortDescriptor"
          },
          "tool": {
            "$ref": "#/components/schemas/DifToolReceipt"
          },
          "window_end": {
            "format": "date-time",
            "title": "Window End",
            "type": "string"
          },
          "window_start": {
            "format": "date-time",
            "title": "Window Start",
            "type": "string"
          }
        },
        "required": [
          "analysis_family_id",
          "cohort_dimension",
          "reference_cohort",
          "focal_cohort",
          "window_start",
          "window_end",
          "population_revision_sha256",
          "inclusion_policy_sha256",
          "exclusion_policy_sha256",
          "items",
          "tool"
        ],
        "title": "DifAnalysisEvidence",
        "type": "object"
      },
      "DifAnalysisPolicy": {
        "additionalProperties": false,
        "properties": {
          "alpha": {
            "exclusiveMaximum": 0.5,
            "exclusiveMinimum": 0.0,
            "title": "Alpha",
            "type": "number"
          },
          "authorized_purpose": {
            "const": "aggregate_item_fairness_review",
            "default": "aggregate_item_fairness_review",
            "title": "Authorized Purpose",
            "type": "string"
          },
          "automatic_fairness_decision": {
            "const": false,
            "default": false,
            "title": "Automatic Fairness Decision",
            "type": "boolean"
          },
          "confidence_level": {
            "default": 0.95,
            "maximum": 0.95,
            "minimum": 0.95,
            "title": "Confidence Level",
            "type": "number"
          },
          "convergence_tolerance": {
            "exclusiveMinimum": 0.0,
            "title": "Convergence Tolerance",
            "type": "number"
          },
          "criterion_purification": {
            "const": "single_pass",
            "default": "single_pass",
            "title": "Criterion Purification",
            "type": "string"
          },
          "dimension_policies": {
            "items": {
              "$ref": "#/components/schemas/DifDimensionPolicy"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Dimension Policies",
            "type": "array"
          },
          "effect_metric": {
            "const": "logit_coefficient",
            "default": "logit_coefficient",
            "title": "Effect Metric",
            "type": "string"
          },
          "high_impact_actions_require_dual_human_review": {
            "const": true,
            "default": true,
            "title": "High Impact Actions Require Dual Human Review",
            "type": "boolean"
          },
          "individual_inference_supported": {
            "const": false,
            "default": false,
            "title": "Individual Inference Supported",
            "type": "boolean"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "matching_variable": {
            "const": "rest_score",
            "default": "rest_score",
            "title": "Matching Variable",
            "type": "string"
          },
          "matching_variable_version": {
            "const": "rest-score-v1",
            "default": "rest-score-v1",
            "title": "Matching Variable Version",
            "type": "string"
          },
          "material_nonuniform_effect": {
            "exclusiveMinimum": 0.0,
            "title": "Material Nonuniform Effect",
            "type": "number"
          },
          "material_uniform_effect": {
            "exclusiveMinimum": 0.0,
            "title": "Material Uniform Effect",
            "type": "number"
          },
          "maximum_condition_proxy": {
            "exclusiveMinimum": 1.0,
            "title": "Maximum Condition Proxy",
            "type": "number"
          },
          "maximum_iterations": {
            "maximum": 1000.0,
            "minimum": 10.0,
            "title": "Maximum Iterations",
            "type": "integer"
          },
          "method": {
            "const": "weighted_logistic_regression",
            "default": "weighted_logistic_regression",
            "title": "Method",
            "type": "string"
          },
          "multiplicity_adjustment": {
            "const": "holm",
            "default": "holm",
            "title": "Multiplicity Adjustment",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.dif-analysis-policy",
            "default": "metis.dif-analysis-policy",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sources": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sources",
            "type": "array"
          },
          "tool": {
            "$ref": "#/components/schemas/DifToolReceipt"
          }
        },
        "required": [
          "dimension_policies",
          "alpha",
          "material_uniform_effect",
          "material_nonuniform_effect",
          "maximum_iterations",
          "convergence_tolerance",
          "maximum_condition_proxy",
          "tool",
          "sources",
          "limitations",
          "policy_sha256"
        ],
        "title": "DifAnalysisPolicy",
        "type": "object"
      },
      "DifAnalysisResult": {
        "additionalProperties": false,
        "properties": {
          "bias_cause_established": {
            "const": false,
            "default": false,
            "title": "Bias Cause Established",
            "type": "boolean"
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/DifAnalysisCheck"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Checks",
            "type": "array"
          },
          "cohort_dimension": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Cohort Dimension",
            "type": "string"
          },
          "cohort_samples": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "$ref": "#/components/schemas/DifSafeCohortSample"
              },
              {
                "$ref": "#/components/schemas/DifSafeCohortSample"
              }
            ],
            "title": "Cohort Samples",
            "type": "array"
          },
          "comparison_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Comparison Sha256",
            "type": "string"
          },
          "direction": {
            "enum": ["reference_favored", "focal_favored", "mixed", "none", "suppressed"],
            "title": "Direction",
            "type": "string"
          },
          "finding": {
            "enum": [
              "no_statistical_signal",
              "statistical_signal",
              "material_signal",
              "inconclusive"
            ],
            "title": "Finding",
            "type": "string"
          },
          "focal_cohort_id": {
            "pattern": "^cohort:[a-f0-9]{64}$",
            "title": "Focal Cohort Id",
            "type": "string"
          },
          "human_review_required": {
            "title": "Human Review Required",
            "type": "boolean"
          },
          "individual_inference_supported": {
            "const": false,
            "default": false,
            "title": "Individual Inference Supported",
            "type": "boolean"
          },
          "item": {
            "$ref": "#/components/schemas/DifItemRevision"
          },
          "model_fit": {
            "$ref": "#/components/schemas/DifModelFit"
          },
          "nonuniform_effect": {
            "$ref": "#/components/schemas/DifEffectEstimate"
          },
          "operational_action_applied": {
            "const": false,
            "default": false,
            "title": "Operational Action Applied",
            "type": "boolean"
          },
          "reference_cohort_id": {
            "pattern": "^cohort:[a-f0-9]{64}$",
            "title": "Reference Cohort Id",
            "type": "string"
          },
          "result_id": {
            "pattern": "^dif-result-[a-f0-9]{40}$",
            "title": "Result Id",
            "type": "string"
          },
          "result_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Result Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "significance": {
            "$ref": "#/components/schemas/DifSignificance"
          },
          "status": {
            "enum": ["eligible", "insufficient", "not_applicable", "error", "conflict"],
            "title": "Status",
            "type": "string"
          },
          "uniform_effect": {
            "$ref": "#/components/schemas/DifEffectEstimate"
          }
        },
        "required": [
          "result_id",
          "item",
          "cohort_dimension",
          "reference_cohort_id",
          "focal_cohort_id",
          "comparison_sha256",
          "status",
          "checks",
          "cohort_samples",
          "uniform_effect",
          "nonuniform_effect",
          "direction",
          "significance",
          "model_fit",
          "finding",
          "human_review_required",
          "result_sha256"
        ],
        "title": "DifAnalysisResult",
        "type": "object"
      },
      "DifAnalysisRun": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "analysis_family_id": {
            "title": "Analysis Family Id",
            "type": "string"
          },
          "automatic_fairness_decision": {
            "const": false,
            "default": false,
            "title": "Automatic Fairness Decision",
            "type": "boolean"
          },
          "cohort_dimension": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Cohort Dimension",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 180,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "input_id": {
            "pattern": "^dif-analysis-input-[a-f0-9]{40}$",
            "title": "Input Id",
            "type": "string"
          },
          "operational_action_applied": {
            "const": false,
            "default": false,
            "title": "Operational Action Applied",
            "type": "boolean"
          },
          "policy_id": {
            "const": "metis.dif-analysis-policy",
            "default": "metis.dif-analysis-policy",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/DifAnalysisResult"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Results",
            "type": "array"
          },
          "run_id": {
            "pattern": "^dif-analysis-run-[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Run Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "input_id",
          "tenant_id",
          "analysis_family_id",
          "cohort_dimension",
          "policy_sha256",
          "results",
          "actor_id",
          "actor_role",
          "reason",
          "idempotency_key",
          "request_sha256",
          "created_at",
          "run_sha256"
        ],
        "title": "DifAnalysisRun",
        "type": "object"
      },
      "DifAnalysisRunRequest": {
        "additionalProperties": false,
        "properties": {
          "evidence": {
            "$ref": "#/components/schemas/DifAnalysisEvidence"
          },
          "expected_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Policy Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 180,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "reason", "expected_policy_sha256", "evidence"],
        "title": "DifAnalysisRunRequest",
        "type": "object"
      },
      "DifAnalysisSummary": {
        "additionalProperties": false,
        "properties": {
          "analysis_family_id": {
            "title": "Analysis Family Id",
            "type": "string"
          },
          "cohort_dimension": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Cohort Dimension",
            "type": "string"
          },
          "completed_review_count": {
            "minimum": 0.0,
            "title": "Completed Review Count",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "eligible_count": {
            "minimum": 0.0,
            "title": "Eligible Count",
            "type": "integer"
          },
          "item_count": {
            "minimum": 1.0,
            "title": "Item Count",
            "type": "integer"
          },
          "pending_review_count": {
            "minimum": 0.0,
            "title": "Pending Review Count",
            "type": "integer"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signal_count": {
            "minimum": 0.0,
            "title": "Signal Count",
            "type": "integer"
          },
          "suppressed_count": {
            "minimum": 0.0,
            "title": "Suppressed Count",
            "type": "integer"
          }
        },
        "required": [
          "run_id",
          "analysis_family_id",
          "cohort_dimension",
          "item_count",
          "eligible_count",
          "signal_count",
          "suppressed_count",
          "pending_review_count",
          "completed_review_count",
          "created_at"
        ],
        "title": "DifAnalysisSummary",
        "type": "object"
      },
      "DifAnalysisWorkspace": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/DifReviewDecision"
            },
            "maxItems": 1000,
            "title": "Decisions",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/DifAnalysisRun"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["run", "decisions"],
        "title": "DifAnalysisWorkspace",
        "type": "object"
      },
      "DifCohortDescriptor": {
        "additionalProperties": false,
        "properties": {
          "ratification": {
            "$ref": "#/components/schemas/DifCohortRatification"
          },
          "role": {
            "enum": ["reference", "focal"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["role", "ratification"],
        "title": "DifCohortDescriptor",
        "type": "object"
      },
      "DifCohortRatification": {
        "additionalProperties": false,
        "properties": {
          "authorized_purpose": {
            "const": "aggregate_item_fairness_review",
            "default": "aggregate_item_fairness_review",
            "title": "Authorized Purpose",
            "type": "string"
          },
          "classification": {
            "enum": ["non_sensitive", "quasi_identifier", "sensitive", "special_category"],
            "title": "Classification",
            "type": "string"
          },
          "cohort_id": {
            "pattern": "^cohort:[a-f0-9]{64}$",
            "title": "Cohort Id",
            "type": "string"
          },
          "consent_evidence_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Evidence Sha256"
          },
          "dimension_id": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Dimension Id",
            "type": "string"
          },
          "direct_value_stored": {
            "const": false,
            "default": false,
            "title": "Direct Value Stored",
            "type": "boolean"
          },
          "display_label_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Display Label Revision Sha256",
            "type": "string"
          },
          "privacy_review": {
            "$ref": "#/components/schemas/DifPrivacyReviewReceipt"
          },
          "ratification_id": {
            "pattern": "^dif-cohort-ratification:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Ratification Id",
            "type": "string"
          },
          "ratification_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Ratification Sha256",
            "type": "string"
          },
          "ratified_at": {
            "format": "date-time",
            "title": "Ratified At",
            "type": "string"
          },
          "ratified_by": {
            "format": "uuid",
            "title": "Ratified By",
            "type": "string"
          },
          "valid_until": {
            "format": "date-time",
            "title": "Valid Until",
            "type": "string"
          },
          "value_token_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Value Token Sha256",
            "type": "string"
          }
        },
        "required": [
          "ratification_id",
          "cohort_id",
          "dimension_id",
          "value_token_sha256",
          "classification",
          "display_label_revision_sha256",
          "privacy_review",
          "ratified_by",
          "ratified_at",
          "valid_until",
          "ratification_sha256"
        ],
        "title": "DifCohortRatification",
        "type": "object"
      },
      "DifDimensionPolicy": {
        "additionalProperties": false,
        "properties": {
          "classification": {
            "enum": ["non_sensitive", "quasi_identifier", "sensitive", "special_category"],
            "title": "Classification",
            "type": "string"
          },
          "consent_required": {
            "title": "Consent Required",
            "type": "boolean"
          },
          "dimension_id": {
            "enum": ["locale_family", "language_support", "region", "consented_demographic"],
            "title": "Dimension Id",
            "type": "string"
          },
          "maximum_invalid_rate": {
            "exclusiveMaximum": 1.0,
            "minimum": 0.0,
            "title": "Maximum Invalid Rate",
            "type": "number"
          },
          "maximum_missing_rate": {
            "exclusiveMaximum": 1.0,
            "minimum": 0.0,
            "title": "Maximum Missing Rate",
            "type": "number"
          },
          "maximum_weight_ratio": {
            "minimum": 1.0,
            "title": "Maximum Weight Ratio",
            "type": "number"
          },
          "minimum_outcomes_per_category_per_group": {
            "minimum": 5.0,
            "title": "Minimum Outcomes Per Category Per Group",
            "type": "integer"
          },
          "minimum_source_n_per_group": {
            "minimum": 30.0,
            "title": "Minimum Source N Per Group",
            "type": "integer"
          },
          "minimum_valid_n_per_group": {
            "minimum": 30.0,
            "title": "Minimum Valid N Per Group",
            "type": "integer"
          }
        },
        "required": [
          "dimension_id",
          "classification",
          "consent_required",
          "minimum_source_n_per_group",
          "minimum_valid_n_per_group",
          "minimum_outcomes_per_category_per_group",
          "maximum_missing_rate",
          "maximum_invalid_rate",
          "maximum_weight_ratio"
        ],
        "title": "DifDimensionPolicy",
        "type": "object"
      },
      "DifEffectEstimate": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "anyOf": [
              {
                "maximum": 0.95,
                "minimum": 0.95,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence Level"
          },
          "lower": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lower"
          },
          "method": {
            "anyOf": [
              {
                "const": "wald_normal",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Method"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "standard_error": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Error"
          },
          "status": {
            "enum": ["estimated", "suppressed", "not_applicable", "error"],
            "title": "Status",
            "type": "string"
          },
          "upper": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upper"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["status", "value", "lower", "upper", "method"],
        "title": "DifEffectEstimate",
        "type": "object"
      },
      "DifItemResponseEvidence": {
        "additionalProperties": false,
        "properties": {
          "item": {
            "$ref": "#/components/schemas/DifItemRevision"
          },
          "responses": {
            "items": {
              "$ref": "#/components/schemas/DifResponseRevision"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Responses",
            "type": "array"
          }
        },
        "required": ["item", "responses"],
        "title": "DifItemResponseEvidence",
        "type": "object"
      },
      "DifItemRevision": {
        "additionalProperties": false,
        "properties": {
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "item_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "scoring_model": {
            "enum": ["binary", "polytomous", "constructed_response"],
            "title": "Scoring Model",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "revision",
          "revision_sha256",
          "context_revision_sha256",
          "scoring_model"
        ],
        "title": "DifItemRevision",
        "type": "object"
      },
      "DifModelFit": {
        "additionalProperties": false,
        "properties": {
          "condition_proxy": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Condition Proxy"
          },
          "deviance": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deviance"
          },
          "final_change": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Final Change"
          },
          "iterations": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iterations"
          },
          "log_likelihood": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Log Likelihood"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "status": {
            "enum": ["converged", "failed", "not_run"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "log_likelihood"],
        "title": "DifModelFit",
        "type": "object"
      },
      "DifPrivacyReviewReceipt": {
        "additionalProperties": false,
        "properties": {
          "direct_identifiers_allowed": {
            "const": false,
            "default": false,
            "title": "Direct Identifiers Allowed",
            "type": "boolean"
          },
          "disclosure_review_required": {
            "const": true,
            "default": true,
            "title": "Disclosure Review Required",
            "type": "boolean"
          },
          "individual_inference_supported": {
            "const": false,
            "default": false,
            "title": "Individual Inference Supported",
            "type": "boolean"
          },
          "minimum_subgroup_n": {
            "minimum": 30.0,
            "title": "Minimum Subgroup N",
            "type": "integer"
          },
          "outcome": {
            "const": "approved_with_controls",
            "default": "approved_with_controls",
            "title": "Outcome",
            "type": "string"
          },
          "policy_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Revision Sha256",
            "type": "string"
          },
          "purpose": {
            "const": "aggregate_item_fairness_review",
            "default": "aggregate_item_fairness_review",
            "title": "Purpose",
            "type": "string"
          },
          "raw_demographics_allowed": {
            "const": false,
            "default": false,
            "title": "Raw Demographics Allowed",
            "type": "boolean"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^psychometric-privacy-review:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Review Id",
            "type": "string"
          },
          "review_version": {
            "minimum": 1.0,
            "title": "Review Version",
            "type": "integer"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_by": {
            "format": "uuid",
            "title": "Reviewed By",
            "type": "string"
          },
          "valid_until": {
            "format": "date-time",
            "title": "Valid Until",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "review_version",
          "policy_revision_sha256",
          "minimum_subgroup_n",
          "reviewed_by",
          "reviewed_at",
          "valid_until",
          "receipt_sha256"
        ],
        "title": "DifPrivacyReviewReceipt",
        "type": "object"
      },
      "DifResponseRevision": {
        "additionalProperties": false,
        "properties": {
          "administration_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Administration Revision Sha256",
            "type": "string"
          },
          "cohort_id": {
            "pattern": "^cohort:[a-f0-9]{64}$",
            "title": "Cohort Id",
            "type": "string"
          },
          "exclusion_reasons": {
            "default": [],
            "items": {
              "enum": [
                "missing_response",
                "invalid_response",
                "duplicate_attempt",
                "item_revision_mismatch",
                "outside_window",
                "consent_unavailable",
                "quality_rule"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "title": "Exclusion Reasons",
            "type": "array"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "learner_token_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Token Sha256",
            "type": "string"
          },
          "matching_score_excludes_item": {
            "const": true,
            "default": true,
            "title": "Matching Score Excludes Item",
            "type": "boolean"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Revision Sha256",
            "type": "string"
          },
          "response_state": {
            "enum": ["valid", "missing", "invalid", "excluded"],
            "title": "Response State",
            "type": "string"
          },
          "rest_score": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rest Score"
          },
          "score": {
            "anyOf": [
              {
                "enum": [0, 1],
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "weight": {
            "exclusiveMinimum": 0.0,
            "maximum": 20.0,
            "title": "Weight",
            "type": "number"
          }
        },
        "required": [
          "response_revision_sha256",
          "learner_token_sha256",
          "item_revision_sha256",
          "cohort_id",
          "administration_revision_sha256",
          "occurred_at",
          "response_state",
          "score",
          "weight"
        ],
        "title": "DifResponseRevision",
        "type": "object"
      },
      "DifReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "no_action",
              "collect_more_data",
              "content_review",
              "recalibrate",
              "revise",
              "restrict",
              "retire"
            ],
            "title": "Action",
            "type": "string"
          },
          "action_applied": {
            "const": false,
            "default": false,
            "title": "Action Applied",
            "type": "boolean"
          },
          "approvals": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "$ref": "#/components/schemas/DifReviewerApproval"
              },
              {
                "$ref": "#/components/schemas/DifReviewerApproval"
              }
            ],
            "title": "Approvals",
            "type": "array"
          },
          "decision_id": {
            "pattern": "^dif-review-decision-[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "establishes_bias_cause": {
            "const": false,
            "default": false,
            "title": "Establishes Bias Cause",
            "type": "boolean"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "individual_inference_supported": {
            "const": false,
            "default": false,
            "title": "Individual Inference Supported",
            "type": "boolean"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requires_separate_operational_change": {
            "const": true,
            "default": true,
            "title": "Requires Separate Operational Change",
            "type": "boolean"
          },
          "result_id": {
            "title": "Result Id",
            "type": "string"
          },
          "result_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Result Sha256",
            "type": "string"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "submitted_by": {
            "format": "uuid",
            "title": "Submitted By",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "tenant_id",
          "run_id",
          "result_id",
          "result_sha256",
          "action",
          "approvals",
          "submitted_by",
          "submitted_at",
          "reason",
          "idempotency_key",
          "request_sha256",
          "decision_sha256"
        ],
        "title": "DifReviewDecision",
        "type": "object"
      },
      "DifReviewDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "no_action",
              "collect_more_data",
              "content_review",
              "recalibrate",
              "revise",
              "restrict",
              "retire"
            ],
            "title": "Action",
            "type": "string"
          },
          "approvals": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "$ref": "#/components/schemas/DifReviewerApproval"
              },
              {
                "$ref": "#/components/schemas/DifReviewerApproval"
              }
            ],
            "title": "Approvals",
            "type": "array"
          },
          "establishes_bias_cause": {
            "const": false,
            "default": false,
            "title": "Establishes Bias Cause",
            "type": "boolean"
          },
          "expected_result_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Result Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 180,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "individual_inference_supported": {
            "const": false,
            "default": false,
            "title": "Individual Inference Supported",
            "type": "boolean"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.12.0",
            "default": "5.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_result_sha256", "action", "approvals", "reason"],
        "title": "DifReviewDecisionRequest",
        "type": "object"
      },
      "DifReviewerApproval": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "enum": ["psychometrician", "fairness_reviewer"],
            "title": "Authority",
            "type": "string"
          },
          "credential_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Credential Revision Sha256",
            "type": "string"
          },
          "establishes_bias_cause": {
            "const": false,
            "default": false,
            "title": "Establishes Bias Cause",
            "type": "boolean"
          },
          "individual_inference_supported": {
            "const": false,
            "default": false,
            "title": "Individual Inference Supported",
            "type": "boolean"
          },
          "rationale_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rationale Sha256",
            "type": "string"
          },
          "recommendation": {
            "enum": [
              "no_action",
              "collect_more_data",
              "content_review",
              "recalibrate",
              "revise",
              "restrict",
              "retire"
            ],
            "title": "Recommendation",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          }
        },
        "required": [
          "authority",
          "reviewer_id",
          "credential_revision_sha256",
          "reviewed_at",
          "rationale_sha256",
          "recommendation"
        ],
        "title": "DifReviewerApproval",
        "type": "object"
      },
      "DifSafeCohortSample": {
        "additionalProperties": false,
        "properties": {
          "invalid_rate": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invalid Rate"
          },
          "maximum_weight": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Weight"
          },
          "minimum_weight": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Weight"
          },
          "missing_rate": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Missing Rate"
          },
          "role": {
            "enum": ["reference", "focal"],
            "title": "Role",
            "type": "string"
          },
          "source_n": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source N"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "suppression_floor": {
            "minimum": 30.0,
            "title": "Suppression Floor",
            "type": "integer"
          },
          "valid_n": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid N"
          }
        },
        "required": ["role", "suppressed", "suppression_floor"],
        "title": "DifSafeCohortSample",
        "type": "object"
      },
      "DifSignificance": {
        "additionalProperties": false,
        "properties": {
          "adjustment": {
            "anyOf": [
              {
                "const": "holm",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Adjustment"
          },
          "alpha": {
            "anyOf": [
              {
                "exclusiveMaximum": 0.5,
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alpha"
          },
          "hypotheses_in_family": {
            "anyOf": [
              {
                "minimum": 2.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hypotheses In Family"
          },
          "nonuniform_adjusted_p_value": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nonuniform Adjusted P Value"
          },
          "nonuniform_p_value": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nonuniform P Value"
          },
          "nonuniform_z": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nonuniform Z"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "status": {
            "enum": ["reported", "suppressed", "not_applicable", "error"],
            "title": "Status",
            "type": "string"
          },
          "uniform_adjusted_p_value": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Uniform Adjusted P Value"
          },
          "uniform_p_value": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Uniform P Value"
          },
          "uniform_z": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Uniform Z"
          }
        },
        "required": ["status", "uniform_z", "nonuniform_z", "adjustment"],
        "title": "DifSignificance",
        "type": "object"
      },
      "DifToolReceipt": {
        "additionalProperties": false,
        "properties": {
          "algorithm_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Algorithm Revision Sha256",
            "type": "string"
          },
          "deterministic": {
            "const": true,
            "default": true,
            "title": "Deterministic",
            "type": "boolean"
          },
          "random_seed": {
            "title": "Random Seed",
            "type": "null"
          },
          "runtime": {
            "const": "python-stdlib",
            "default": "python-stdlib",
            "title": "Runtime",
            "type": "string"
          },
          "tool_id": {
            "const": "metis.dif.weighted-logistic",
            "default": "metis.dif.weighted-logistic",
            "title": "Tool Id",
            "type": "string"
          },
          "tool_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Tool Version",
            "type": "string"
          }
        },
        "required": ["algorithm_revision_sha256"],
        "title": "DifToolReceipt",
        "type": "object"
      },
      "DimensionDecision": {
        "additionalProperties": false,
        "description": "One dimension's verdict, citing only that dimension's criteria.",
        "properties": {
          "criteria_met": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Criteria Met",
            "type": "array"
          },
          "criteria_unmet": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Criteria Unmet",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "note": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Note",
            "type": "string"
          },
          "verdict": {
            "enum": ["approve", "changes_requested", "reject"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["dimension", "verdict", "note"],
        "title": "DimensionDecision",
        "type": "object"
      },
      "DimensionRequirement": {
        "additionalProperties": false,
        "properties": {
          "after": {
            "default": [],
            "items": {
              "enum": [
                "sme_correctness",
                "pedagogy_alignment",
                "accessibility",
                "fairness_cultural",
                "legal_rights",
                "publisher_target"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "After",
            "type": "array"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/ReviewCriterion"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "distinct_from": {
            "default": [],
            "items": {
              "enum": [
                "sme_correctness",
                "pedagogy_alignment",
                "accessibility",
                "fairness_cultural",
                "legal_rights",
                "publisher_target"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Distinct From",
            "type": "array"
          },
          "expiry_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Expiry Days",
            "type": "integer"
          },
          "gate_floors": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GateFloor"
            },
            "maxItems": 10,
            "title": "Gate Floors",
            "type": "array"
          },
          "locale_match_required": {
            "title": "Locale Match Required",
            "type": "boolean"
          },
          "quorum": {
            "maximum": 4.0,
            "minimum": 1.0,
            "title": "Quorum",
            "type": "integer"
          },
          "required_qualifications": {
            "default": [],
            "items": {
              "pattern": "^qual:[a-z0-9._-]{2,80}$",
              "type": "string"
            },
            "maxItems": 10,
            "title": "Required Qualifications",
            "type": "array"
          },
          "roles": {
            "items": {
              "enum": [
                "subject_expert",
                "instructional_designer",
                "accessibility_specialist",
                "cultural_reviewer",
                "rights_counsel",
                "publisher_editor",
                "institution_reviewer"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 1,
            "title": "Roles",
            "type": "array"
          }
        },
        "required": [
          "dimension",
          "criteria",
          "roles",
          "locale_match_required",
          "quorum",
          "expiry_days"
        ],
        "title": "DimensionRequirement",
        "type": "object"
      },
      "DimensionSignoff": {
        "additionalProperties": false,
        "description": "Bound to one dimension, one revision, the evidence, the gates and the template version.",
        "properties": {
          "content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Content Id",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/DimensionDecision"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "evidence_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Evidence Sha256S",
            "type": "array"
          },
          "gate_results_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Gate Results Sha256",
            "type": "string"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "7.6.0",
            "default": "7.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signed_at": {
            "format": "date-time",
            "title": "Signed At",
            "type": "string"
          },
          "signoff_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signoff Id",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          }
        },
        "required": [
          "signoff_id",
          "dimension",
          "reviewer_digest",
          "content_id",
          "revision_sha256",
          "template_id",
          "template_version",
          "gate_results_sha256",
          "decision",
          "signed_at"
        ],
        "title": "DimensionSignoff",
        "type": "object"
      },
      "DimensionState": {
        "additionalProperties": false,
        "description": "One of the four gates, and what it concluded.",
        "properties": {
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "dimension": {
            "enum": ["support", "citation_sufficiency", "faithfulness", "conflict"],
            "title": "Dimension",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["dimension", "state"],
        "title": "DimensionState",
        "type": "object"
      },
      "DimensionStatus": {
        "additionalProperties": false,
        "properties": {
          "additional_roles_unmet": {
            "default": [],
            "items": {
              "enum": [
                "subject_expert",
                "instructional_designer",
                "accessibility_specialist",
                "cultural_reviewer",
                "rights_counsel",
                "publisher_editor",
                "institution_reviewer"
              ],
              "type": "string"
            },
            "title": "Additional Roles Unmet",
            "type": "array"
          },
          "counted_signoff_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Counted Signoff Ids",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "distinct_signers": {
            "minimum": 0.0,
            "title": "Distinct Signers",
            "type": "integer"
          },
          "expired_signoff_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Expired Signoff Ids",
            "type": "array"
          },
          "floors_unmet": {
            "default": [],
            "items": {
              "enum": [
                "answer_key_verification",
                "grounding",
                "readability",
                "accessibility_completeness",
                "dif_analysis",
                "rights_clearance",
                "publication_render"
              ],
              "type": "string"
            },
            "title": "Floors Unmet",
            "type": "array"
          },
          "quorum": {
            "minimum": 1.0,
            "title": "Quorum",
            "type": "integer"
          },
          "state": {
            "enum": ["approved", "pending", "blocked", "waiting_on_sequence"],
            "title": "State",
            "type": "string"
          },
          "waiting_on": {
            "default": [],
            "items": {
              "enum": [
                "sme_correctness",
                "pedagogy_alignment",
                "accessibility",
                "fairness_cultural",
                "legal_rights",
                "publisher_target"
              ],
              "type": "string"
            },
            "title": "Waiting On",
            "type": "array"
          }
        },
        "required": ["dimension", "state", "distinct_signers", "quorum"],
        "title": "DimensionStatus",
        "type": "object"
      },
      "DimensionTally": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": [
              "objective_coverage",
              "difficulty_mastery_band",
              "exposure_compromise",
              "locale",
              "pnp_support",
              "delivery",
              "integrity_state",
              "revision_prerequisites",
              "item_state"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "excluded": {
            "minimum": 0.0,
            "title": "Excluded",
            "type": "integer"
          }
        },
        "required": ["dimension", "excluded"],
        "title": "DimensionTally",
        "type": "object"
      },
      "DimensionVersion": {
        "additionalProperties": false,
        "description": "One dimension of a candidate, at one exact version.",
        "properties": {
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Digest"
          },
          "dimension": {
            "enum": [
              "content",
              "build",
              "standards",
              "locale",
              "accessibility",
              "gates",
              "reviews",
              "rights",
              "integration"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "readability": {
            "default": "read",
            "enum": ["read", "unreadable"],
            "title": "Readability",
            "type": "string"
          },
          "version": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": ["dimension", "observed_at"],
        "title": "DimensionVersion",
        "type": "object"
      },
      "DirectionProbe": {
        "additionalProperties": false,
        "properties": {
          "direction": {
            "enum": ["higher", "lower", "superset", "subset", "on", "fixed"],
            "title": "Direction",
            "type": "string"
          },
          "equal_accepted": {
            "title": "Equal Accepted",
            "type": "boolean"
          },
          "key": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "looser_refused": {
            "title": "Looser Refused",
            "type": "boolean"
          },
          "tighter_accepted": {
            "title": "Tighter Accepted",
            "type": "boolean"
          }
        },
        "required": ["key", "direction", "tighter_accepted", "looser_refused", "equal_accepted"],
        "title": "DirectionProbe",
        "type": "object"
      },
      "DisciplineChannelExportResponse": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "enum": ["qti", "course", "standards"],
            "title": "Channel",
            "type": "string"
          },
          "field_results": {
            "items": {
              "$ref": "#/components/schemas/DisciplineExportFieldResult"
            },
            "minItems": 1,
            "title": "Field Results",
            "type": "array"
          },
          "loss_count": {
            "minimum": 0.0,
            "title": "Loss Count",
            "type": "integer"
          },
          "media_type": {
            "title": "Media Type",
            "type": "string"
          },
          "payload_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Payload Sha256",
            "type": "string"
          },
          "round_trip_plan_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Round Trip Plan Sha256"
          },
          "round_trip_verified": {
            "title": "Round Trip Verified",
            "type": "boolean"
          },
          "serialized_payload": {
            "title": "Serialized Payload",
            "type": "string"
          },
          "standard_profile": {
            "title": "Standard Profile",
            "type": "string"
          },
          "survived_field_count": {
            "minimum": 0.0,
            "title": "Survived Field Count",
            "type": "integer"
          }
        },
        "required": [
          "channel",
          "standard_profile",
          "media_type",
          "serialized_payload",
          "payload_sha256",
          "field_results",
          "survived_field_count",
          "loss_count",
          "round_trip_verified"
        ],
        "title": "DisciplineChannelExportResponse",
        "type": "object"
      },
      "DisciplineChannelMapping": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "enum": ["qti", "course", "standards"],
            "title": "Channel",
            "type": "string"
          },
          "disposition": {
            "enum": ["native", "extension", "lossy", "incompatible"],
            "title": "Disposition",
            "type": "string"
          },
          "extension_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extension Uri"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "target_path": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Target Path",
            "type": "string"
          }
        },
        "required": ["channel", "disposition", "target_path", "rationale"],
        "title": "DisciplineChannelMapping",
        "type": "object"
      },
      "DisciplineExportFieldResult": {
        "additionalProperties": false,
        "properties": {
          "applied_disposition": {
            "enum": ["native", "extension", "lossy", "incompatible"],
            "title": "Applied Disposition",
            "type": "string"
          },
          "declared_disposition": {
            "enum": ["native", "extension", "lossy", "incompatible"],
            "title": "Declared Disposition",
            "type": "string"
          },
          "field_path": {
            "title": "Field Path",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "survived": {
            "title": "Survived",
            "type": "boolean"
          },
          "target_path": {
            "title": "Target Path",
            "type": "string"
          }
        },
        "required": [
          "field_path",
          "declared_disposition",
          "applied_disposition",
          "target_path",
          "survived",
          "rationale"
        ],
        "title": "DisciplineExportFieldResult",
        "type": "object"
      },
      "DisciplineFieldExportMapping": {
        "additionalProperties": false,
        "properties": {
          "field_path": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "mappings": {
            "items": {
              "$ref": "#/components/schemas/DisciplineChannelMapping"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Mappings",
            "type": "array"
          }
        },
        "required": ["field_path", "mappings"],
        "title": "DisciplineFieldExportMapping",
        "type": "object"
      },
      "DisciplineGateResult": {
        "additionalProperties": false,
        "properties": {
          "gate_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Gate Id",
            "type": "string"
          },
          "reviewer_roles": {
            "items": {
              "enum": [
                "discipline_reviewer",
                "accessibility_reviewer",
                "safety_reviewer",
                "ethics_reviewer",
                "assessment_reviewer",
                "technical_reviewer"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Reviewer Roles",
            "type": "array"
          },
          "status": {
            "enum": ["ready", "review_required"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["gate_id", "status", "reviewer_roles"],
        "title": "DisciplineGateResult",
        "type": "object"
      },
      "DisciplinePlanExportRequest": {
        "additionalProperties": false,
        "properties": {
          "channels": {
            "items": {
              "enum": ["qti", "course", "standards"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Channels",
            "type": "array"
          },
          "plan": {
            "$ref": "#/components/schemas/DisciplinePlanRequest"
          },
          "preserve_extensions": {
            "default": true,
            "title": "Preserve Extensions",
            "type": "boolean"
          }
        },
        "required": ["plan", "channels"],
        "title": "DisciplinePlanExportRequest",
        "type": "object"
      },
      "DisciplinePlanExportResponse": {
        "additionalProperties": false,
        "properties": {
          "exports": {
            "items": {
              "$ref": "#/components/schemas/DisciplineChannelExportResponse"
            },
            "minItems": 1,
            "title": "Exports",
            "type": "array"
          },
          "validation": {
            "$ref": "#/components/schemas/DisciplinePlanValidationResponse"
          }
        },
        "required": ["validation", "exports"],
        "title": "DisciplinePlanExportResponse",
        "type": "object"
      },
      "DisciplinePlanRequest": {
        "additionalProperties": false,
        "properties": {
          "artifact": {
            "discriminator": {
              "mapping": {
                "computing_artifact": "#/components/schemas/ComputingArtifact",
                "data_analysis": "#/components/schemas/DataAnalysisArtifact",
                "lab_field_evidence": "#/components/schemas/LabFieldEvidenceArtifact",
                "language_performance": "#/components/schemas/LanguagePerformanceArtifact",
                "proof_solution": "#/components/schemas/ProofSolutionArtifact",
                "source_interpretation": "#/components/schemas/SourceInterpretationArtifact"
              },
              "propertyName": "artifact_kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProofSolutionArtifact"
              },
              {
                "$ref": "#/components/schemas/LabFieldEvidenceArtifact"
              },
              {
                "$ref": "#/components/schemas/DataAnalysisArtifact"
              },
              {
                "$ref": "#/components/schemas/SourceInterpretationArtifact"
              },
              {
                "$ref": "#/components/schemas/LanguagePerformanceArtifact"
              },
              {
                "$ref": "#/components/schemas/ComputingArtifact"
              }
            ],
            "title": "Artifact"
          },
          "plan_id": {
            "pattern": "^discipline-plan-[a-z0-9-]+$",
            "title": "Plan Id",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          },
          "template_id": {
            "pattern": "^discipline-template-[a-z0-9-]+$",
            "title": "Template Id",
            "type": "string"
          },
          "template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Template Sha256",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "plan_id",
          "template_id",
          "template_version",
          "template_sha256",
          "subject_id",
          "title",
          "artifact"
        ],
        "title": "DisciplinePlanRequest",
        "type": "object"
      },
      "DisciplinePlanValidationResponse": {
        "additionalProperties": false,
        "properties": {
          "artifact_kind": {
            "enum": [
              "proof_solution",
              "lab_field_evidence",
              "data_analysis",
              "source_interpretation",
              "language_performance",
              "computing_artifact"
            ],
            "title": "Artifact Kind",
            "type": "string"
          },
          "gate_results": {
            "items": {
              "$ref": "#/components/schemas/DisciplineGateResult"
            },
            "minItems": 1,
            "title": "Gate Results",
            "type": "array"
          },
          "inherited_code_floor": {
            "title": "Inherited Code Floor",
            "type": "string"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "reviewer_count_required": {
            "minimum": 1.0,
            "title": "Reviewer Count Required",
            "type": "integer"
          },
          "template_id": {
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "title": "Template Version",
            "type": "string"
          },
          "valid": {
            "const": true,
            "default": true,
            "title": "Valid",
            "type": "boolean"
          }
        },
        "required": [
          "template_id",
          "template_version",
          "artifact_kind",
          "plan_sha256",
          "inherited_code_floor",
          "gate_results",
          "reviewer_count_required"
        ],
        "title": "DisciplinePlanValidationResponse",
        "type": "object"
      },
      "DisciplineReview": {
        "additionalProperties": false,
        "description": "A security, privacy or fairness review, with its verdict and findings.\n\nA review that raises findings and still clears is unconstructible: clearing\nis what \"no outstanding findings\" means.",
        "properties": {
          "cleared": {
            "title": "Cleared",
            "type": "boolean"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "discipline": {
            "enum": ["security", "privacy", "fairness"],
            "title": "Discipline",
            "type": "string"
          },
          "outstanding_findings": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Outstanding Findings",
            "type": "integer"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_by_role": {
            "enum": ["security_lead", "privacy_officer", "fairness_reviewer"],
            "title": "Reviewed By Role",
            "type": "string"
          }
        },
        "required": [
          "discipline",
          "reviewed_by_role",
          "reviewed_at",
          "cleared",
          "outstanding_findings",
          "detail"
        ],
        "title": "DisciplineReview",
        "type": "object"
      },
      "DisciplineTemplateApplicability": {
        "additionalProperties": false,
        "properties": {
          "artifact_kind": {
            "enum": [
              "proof_solution",
              "lab_field_evidence",
              "data_analysis",
              "source_interpretation",
              "language_performance",
              "computing_artifact"
            ],
            "title": "Artifact Kind",
            "type": "string"
          },
          "depth_tiers": {
            "items": {
              "enum": ["introductory", "intermediate", "advanced"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Depth Tiers",
            "type": "array"
          },
          "subject_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Subject Ids",
            "type": "array"
          }
        },
        "required": ["subject_ids", "artifact_kind", "depth_tiers"],
        "title": "DisciplineTemplateApplicability",
        "type": "object"
      },
      "DisciplineTemplateCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "catalog_id": {
            "const": "metis-discipline-planning-templates",
            "title": "Catalog Id",
            "type": "string"
          },
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "published_at": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Published At",
            "type": "string"
          },
          "standards_profiles": {
            "items": {
              "type": "string"
            },
            "minItems": 3,
            "title": "Standards Profiles",
            "type": "array"
          },
          "templates": {
            "items": {
              "$ref": "#/components/schemas/DisciplineTemplateDefinition"
            },
            "minItems": 7,
            "title": "Templates",
            "type": "array"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "catalog_id",
          "version",
          "published_at",
          "standards_profiles",
          "templates",
          "catalog_sha256"
        ],
        "title": "DisciplineTemplateCatalogResponse",
        "type": "object"
      },
      "DisciplineTemplateDefinition": {
        "additionalProperties": false,
        "properties": {
          "abstract": {
            "default": false,
            "title": "Abstract",
            "type": "boolean"
          },
          "applicability": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisciplineTemplateApplicability"
              },
              {
                "type": "null"
              }
            ]
          },
          "code_floor_ref": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Code Floor Ref",
            "type": "string"
          },
          "example_artifact": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "computing_artifact": "#/components/schemas/ComputingArtifact",
                    "data_analysis": "#/components/schemas/DataAnalysisArtifact",
                    "lab_field_evidence": "#/components/schemas/LabFieldEvidenceArtifact",
                    "language_performance": "#/components/schemas/LanguagePerformanceArtifact",
                    "proof_solution": "#/components/schemas/ProofSolutionArtifact",
                    "source_interpretation": "#/components/schemas/SourceInterpretationArtifact"
                  },
                  "propertyName": "artifact_kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ProofSolutionArtifact"
                  },
                  {
                    "$ref": "#/components/schemas/LabFieldEvidenceArtifact"
                  },
                  {
                    "$ref": "#/components/schemas/DataAnalysisArtifact"
                  },
                  {
                    "$ref": "#/components/schemas/SourceInterpretationArtifact"
                  },
                  {
                    "$ref": "#/components/schemas/LanguagePerformanceArtifact"
                  },
                  {
                    "$ref": "#/components/schemas/ComputingArtifact"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Example Artifact"
          },
          "export_mappings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DisciplineFieldExportMapping"
            },
            "title": "Export Mappings",
            "type": "array"
          },
          "inherits_from": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Inherits From"
          },
          "requirements": {
            "$ref": "#/components/schemas/DisciplineVerificationRequirements"
          },
          "summary": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "template_id": {
            "pattern": "^discipline-template-[a-z0-9-]+$",
            "title": "Template Id",
            "type": "string"
          },
          "template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Template Sha256",
            "type": "string"
          },
          "title": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "template_id",
          "version",
          "title",
          "summary",
          "code_floor_ref",
          "requirements",
          "template_sha256"
        ],
        "title": "DisciplineTemplateDefinition",
        "type": "object"
      },
      "DisciplineVerificationRequirements": {
        "additionalProperties": false,
        "properties": {
          "accessibility_requirements": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Accessibility Requirements",
            "type": "array"
          },
          "minimum_reviewers": {
            "maximum": 8.0,
            "minimum": 1.0,
            "title": "Minimum Reviewers",
            "type": "integer"
          },
          "reviewer_roles": {
            "items": {
              "enum": [
                "discipline_reviewer",
                "accessibility_reviewer",
                "safety_reviewer",
                "ethics_reviewer",
                "assessment_reviewer",
                "technical_reviewer"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Reviewer Roles",
            "type": "array"
          },
          "standards_export_requirements": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Standards Export Requirements",
            "type": "array"
          },
          "verification_gates": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Verification Gates",
            "type": "array"
          }
        },
        "required": [
          "minimum_reviewers",
          "reviewer_roles",
          "verification_gates",
          "accessibility_requirements",
          "standards_export_requirements"
        ],
        "title": "DisciplineVerificationRequirements",
        "type": "object"
      },
      "DisclosureProbe": {
        "additionalProperties": false,
        "description": "One attempt to publish something the disclosure rules withhold.",
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "disclosure": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Disclosure",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          }
        },
        "required": ["probe_id", "disclosure", "refused", "detail"],
        "title": "DisclosureProbe",
        "type": "object"
      },
      "DispatchDecision": {
        "additionalProperties": false,
        "description": "Whether this plan may be dispatched, and the plan it decided about.",
        "properties": {
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "dispatched": {
            "title": "Dispatched",
            "type": "boolean"
          },
          "plan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AgentPlan"
              },
              {
                "type": "null"
              }
            ]
          },
          "plan_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plan Sha256"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DispatchRefusal"
            },
            "maxItems": 60,
            "title": "Refusals",
            "type": "array"
          },
          "schema_version": {
            "const": "6.13.0",
            "default": "6.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "decided_at",
          "template_id",
          "template_version",
          "plan",
          "dispatched"
        ],
        "title": "DispatchDecision",
        "type": "object"
      },
      "DispatchProbe": {
        "additionalProperties": false,
        "description": "One attempt to give an agent an authority its plan did not grant.",
        "properties": {
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "mechanism": {
            "enum": ["absent_field", "absent_verb", "matrix_cell", "pre_dispatch_check"],
            "title": "Mechanism",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          }
        },
        "required": ["probe_id", "attempted", "refused", "mechanism", "detail"],
        "title": "DispatchProbe",
        "type": "object"
      },
      "DispatchProjection": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/DispatchDecision"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["decision_id", "tenant_id", "created_at", "record_sha256", "decision"],
        "title": "DispatchProjection",
        "type": "object"
      },
      "DispatchRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "unknown_template",
              "template_version_mismatch",
              "missing_required_input",
              "input_revision_not_pinned",
              "grant_expired",
              "grant_outside_tenant",
              "grant_outside_course",
              "grant_exceeds_template_scope",
              "learner_context_not_permitted",
              "budget_exceeds_plan_ceiling",
              "approval_point_missing",
              "approval_role_collides_with_author",
              "destination_not_permitted",
              "plan_supplied_directly"
            ],
            "title": "Reason",
            "type": "string"
          },
          "subject": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["reason", "subject", "detail"],
        "title": "DispatchRefusal",
        "type": "object"
      },
      "DispositionCell": {
        "additionalProperties": false,
        "properties": {
          "conflict_type": {
            "title": "Conflict Type",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "disposition": {
            "enum": ["permitted", "manageable_with_mitigation", "disqualifying"],
            "title": "Disposition",
            "type": "string"
          }
        },
        "required": ["dimension", "conflict_type", "disposition"],
        "title": "DispositionCell",
        "type": "object"
      },
      "DispositionRequest": {
        "additionalProperties": false,
        "properties": {
          "overlay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConflictPolicyOverlay"
              },
              {
                "type": "null"
              }
            ]
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          }
        },
        "required": ["risk"],
        "title": "DispositionRequest",
        "type": "object"
      },
      "DispositionResponse": {
        "additionalProperties": false,
        "properties": {
          "cells": {
            "items": {
              "$ref": "#/components/schemas/DispositionCell"
            },
            "title": "Cells",
            "type": "array"
          },
          "institution_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Id"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          }
        },
        "required": ["risk", "cells"],
        "title": "DispositionResponse",
        "type": "object"
      },
      "DistractorAnalysisRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Catalog Sha256",
            "type": "string"
          },
          "expected_selected_response_revision": {
            "minimum": 1.0,
            "title": "Expected Selected Response Revision",
            "type": "integer"
          },
          "expected_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Selected Response Revision Sha256",
            "type": "string"
          },
          "expected_statistics_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Statistics Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "model_suggestions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DistractorModelSuggestionSubmission"
            },
            "maxItems": 100,
            "title": "Model Suggestions",
            "type": "array"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_selected_response_revision",
          "expected_selected_response_revision_sha256",
          "expected_catalog_sha256",
          "locale",
          "reason"
        ],
        "title": "DistractorAnalysisRequest",
        "type": "object"
      },
      "DistractorAnalysisResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "analysis_id": {
            "pattern": "^distractor-analysis-[a-f0-9]{40}$",
            "title": "Analysis Id",
            "type": "string"
          },
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "lint": {
            "$ref": "#/components/schemas/DistractorLintReport"
          },
          "plausibility": {
            "items": {
              "$ref": "#/components/schemas/DistractorPlausibilityAssessment"
            },
            "title": "Plausibility",
            "type": "array"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.11.0",
            "default": "4.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/DistractorItemSnapshot"
          },
          "statistics_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Statistics Revision Sha256"
          },
          "suggestions": {
            "items": {
              "$ref": "#/components/schemas/DistractorMappingSuggestion"
            },
            "title": "Suggestions",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "analysis_id",
          "tenant_id",
          "revision",
          "source",
          "catalog_sha256",
          "statistics_revision_sha256",
          "lint",
          "plausibility",
          "suggestions",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "DistractorAnalysisResponse",
        "type": "object"
      },
      "DistractorDisciplineProfile": {
        "additionalProperties": false,
        "properties": {
          "discipline_id": {
            "enum": ["general", "mathematics", "science", "language-arts"],
            "title": "Discipline Id",
            "type": "string"
          },
          "profile_id": {
            "pattern": "^metis\\.distractor-discipline\\.[a-z-]+$",
            "title": "Profile Id",
            "type": "string"
          },
          "profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Profile Sha256",
            "type": "string"
          },
          "profile_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Profile Version",
            "type": "string"
          },
          "supported_kinds": {
            "items": {
              "enum": [
                "assessment-kind:single-choice",
                "assessment-kind:multiple-choice",
                "assessment-kind:ordering",
                "assessment-kind:matching",
                "assessment-kind:hotspot"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Supported Kinds",
            "type": "array"
          },
          "supported_locales": {
            "items": {
              "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-[0-9]{3})?$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Supported Locales",
            "type": "array"
          }
        },
        "required": [
          "profile_id",
          "profile_sha256",
          "discipline_id",
          "supported_locales",
          "supported_kinds"
        ],
        "title": "DistractorDisciplineProfile",
        "type": "object"
      },
      "DistractorHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "analyses": {
            "items": {
              "$ref": "#/components/schemas/DistractorAnalysisResponse"
            },
            "title": "Analyses",
            "type": "array"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/DistractorReviewResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "schema_version": {
            "const": "4.11.0",
            "default": "4.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "statistics": {
            "items": {
              "$ref": "#/components/schemas/DistractorStatisticsResponse"
            },
            "title": "Statistics",
            "type": "array"
          }
        },
        "required": ["draft_id", "analyses", "reviews", "statistics"],
        "title": "DistractorHistoryResponse",
        "type": "object"
      },
      "DistractorHumanDecision": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["accept", "edit", "reject"],
            "title": "Decision",
            "type": "string"
          },
          "mapping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistractorMappingProposal"
              },
              {
                "type": "null"
              }
            ]
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "suggestion_id": {
            "pattern": "^distractor-suggestion:[a-f0-9]{40}$",
            "title": "Suggestion Id",
            "type": "string"
          }
        },
        "required": ["suggestion_id", "decision", "rationale"],
        "title": "DistractorHumanDecision",
        "type": "object"
      },
      "DistractorInferenceBoundary": {
        "additionalProperties": false,
        "properties": {
          "individual_learner_inference_allowed": {
            "const": false,
            "default": false,
            "title": "Individual Learner Inference Allowed",
            "type": "boolean"
          },
          "relevance_evaluated_separately_from_plausibility": {
            "const": true,
            "default": true,
            "title": "Relevance Evaluated Separately From Plausibility",
            "type": "boolean"
          },
          "required_additional_evidence": {
            "default": [
              "repeated response patterns",
              "learner explanation",
              "authorized human review"
            ],
            "items": {
              "type": "string"
            },
            "title": "Required Additional Evidence",
            "type": "array"
          },
          "response_alone_establishes_individual_misconception": {
            "const": false,
            "default": false,
            "title": "Response Alone Establishes Individual Misconception",
            "type": "boolean"
          }
        },
        "title": "DistractorInferenceBoundary",
        "type": "object"
      },
      "DistractorItemSnapshot": {
        "additionalProperties": false,
        "properties": {
          "distractor_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 99,
            "minItems": 1,
            "title": "Distractor Option Ids",
            "type": "array"
          },
          "distractor_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Distractor Set Sha256",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "keyed_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 99,
            "minItems": 1,
            "title": "Keyed Option Ids",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/DistractorOptionSnapshot"
            },
            "maxItems": 100,
            "minItems": 3,
            "title": "Options",
            "type": "array"
          },
          "response_type": {
            "enum": ["single", "multiple"],
            "title": "Response Type",
            "type": "string"
          },
          "selected_response_id": {
            "pattern": "^selected-response-[a-f0-9]{40}$",
            "title": "Selected Response Id",
            "type": "string"
          },
          "selected_response_revision": {
            "minimum": 1.0,
            "title": "Selected Response Revision",
            "type": "integer"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "source_draft_revision": {
            "minimum": 1.0,
            "title": "Source Draft Revision",
            "type": "integer"
          },
          "source_draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Draft Revision Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "draft_id",
          "selected_response_id",
          "selected_response_revision",
          "selected_response_revision_sha256",
          "source_draft_revision",
          "source_draft_revision_sha256",
          "response_type",
          "locale",
          "stem",
          "options",
          "keyed_option_ids",
          "distractor_option_ids",
          "distractor_set_sha256",
          "source_sha256"
        ],
        "title": "DistractorItemSnapshot",
        "type": "object"
      },
      "DistractorLintFinding": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "option_uniqueness",
              "grammatical_parallelism",
              "semantic_parallelism",
              "length_or_cue_imbalance",
              "implausibility",
              "option_overlap",
              "absolute_wording",
              "correct_answer_leakage"
            ],
            "title": "Category",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^distractor-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Option Ids",
            "type": "array"
          },
          "rule_id": {
            "pattern": "^distractor-rule:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Sha256",
            "type": "string"
          },
          "rule_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Rule Version",
            "type": "string"
          },
          "severity": {
            "enum": ["note", "review", "block"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "category",
          "rule_id",
          "rule_version",
          "rule_sha256",
          "severity",
          "option_ids",
          "statement",
          "evidence",
          "uncertainty"
        ],
        "title": "DistractorLintFinding",
        "type": "object"
      },
      "DistractorLintReport": {
        "additionalProperties": false,
        "properties": {
          "blocking": {
            "title": "Blocking",
            "type": "boolean"
          },
          "evaluated_categories": {
            "items": {
              "enum": [
                "option_uniqueness",
                "grammatical_parallelism",
                "semantic_parallelism",
                "length_or_cue_imbalance",
                "implausibility",
                "option_overlap",
                "absolute_wording",
                "correct_answer_leakage"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Evaluated Categories",
            "type": "array"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/DistractorLintFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "rule_profile_id": {
            "const": "metis.distractor-known-value-rules",
            "default": "metis.distractor-known-value-rules",
            "title": "Rule Profile Id",
            "type": "string"
          },
          "rule_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Profile Sha256",
            "type": "string"
          },
          "rule_profile_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Rule Profile Version",
            "type": "string"
          }
        },
        "required": ["rule_profile_sha256", "evaluated_categories", "findings", "blocking"],
        "title": "DistractorLintReport",
        "type": "object"
      },
      "DistractorMappingProposal": {
        "additionalProperties": false,
        "properties": {
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "misconception_id": {
            "pattern": "^misconception:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Misconception Id",
            "type": "string"
          },
          "misconception_revision": {
            "minimum": 1.0,
            "title": "Misconception Revision",
            "type": "integer"
          },
          "misconception_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Misconception Revision Sha256",
            "type": "string"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "relevance": {
            "enum": ["relevant", "partially_relevant", "uncertain", "not_relevant"],
            "title": "Relevance",
            "type": "string"
          },
          "relevance_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Relevance Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "option_id",
          "misconception_id",
          "misconception_revision",
          "misconception_revision_sha256",
          "relevance",
          "relevance_basis_points",
          "evidence"
        ],
        "title": "DistractorMappingProposal",
        "type": "object"
      },
      "DistractorMappingSuggestion": {
        "additionalProperties": false,
        "properties": {
          "confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Confidence Basis Points",
            "type": "integer"
          },
          "human_review_required": {
            "const": true,
            "default": true,
            "title": "Human Review Required",
            "type": "boolean"
          },
          "proposal": {
            "$ref": "#/components/schemas/DistractorMappingProposal"
          },
          "provenance": {
            "$ref": "#/components/schemas/DistractorSuggestionProvenance"
          },
          "suggestion_id": {
            "pattern": "^distractor-suggestion:[a-f0-9]{40}$",
            "title": "Suggestion Id",
            "type": "string"
          },
          "suggestion_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Suggestion Sha256",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "suggestion_id",
          "proposal",
          "confidence_basis_points",
          "uncertainty",
          "provenance",
          "suggestion_sha256"
        ],
        "title": "DistractorMappingSuggestion",
        "type": "object"
      },
      "DistractorModelSuggestionSubmission": {
        "additionalProperties": false,
        "properties": {
          "confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Confidence Basis Points",
            "type": "integer"
          },
          "proposal": {
            "$ref": "#/components/schemas/DistractorMappingProposal"
          },
          "provenance": {
            "$ref": "#/components/schemas/DistractorSuggestionProvenance"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": ["proposal", "confidence_basis_points", "uncertainty", "provenance"],
        "title": "DistractorModelSuggestionSubmission",
        "type": "object"
      },
      "DistractorOptionSnapshot": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "author_misconception_note": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Author Misconception Note"
          },
          "keyed": {
            "title": "Keyed",
            "type": "boolean"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "option_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Option Sha256",
            "type": "string"
          },
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["option_id", "order", "text", "accessible_text", "keyed", "option_sha256"],
        "title": "DistractorOptionSnapshot",
        "type": "object"
      },
      "DistractorOptionStatistic": {
        "additionalProperties": false,
        "properties": {
          "omitted_count": {
            "default": 0,
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Omitted Count",
            "type": "integer"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "point_biserial_milli": {
            "anyOf": [
              {
                "maximum": 1000.0,
                "minimum": -1000.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Point Biserial Milli"
          },
          "selection_count": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Selection Count",
            "type": "integer"
          },
          "selection_rate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Selection Rate Basis Points",
            "type": "integer"
          }
        },
        "required": ["option_id", "selection_count", "selection_rate_basis_points"],
        "title": "DistractorOptionStatistic",
        "type": "object"
      },
      "DistractorPlausibilityAssessment": {
        "additionalProperties": false,
        "properties": {
          "band": {
            "enum": ["strong", "usable", "weak", "blocked"],
            "title": "Band",
            "type": "string"
          },
          "evidence_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Finding Ids",
            "type": "array"
          },
          "expected_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Expected Basis Points",
            "type": "integer"
          },
          "lower_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Lower Basis Points",
            "type": "integer"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          },
          "upper_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Upper Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "option_id",
          "lower_basis_points",
          "expected_basis_points",
          "upper_basis_points",
          "band",
          "evidence_finding_ids",
          "uncertainty"
        ],
        "title": "DistractorPlausibilityAssessment",
        "type": "object"
      },
      "DistractorPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "catalog": {
            "$ref": "#/components/schemas/MisconceptionCatalogResponse"
          },
          "current_analysis": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistractorAnalysisResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistractorReviewResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_statistics": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistractorStatisticsResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/DistractorReviewFreshness"
          },
          "schema_version": {
            "const": "4.11.0",
            "default": "4.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/DistractorItemSnapshot"
          }
        },
        "required": [
          "source",
          "catalog",
          "current_analysis",
          "current_review",
          "current_statistics",
          "freshness"
        ],
        "title": "DistractorPreparationResponse",
        "type": "object"
      },
      "DistractorQualityAssistAttribution": {
        "additionalProperties": false,
        "properties": {
          "assist_kind": {
            "enum": ["model", "human_assist"],
            "title": "Assist Kind",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "model_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Id"
          },
          "model_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Sha256"
          },
          "model_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "provider_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Provider Id",
            "type": "string"
          }
        },
        "required": [
          "assist_kind",
          "provider_id",
          "method_id",
          "method_version",
          "method_sha256",
          "config_sha256"
        ],
        "title": "DistractorQualityAssistAttribution",
        "type": "object"
      },
      "DistractorQualityAssistFinding": {
        "additionalProperties": false,
        "properties": {
          "assist_finding_id": {
            "pattern": "^distractor-quality-assist-finding:[a-f0-9]{40}$",
            "title": "Assist Finding Id",
            "type": "string"
          },
          "category": {
            "enum": [
              "mutually_compatible_options",
              "source_inconsistency",
              "rationale_inconsistency"
            ],
            "title": "Category",
            "type": "string"
          },
          "counterinterpretations": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 2,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Option Ids",
            "type": "array"
          },
          "severity": {
            "enum": ["review", "block"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "assist_finding_id",
          "category",
          "severity",
          "option_ids",
          "statement",
          "evidence",
          "uncertainty",
          "counterinterpretations"
        ],
        "title": "DistractorQualityAssistFinding",
        "type": "object"
      },
      "DistractorQualityAssistSubmission": {
        "additionalProperties": false,
        "properties": {
          "assist_id": {
            "pattern": "^distractor-quality-assist:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Assist Id",
            "type": "string"
          },
          "attribution": {
            "$ref": "#/components/schemas/DistractorQualityAssistAttribution"
          },
          "configured_timeout_ms": {
            "maximum": 600000.0,
            "minimum": 1.0,
            "title": "Configured Timeout Ms",
            "type": "integer"
          },
          "detail": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "elapsed_ms": {
            "maximum": 600000.0,
            "minimum": 0.0,
            "title": "Elapsed Ms",
            "type": "integer"
          },
          "error_code": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "expected_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Sha256",
            "type": "string"
          },
          "findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DistractorQualityAssistFinding"
            },
            "maxItems": 100,
            "title": "Findings",
            "type": "array"
          },
          "outcome": {
            "enum": ["pass", "finding", "uncertain", "timeout", "error", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "assist_id",
          "expected_source_sha256",
          "attribution",
          "outcome",
          "configured_timeout_ms",
          "elapsed_ms",
          "detail",
          "uncertainty"
        ],
        "title": "DistractorQualityAssistSubmission",
        "type": "object"
      },
      "DistractorQualityFinding": {
        "additionalProperties": false,
        "properties": {
          "attributed_to": {
            "title": "Attributed To",
            "type": "string"
          },
          "category": {
            "enum": [
              "normalized_duplicate",
              "option_subsumption",
              "option_intersection",
              "mutually_compatible_options",
              "implausibility",
              "grammatical_mismatch",
              "length_imbalance",
              "style_imbalance",
              "cue_imbalance",
              "absolute_wording",
              "joke_option",
              "source_inconsistency",
              "rationale_inconsistency"
            ],
            "title": "Category",
            "type": "string"
          },
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^distractor-quality-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Option Ids",
            "type": "array"
          },
          "option_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Option Sha256S",
            "type": "array"
          },
          "origin": {
            "enum": ["deterministic", "semantic_assist"],
            "title": "Origin",
            "type": "string"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Sha256",
            "type": "string"
          },
          "rule_version": {
            "title": "Rule Version",
            "type": "string"
          },
          "severity": {
            "enum": ["note", "review", "block"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "origin",
          "rule_id",
          "rule_version",
          "rule_sha256",
          "category",
          "severity",
          "option_ids",
          "option_sha256s",
          "statement",
          "evidence",
          "uncertainty",
          "attributed_to"
        ],
        "title": "DistractorQualityFinding",
        "type": "object"
      },
      "DistractorQualityFindingDecision": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["confirm", "resolve", "dismiss"],
            "title": "Decision",
            "type": "string"
          },
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^distractor-quality-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["finding_id", "decision", "rationale"],
        "title": "DistractorQualityFindingDecision",
        "type": "object"
      },
      "DistractorQualityFreshness": {
        "additionalProperties": false,
        "properties": {
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "stale_reasons": {
            "items": {
              "enum": [
                "scan_missing",
                "review_missing",
                "gate_missing",
                "item_revision_changed",
                "scan_changed",
                "review_changed",
                "rule_profile_changed",
                "applicability_context_changed"
              ],
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          }
        },
        "required": ["review_required", "stale_reasons"],
        "title": "DistractorQualityFreshness",
        "type": "object"
      },
      "DistractorQualityGateContent": {
        "additionalProperties": false,
        "properties": {
          "blocking_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Blocking Reasons",
            "type": "array"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityFindingDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          },
          "review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Revision Sha256",
            "type": "string"
          },
          "rule_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Profile Sha256",
            "type": "string"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "scan_revision_sha256",
          "review_revision_sha256",
          "source_revision_sha256",
          "rule_profile_sha256",
          "requested_action",
          "status",
          "release_allowed",
          "raw_findings",
          "decisions",
          "blocking_reasons"
        ],
        "title": "DistractorQualityGateContent",
        "type": "object"
      },
      "DistractorQualityGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_review_revision": {
            "minimum": 1.0,
            "title": "Expected Review Revision",
            "type": "integer"
          },
          "expected_review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Review Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_review_revision",
          "expected_review_revision_sha256",
          "requested_action",
          "reason"
        ],
        "title": "DistractorQualityGateRequest",
        "type": "object"
      },
      "DistractorQualityGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/DistractorQualityGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^distractor-quality-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.4.0",
            "default": "5.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "DistractorQualityGateResponse",
        "type": "object"
      },
      "DistractorQualityHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityReviewResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "scans": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityScanResponse"
            },
            "title": "Scans",
            "type": "array"
          },
          "schema_version": {
            "const": "5.4.0",
            "default": "5.4.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "scans", "reviews", "gates"],
        "title": "DistractorQualityHistoryResponse",
        "type": "object"
      },
      "DistractorQualityOption": {
        "additionalProperties": false,
        "properties": {
          "keyed": {
            "title": "Keyed",
            "type": "boolean"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "rationale": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "rationale_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rationale Sha256",
            "type": "string"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": [
          "option_id",
          "order",
          "text",
          "text_sha256",
          "rationale",
          "rationale_sha256",
          "keyed"
        ],
        "title": "DistractorQualityOption",
        "type": "object"
      },
      "DistractorQualityPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistractorQualityGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistractorQualityReviewResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_scan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistractorQualityScanResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/DistractorQualityFreshness"
          },
          "rule_profile": {
            "$ref": "#/components/schemas/DistractorQualityRuleProfile"
          },
          "schema_version": {
            "const": "5.4.0",
            "default": "5.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/DistractorQualitySource"
          }
        },
        "required": [
          "source",
          "rule_profile",
          "current_scan",
          "current_review",
          "current_gate",
          "freshness"
        ],
        "title": "DistractorQualityPreparationResponse",
        "type": "object"
      },
      "DistractorQualityReviewContent": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityFindingDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "dismissed_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Dismissed Finding Ids",
            "type": "array"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "semantic_findings": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityFinding"
            },
            "title": "Semantic Findings",
            "type": "array"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "unresolved_semantic_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Semantic Finding Ids",
            "type": "array"
          }
        },
        "required": [
          "scan_revision_sha256",
          "source_revision_sha256",
          "semantic_findings",
          "decisions",
          "unresolved_semantic_finding_ids",
          "dismissed_finding_ids"
        ],
        "title": "DistractorQualityReviewContent",
        "type": "object"
      },
      "DistractorQualityReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityFindingDecision"
            },
            "maxItems": 400,
            "title": "Decisions",
            "type": "array"
          },
          "expected_review_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision"
          },
          "expected_review_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision Sha256"
          },
          "expected_scan_revision": {
            "minimum": 1.0,
            "title": "Expected Scan Revision",
            "type": "integer"
          },
          "expected_scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Scan Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_scan_revision",
          "expected_scan_revision_sha256",
          "reason",
          "decisions"
        ],
        "title": "DistractorQualityReviewRequest",
        "type": "object"
      },
      "DistractorQualityReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/DistractorQualityReviewContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^distractor-quality-review-[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.4.0",
            "default": "5.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "DistractorQualityReviewResponse",
        "type": "object"
      },
      "DistractorQualityRule": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "normalized_duplicate",
              "option_subsumption",
              "option_intersection",
              "mutually_compatible_options",
              "implausibility",
              "grammatical_mismatch",
              "length_imbalance",
              "style_imbalance",
              "cue_imbalance",
              "absolute_wording",
              "joke_option",
              "source_inconsistency",
              "rationale_inconsistency"
            ],
            "title": "Category",
            "type": "string"
          },
          "default_severity": {
            "enum": ["note", "review", "block"],
            "title": "Default Severity",
            "type": "string"
          },
          "disciplines": {
            "items": {
              "enum": ["general", "mathematics", "science", "language-arts"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Disciplines",
            "type": "array"
          },
          "evaluator": {
            "enum": ["deterministic", "semantic_assist"],
            "title": "Evaluator",
            "type": "string"
          },
          "locales": {
            "items": {
              "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-[0-9]{3})?$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "response_types": {
            "items": {
              "enum": ["single", "multiple"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Response Types",
            "type": "array"
          },
          "rule_id": {
            "pattern": "^distractor-quality-rule:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Sha256",
            "type": "string"
          },
          "rule_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Rule Version",
            "type": "string"
          },
          "statement": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": [
          "rule_id",
          "rule_sha256",
          "category",
          "evaluator",
          "default_severity",
          "response_types",
          "disciplines",
          "locales",
          "statement"
        ],
        "title": "DistractorQualityRule",
        "type": "object"
      },
      "DistractorQualityRuleApplication": {
        "additionalProperties": false,
        "properties": {
          "reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Reasons",
            "type": "array"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "rule_version": {
            "title": "Rule Version",
            "type": "string"
          },
          "status": {
            "enum": ["applied", "not_applicable"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["rule_id", "rule_version", "status", "reasons"],
        "title": "DistractorQualityRuleApplication",
        "type": "object"
      },
      "DistractorQualityRuleProfile": {
        "additionalProperties": false,
        "properties": {
          "profile_id": {
            "const": "metis.distractor-quality-rules",
            "default": "metis.distractor-quality-rules",
            "title": "Profile Id",
            "type": "string"
          },
          "profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Profile Sha256",
            "type": "string"
          },
          "profile_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Profile Version",
            "type": "string"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityRule"
            },
            "maxItems": 13,
            "minItems": 13,
            "title": "Rules",
            "type": "array"
          }
        },
        "required": ["profile_sha256", "rules"],
        "title": "DistractorQualityRuleProfile",
        "type": "object"
      },
      "DistractorQualityScanContent": {
        "additionalProperties": false,
        "properties": {
          "applications": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityRuleApplication"
            },
            "maxItems": 13,
            "minItems": 13,
            "title": "Applications",
            "type": "array"
          },
          "automated_status": {
            "enum": ["clear", "review", "blocked"],
            "title": "Automated Status",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityFinding"
            },
            "maxItems": 400,
            "title": "Raw Findings",
            "type": "array"
          },
          "rule_profile": {
            "$ref": "#/components/schemas/DistractorQualityRuleProfile"
          },
          "semantic_assists": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DistractorQualityAssistSubmission"
            },
            "maxItems": 16,
            "title": "Semantic Assists",
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/DistractorQualitySource"
          }
        },
        "required": [
          "source",
          "rule_profile",
          "applications",
          "raw_findings",
          "automated_status",
          "limitations"
        ],
        "title": "DistractorQualityScanContent",
        "type": "object"
      },
      "DistractorQualityScanRequest": {
        "additionalProperties": false,
        "properties": {
          "discipline_id": {
            "enum": ["general", "mathematics", "science", "language-arts"],
            "title": "Discipline Id",
            "type": "string"
          },
          "expected_scan_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision"
          },
          "expected_scan_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision Sha256"
          },
          "expected_selected_response_revision": {
            "minimum": 1.0,
            "title": "Expected Selected Response Revision",
            "type": "integer"
          },
          "expected_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Selected Response Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-[0-9]{3})?$",
            "title": "Locale",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "semantic_assists": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DistractorQualityAssistSubmission"
            },
            "maxItems": 16,
            "title": "Semantic Assists",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "expected_selected_response_revision",
          "expected_selected_response_revision_sha256",
          "locale",
          "discipline_id",
          "reason"
        ],
        "title": "DistractorQualityScanRequest",
        "type": "object"
      },
      "DistractorQualityScanResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/DistractorQualityScanContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "scan_id": {
            "pattern": "^distractor-quality-scan-[a-f0-9]{40}$",
            "title": "Scan Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.4.0",
            "default": "5.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "scan_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "DistractorQualityScanResponse",
        "type": "object"
      },
      "DistractorQualitySource": {
        "additionalProperties": false,
        "properties": {
          "discipline_profile": {
            "$ref": "#/components/schemas/DistractorDisciplineProfile"
          },
          "distractor_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 99,
            "minItems": 1,
            "title": "Distractor Option Ids",
            "type": "array"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "keyed_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 99,
            "minItems": 1,
            "title": "Keyed Option Ids",
            "type": "array"
          },
          "kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-[0-9]{3})?$",
            "title": "Locale",
            "type": "string"
          },
          "maximum_selections": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Maximum Selections",
            "type": "integer"
          },
          "minimum_selections": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Minimum Selections",
            "type": "integer"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/DistractorQualityOption"
            },
            "maxItems": 100,
            "minItems": 3,
            "title": "Options",
            "type": "array"
          },
          "response_type": {
            "enum": ["single", "multiple"],
            "title": "Response Type",
            "type": "string"
          },
          "selected_response_id": {
            "pattern": "^selected-response-[a-f0-9]{40}$",
            "title": "Selected Response Id",
            "type": "string"
          },
          "selected_response_revision": {
            "minimum": 1.0,
            "title": "Selected Response Revision",
            "type": "integer"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "draft_id",
          "selected_response_id",
          "selected_response_revision",
          "selected_response_revision_sha256",
          "kind",
          "response_type",
          "minimum_selections",
          "maximum_selections",
          "locale",
          "discipline_profile",
          "stem",
          "source_references",
          "options",
          "keyed_option_ids",
          "distractor_option_ids",
          "source_sha256"
        ],
        "title": "DistractorQualitySource",
        "type": "object"
      },
      "DistractorReviewFreshness": {
        "additionalProperties": false,
        "properties": {
          "current_catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Catalog Sha256",
            "type": "string"
          },
          "current_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Selected Response Revision Sha256",
            "type": "string"
          },
          "current_statistics_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Statistics Revision Sha256"
          },
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "reviewed_catalog_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed Catalog Sha256"
          },
          "reviewed_selected_response_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed Selected Response Revision Sha256"
          },
          "reviewed_statistics_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed Statistics Revision Sha256"
          },
          "stale_reasons": {
            "items": {
              "enum": [
                "analysis_missing",
                "review_missing",
                "item_revision_changed",
                "distractor_revision_changed",
                "misconception_vocabulary_changed",
                "empirical_statistics_changed"
              ],
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          }
        },
        "required": [
          "review_required",
          "stale_reasons",
          "reviewed_selected_response_revision_sha256",
          "current_selected_response_revision_sha256",
          "reviewed_catalog_sha256",
          "current_catalog_sha256",
          "reviewed_statistics_revision_sha256",
          "current_statistics_revision_sha256"
        ],
        "title": "DistractorReviewFreshness",
        "type": "object"
      },
      "DistractorReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/DistractorHumanDecision"
            },
            "maxItems": 100,
            "title": "Decisions",
            "type": "array"
          },
          "expected_analysis_revision": {
            "minimum": 1.0,
            "title": "Expected Analysis Revision",
            "type": "integer"
          },
          "expected_analysis_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Analysis Revision Sha256",
            "type": "string"
          },
          "expected_review_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision"
          },
          "expected_review_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_analysis_revision",
          "expected_analysis_revision_sha256",
          "reason",
          "decisions"
        ],
        "title": "DistractorReviewRequest",
        "type": "object"
      },
      "DistractorReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "accepted_mappings": {
            "items": {
              "$ref": "#/components/schemas/DistractorMappingProposal"
            },
            "title": "Accepted Mappings",
            "type": "array"
          },
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "analysis_id": {
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_revision": {
            "minimum": 1.0,
            "title": "Analysis Revision",
            "type": "integer"
          },
          "analysis_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Revision Sha256",
            "type": "string"
          },
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/DistractorHumanDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "inference_boundary": {
            "$ref": "#/components/schemas/DistractorInferenceBoundary",
            "default": {
              "individual_learner_inference_allowed": false,
              "relevance_evaluated_separately_from_plausibility": true,
              "required_additional_evidence": [
                "repeated response patterns",
                "learner explanation",
                "authorized human review"
              ],
              "response_alone_establishes_individual_misconception": false
            }
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^distractor-review-[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.11.0",
            "default": "4.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Selected Response Revision Sha256",
            "type": "string"
          },
          "statistics_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Statistics Revision Sha256"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "revision",
          "draft_id",
          "analysis_id",
          "analysis_revision",
          "analysis_revision_sha256",
          "selected_response_revision_sha256",
          "catalog_sha256",
          "statistics_revision_sha256",
          "decisions",
          "accepted_mappings",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "DistractorReviewResponse",
        "type": "object"
      },
      "DistractorStatisticsContent": {
        "additionalProperties": false,
        "properties": {
          "collection_ended_at": {
            "format": "date-time",
            "title": "Collection Ended At",
            "type": "string"
          },
          "collection_started_at": {
            "format": "date-time",
            "title": "Collection Started At",
            "type": "string"
          },
          "data_snapshot_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Data Snapshot Id",
            "type": "string"
          },
          "data_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Data Snapshot Sha256",
            "type": "string"
          },
          "data_snapshot_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Data Snapshot Version",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "misconception_inference_permitted": {
            "const": false,
            "default": false,
            "title": "Misconception Inference Permitted",
            "type": "boolean"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/DistractorOptionStatistic"
            },
            "maxItems": 100,
            "minItems": 3,
            "title": "Options",
            "type": "array"
          },
          "population": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Population",
            "type": "string"
          },
          "sample_size": {
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Sample Size",
            "type": "integer"
          },
          "source": {
            "$ref": "#/components/schemas/DistractorItemSnapshot"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "source",
          "data_snapshot_id",
          "data_snapshot_version",
          "data_snapshot_sha256",
          "sample_size",
          "population",
          "collection_started_at",
          "collection_ended_at",
          "method_id",
          "method_version",
          "method_sha256",
          "uncertainty",
          "options"
        ],
        "title": "DistractorStatisticsContent",
        "type": "object"
      },
      "DistractorStatisticsRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/DistractorStatisticsContent"
          },
          "expected_selected_response_revision": {
            "minimum": 1.0,
            "title": "Expected Selected Response Revision",
            "type": "integer"
          },
          "expected_selected_response_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Selected Response Revision Sha256",
            "type": "string"
          },
          "expected_statistics_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Statistics Revision"
          },
          "expected_statistics_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Statistics Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_selected_response_revision",
          "expected_selected_response_revision_sha256",
          "reason",
          "content"
        ],
        "title": "DistractorStatisticsRequest",
        "type": "object"
      },
      "DistractorStatisticsResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/DistractorStatisticsContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.11.0",
            "default": "4.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "statistics_id": {
            "pattern": "^distractor-statistics-[a-f0-9]{40}$",
            "title": "Statistics Id",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "statistics_id",
          "tenant_id",
          "revision",
          "draft_id",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "DistractorStatisticsResponse",
        "type": "object"
      },
      "DistractorSuggestionProvenance": {
        "additionalProperties": false,
        "properties": {
          "corpus_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corpus Id"
          },
          "corpus_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corpus Sha256"
          },
          "corpus_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corpus Version"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "model_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Id"
          },
          "model_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Sha256"
          },
          "model_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "source_kind": {
            "enum": ["rule", "model"],
            "title": "Source Kind",
            "type": "string"
          }
        },
        "required": ["source_kind", "method_id", "method_version", "method_sha256"],
        "title": "DistractorSuggestionProvenance",
        "type": "object"
      },
      "Divergence": {
        "additionalProperties": false,
        "description": "One disagreement between the stored row and what the payload projects to.",
        "properties": {
          "column": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Column",
            "type": "string"
          },
          "kind": {
            "enum": [
              "column_value_differs",
              "column_missing_from_stored",
              "column_absent_from_projection",
              "content_digest_differs"
            ],
            "title": "Kind",
            "type": "string"
          },
          "projected": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Projected"
          },
          "stored": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stored"
          }
        },
        "required": ["kind", "column"],
        "title": "Divergence",
        "type": "object"
      },
      "DoiIngestionInput": {
        "description": "Resolve DOI metadata without assuming that full text is available.",
        "properties": {
          "doi": {
            "maxLength": 512,
            "minLength": 6,
            "title": "Doi",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "registry": {
            "default": "auto",
            "enum": ["auto", "crossref", "datacite"],
            "title": "Registry",
            "type": "string"
          }
        },
        "required": ["label", "doi"],
        "title": "DoiIngestionInput",
        "type": "object"
      },
      "DownstreamDependency": {
        "additionalProperties": false,
        "properties": {
          "dependency_id": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Dependency Id",
            "type": "string"
          },
          "dependency_type": {
            "enum": ["assessment", "build"],
            "title": "Dependency Type",
            "type": "string"
          },
          "review_gate_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Review Gate Ids",
            "type": "array"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "dependency_type",
          "dependency_id",
          "revision",
          "revision_sha256",
          "review_gate_ids"
        ],
        "title": "DownstreamDependency",
        "type": "object"
      },
      "DownstreamImpact": {
        "additionalProperties": false,
        "description": "What a correction would reach. Counted, not asserted.",
        "properties": {
          "affected_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Affected Ids",
            "type": "array"
          },
          "already_published": {
            "title": "Already Published",
            "type": "boolean"
          },
          "system": {
            "enum": ["aggregate", "lti", "oneroster", "credential", "transcript"],
            "title": "System",
            "type": "string"
          }
        },
        "required": ["system", "already_published"],
        "title": "DownstreamImpact",
        "type": "object"
      },
      "DraftRevision": {
        "additionalProperties": false,
        "description": "What acceptance produces. A draft, and only ever a draft.",
        "properties": {
          "based_on_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Based On Revision Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Created By",
            "type": "string"
          },
          "created_from_proposal": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Created From Proposal",
            "type": "string"
          },
          "draft_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Draft Revision Id",
            "type": "string"
          },
          "draft_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Draft Sha256",
            "type": "string"
          },
          "of_subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Of Subject Id",
            "type": "string"
          },
          "of_subject_kind": {
            "enum": ["course", "item", "rubric", "tutor_script", "accessibility_note"],
            "title": "Of Subject Kind",
            "type": "string"
          },
          "overwrites_live_content": {
            "const": false,
            "default": false,
            "title": "Overwrites Live Content",
            "type": "boolean"
          }
        },
        "required": [
          "draft_revision_id",
          "of_subject_kind",
          "of_subject_id",
          "based_on_revision_sha256",
          "draft_sha256",
          "created_from_proposal",
          "created_by",
          "created_at"
        ],
        "title": "DraftRevision",
        "type": "object"
      },
      "DraftRevisionProposal": {
        "additionalProperties": false,
        "description": "A new draft, linked to the signals that prompted it.\n\n``based_on_revision_sha256`` says what the draft starts from.\n``published_content_modified`` is a ``Literal[False]``, and there is no field\nnaming a published revision to write to \u2014 so accepting a queue item cannot\nchange what a learner is currently reading, however the caller phrases it.",
        "properties": {
          "authored_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Authored By",
            "type": "string"
          },
          "based_on_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Based On Revision Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Draft Revision Id",
            "type": "string"
          },
          "linked_signal_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Linked Signal Ids",
            "type": "array"
          },
          "proposal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "published_content_modified": {
            "const": false,
            "default": false,
            "title": "Published Content Modified",
            "type": "boolean"
          },
          "target_content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Content Id",
            "type": "string"
          }
        },
        "required": [
          "proposal_id",
          "target_content_id",
          "based_on_revision_sha256",
          "draft_revision_id",
          "linked_signal_ids",
          "authored_by",
          "created_at"
        ],
        "title": "DraftRevisionProposal",
        "type": "object"
      },
      "DurableBlobReceiptResponse": {
        "description": "One stored object, named by the digest of its bytes.",
        "properties": {
          "bucket": {
            "title": "Bucket",
            "type": "string"
          },
          "byte_length": {
            "minimum": 0.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "key": {
            "title": "Key",
            "type": "string"
          },
          "media_type": {
            "title": "Media Type",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sha256",
            "type": "string"
          }
        },
        "required": ["bucket", "key", "sha256", "byte_length", "media_type"],
        "title": "DurableBlobReceiptResponse",
        "type": "object"
      },
      "DurableSourceResponse": {
        "description": "M10.4: where an admitted upload landed in the durable stores.\n\nPresent only for items whose bytes this service holds and has promoted. An\nitem without one was not written to the durable stores, and saying so with\nan absent field is the honest answer; it is never filled in from the intake\nrecord, which would describe a source that is not there.",
        "properties": {
          "availability": {
            "enum": ["available", "quarantined"],
            "title": "Availability",
            "type": "string"
          },
          "derivative": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DurableBlobReceiptResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "extracted_characters": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extracted Characters"
          },
          "extraction_refused": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extraction Refused"
          },
          "original": {
            "$ref": "#/components/schemas/DurableBlobReceiptResponse"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          }
        },
        "required": ["source_id", "revision", "availability", "original"],
        "title": "DurableSourceResponse",
        "type": "object"
      },
      "EditRequest": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "comment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Comment Id",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          }
        },
        "required": ["comment_id", "body", "expected_version"],
        "title": "EditRequest",
        "type": "object"
      },
      "EducatorDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "accept_with_edit", "reject_all", "regenerate"],
            "title": "Action",
            "type": "string"
          },
          "candidate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Id"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Decided By",
            "type": "string"
          },
          "decided_by_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Decided By Name",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "edited_output_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Output Sha256"
          },
          "edited_output_text": {
            "anyOf": [
              {
                "maxLength": 200000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Output Text"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Rationale",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.25.0",
            "default": "5.25.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "run_id",
          "action",
          "rationale",
          "decided_by",
          "decided_by_name",
          "decided_at",
          "expected_run_sha256",
          "self_sha256"
        ],
        "title": "EducatorDecision",
        "type": "object"
      },
      "EducatorDecisionRecord": {
        "additionalProperties": false,
        "description": "What an educator decided, and against which revision of what.\n\nThere is no field naming the educator. A decision is evidence about the\nrubric and the item; who made it is a fact about staffing, and training on\nit would be training on the person.",
        "properties": {
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by_role": {
            "enum": ["teacher", "assessor", "moderator", "subject_lead"],
            "title": "Decided By Role",
            "type": "string"
          },
          "decision": {
            "enum": ["accept", "reject", "revise", "escalate"],
            "title": "Decision",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "payload_kind": {
            "const": "educator_decision",
            "default": "educator_decision",
            "title": "Payload Kind",
            "type": "string"
          },
          "rationale_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rationale Code",
            "type": "string"
          },
          "rubric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision",
          "decided_by_role",
          "decided_at",
          "rubric_id",
          "rubric_revision_sha256",
          "item_revision_sha256",
          "rationale_code"
        ],
        "title": "EducatorDecisionRecord",
        "type": "object"
      },
      "EffectiveConstraint": {
        "additionalProperties": false,
        "properties": {
          "binding_overlay_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Binding Overlay Id"
          },
          "binding_overlay_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Binding Overlay Version"
          },
          "binding_scope": {
            "anyOf": [
              {
                "enum": [
                  "platform",
                  "region",
                  "institution",
                  "program",
                  "course",
                  "learner_support"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Binding Scope"
          },
          "combination": {
            "enum": ["single_declaration", "combined_declarations"],
            "title": "Combination",
            "type": "string"
          },
          "declaration_count": {
            "minimum": 1.0,
            "title": "Declaration Count",
            "type": "integer"
          },
          "declaring_overlay_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Declaring Overlay Ids",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "safety.required_safety_gates",
              "safety.max_autonomous_advance_steps",
              "privacy.max_learner_signal_retention_days",
              "privacy.allowed_signal_kinds",
              "accessibility.required_learner_supports",
              "accessibility.allowed_delivery_modes",
              "integrity.required_integrity_checks",
              "exposure.max_item_exposure_rate_basis_points",
              "rights.allowed_licence_classes",
              "prerequisite.min_prerequisite_mastery_basis_points",
              "assessment.max_attempts_per_item",
              "human_authority.require_human_review_before_activation",
              "mastery.min_mastery_to_advance_basis_points",
              "mastery.required_mastery_evidence_kinds",
              "pacing.max_items_per_session",
              "pacing.min_spacing_days_between_repeats",
              "difficulty.max_difficulty_centilogits",
              "difficulty.allowed_difficulty_bands"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "family": {
            "enum": [
              "safety",
              "privacy",
              "accessibility",
              "integrity",
              "exposure",
              "rights",
              "prerequisite",
              "assessment",
              "human_authority",
              "mastery",
              "pacing",
              "difficulty"
            ],
            "title": "Family",
            "type": "string"
          },
          "flag_value": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Flag Value"
          },
          "kind": {
            "enum": [
              "numeric_ceiling",
              "numeric_floor",
              "allowed_set",
              "required_set",
              "required_flag"
            ],
            "title": "Kind",
            "type": "string"
          },
          "numeric_value": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Numeric Value"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "set_values": {
            "anyOf": [
              {
                "items": {
                  "maxLength": 80,
                  "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Set Values"
          }
        },
        "required": [
          "dimension",
          "family",
          "kind",
          "numeric_value",
          "set_values",
          "flag_value",
          "combination",
          "binding_scope",
          "binding_overlay_id",
          "binding_overlay_version",
          "declaring_overlay_ids",
          "declaration_count",
          "rationale"
        ],
        "title": "EffectiveConstraint",
        "type": "object"
      },
      "EffectiveGrant": {
        "additionalProperties": false,
        "description": "What the tutor actually gets: the intersection, and what was dropped.\n\n``dropped`` is not decoration. A configuration that asked for a tool the\ngrant does not include gets a shorter list; without naming what went, an\nauthor would go on believing the tutor has it.",
        "properties": {
          "budget_minor_units": {
            "maximum": 10000000.0,
            "minimum": 1.0,
            "title": "Budget Minor Units",
            "type": "integer"
          },
          "dropped": {
            "default": [],
            "items": {
              "enum": [
                "tool:read-source-revision",
                "tool:search-corpus",
                "tool:render-preview",
                "tool:speak",
                "tool:caption"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Dropped",
            "type": "array"
          },
          "effective": {
            "default": [],
            "items": {
              "enum": [
                "tool:read-source-revision",
                "tool:search-corpus",
                "tool:render-preview",
                "tool:speak",
                "tool:caption"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Effective",
            "type": "array"
          },
          "granted": {
            "default": [],
            "items": {
              "enum": [
                "tool:read-source-revision",
                "tool:search-corpus",
                "tool:render-preview",
                "tool:speak",
                "tool:caption"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Granted",
            "type": "array"
          },
          "requested": {
            "default": [],
            "items": {
              "enum": [
                "tool:read-source-revision",
                "tool:search-corpus",
                "tool:render-preview",
                "tool:speak",
                "tool:caption"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Requested",
            "type": "array"
          }
        },
        "required": ["budget_minor_units"],
        "title": "EffectiveGrant",
        "type": "object"
      },
      "EffectiveMaterial": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": [
              "persona",
              "pedagogy",
              "hint_policy",
              "system_prompt",
              "tool",
              "source",
              "course",
              "item"
            ],
            "title": "Kind",
            "type": "string"
          },
          "material_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Material Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": ["kind", "material_id", "revision_id", "revision_sha256"],
        "title": "EffectiveMaterial",
        "type": "object"
      },
      "EffectiveOverlay": {
        "additionalProperties": false,
        "properties": {
          "applied_overlay_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Applied Overlay Ids",
            "type": "array"
          },
          "constraints": {
            "items": {
              "$ref": "#/components/schemas/EffectiveConstraint"
            },
            "maxItems": 64,
            "title": "Constraints",
            "type": "array"
          },
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "effective_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Effective Sha256",
            "type": "string"
          },
          "excluded_overlays": {
            "items": {
              "$ref": "#/components/schemas/ExcludedOverlay"
            },
            "maxItems": 64,
            "title": "Excluded Overlays",
            "type": "array"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/MergeFinding"
            },
            "maxItems": 256,
            "title": "Findings",
            "type": "array"
          },
          "loosening_attempt_count": {
            "minimum": 0.0,
            "title": "Loosening Attempt Count",
            "type": "integer"
          },
          "monotone": {
            "title": "Monotone",
            "type": "boolean"
          },
          "protected_families_with_floor": {
            "items": {
              "enum": [
                "safety",
                "privacy",
                "accessibility",
                "integrity",
                "exposure",
                "rights",
                "prerequisite",
                "assessment",
                "human_authority",
                "mastery",
                "pacing",
                "difficulty"
              ],
              "type": "string"
            },
            "maxItems": 9,
            "title": "Protected Families With Floor",
            "type": "array"
          },
          "protected_families_without_floor": {
            "items": {
              "enum": [
                "safety",
                "privacy",
                "accessibility",
                "integrity",
                "exposure",
                "rights",
                "prerequisite",
                "assessment",
                "human_authority",
                "mastery",
                "pacing",
                "difficulty"
              ],
              "type": "string"
            },
            "maxItems": 9,
            "title": "Protected Families Without Floor",
            "type": "array"
          }
        },
        "required": [
          "context_sha256",
          "constraints",
          "applied_overlay_ids",
          "excluded_overlays",
          "findings",
          "protected_families_with_floor",
          "protected_families_without_floor",
          "loosening_attempt_count",
          "monotone",
          "effective_sha256"
        ],
        "title": "EffectiveOverlay",
        "type": "object"
      },
      "EffectiveRequirement": {
        "additionalProperties": false,
        "properties": {
          "additional_signer_roles": {
            "default": [],
            "items": {
              "enum": [
                "subject_expert",
                "instructional_designer",
                "accessibility_specialist",
                "cultural_reviewer",
                "rights_counsel",
                "publisher_editor",
                "institution_reviewer"
              ],
              "type": "string"
            },
            "title": "Additional Signer Roles",
            "type": "array"
          },
          "after": {
            "default": [],
            "items": {
              "enum": [
                "sme_correctness",
                "pedagogy_alignment",
                "accessibility",
                "fairness_cultural",
                "legal_rights",
                "publisher_target"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "After",
            "type": "array"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/ReviewCriterion"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "distinct_from": {
            "default": [],
            "items": {
              "enum": [
                "sme_correctness",
                "pedagogy_alignment",
                "accessibility",
                "fairness_cultural",
                "legal_rights",
                "publisher_target"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Distinct From",
            "type": "array"
          },
          "expiry_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Expiry Days",
            "type": "integer"
          },
          "gate_floors": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GateFloor"
            },
            "maxItems": 10,
            "title": "Gate Floors",
            "type": "array"
          },
          "locale_match_required": {
            "title": "Locale Match Required",
            "type": "boolean"
          },
          "quorum": {
            "maximum": 4.0,
            "minimum": 1.0,
            "title": "Quorum",
            "type": "integer"
          },
          "required_qualifications": {
            "default": [],
            "items": {
              "pattern": "^qual:[a-z0-9._-]{2,80}$",
              "type": "string"
            },
            "maxItems": 10,
            "title": "Required Qualifications",
            "type": "array"
          },
          "roles": {
            "items": {
              "enum": [
                "subject_expert",
                "instructional_designer",
                "accessibility_specialist",
                "cultural_reviewer",
                "rights_counsel",
                "publisher_editor",
                "institution_reviewer"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 1,
            "title": "Roles",
            "type": "array"
          }
        },
        "required": [
          "dimension",
          "criteria",
          "roles",
          "locale_match_required",
          "quorum",
          "expiry_days"
        ],
        "title": "EffectiveRequirement",
        "type": "object"
      },
      "EffectiveTemplate": {
        "additionalProperties": false,
        "description": "The platform template with an overlay applied. The validator is the floor.",
        "properties": {
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/EffectiveRequirement"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Dimensions",
            "type": "array"
          },
          "institution_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Id"
          },
          "template": {
            "$ref": "#/components/schemas/ContentReviewTemplate"
          }
        },
        "required": ["template", "dimensions"],
        "title": "EffectiveTemplate",
        "type": "object"
      },
      "EligibilityCell": {
        "additionalProperties": false,
        "properties": {
          "command": {
            "enum": ["pause", "resume", "redirect", "cancel", "budget_kill", "replay"],
            "title": "Command",
            "type": "string"
          },
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "lifecycle": {
            "enum": ["queued", "running", "paused", "cancelled", "killed", "failed", "completed"],
            "title": "Lifecycle",
            "type": "string"
          }
        },
        "required": ["command", "lifecycle", "eligible"],
        "title": "EligibilityCell",
        "type": "object"
      },
      "EligibilityCheck": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "reasons": {
            "default": [],
            "items": {
              "enum": [
                "role_missing",
                "qualification_missing",
                "locale_mismatch",
                "is_author",
                "signed_excluded_dimension",
                "already_signed_this_dimension"
              ],
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          }
        },
        "required": ["dimension", "reviewer_digest", "eligible"],
        "title": "EligibilityCheck",
        "type": "object"
      },
      "EligibilityPreview": {
        "additionalProperties": false,
        "description": "What a pathway says about a subject right now, recorded nowhere.\n\nThe lock travels with it because a reviewer approves an evaluation, not a\npathway; without the lock there would be nothing exact to approve.",
        "properties": {
          "eligibility": {
            "$ref": "#/components/schemas/EligibilityReport"
          },
          "lock": {
            "$ref": "#/components/schemas/IssuanceLock"
          },
          "schema_version": {
            "const": "6.18.0",
            "default": "6.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject_is_synthetic": {
            "title": "Subject Is Synthetic",
            "type": "boolean"
          },
          "would_refuse": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IssuanceRefusal"
            },
            "maxItems": 20,
            "title": "Would Refuse",
            "type": "array"
          }
        },
        "required": ["lock", "eligibility", "subject_is_synthetic"],
        "title": "EligibilityPreview",
        "type": "object"
      },
      "EligibilityReport": {
        "additionalProperties": false,
        "description": "Every criterion's verdict, and whether the pathway is satisfied.\n\n``eligible`` is derived from the group rules, not declared. A report that\nsaid eligible while a group was unsatisfied would be the whole gate.",
        "properties": {
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "group_satisfied": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "boolean"
                }
              ],
              "type": "array"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Group Satisfied",
            "type": "array"
          },
          "pathway_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pathway Id",
            "type": "string"
          },
          "pathway_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Pathway Version",
            "type": "string"
          },
          "subject_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Digest",
            "type": "string"
          },
          "verdicts": {
            "items": {
              "$ref": "#/components/schemas/CriterionVerdict"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Verdicts",
            "type": "array"
          }
        },
        "required": [
          "pathway_id",
          "pathway_version",
          "subject_digest",
          "verdicts",
          "group_satisfied",
          "eligible",
          "evaluated_at"
        ],
        "title": "EligibilityReport",
        "type": "object"
      },
      "EligibilityRule": {
        "additionalProperties": false,
        "properties": {
          "delivery": {
            "$ref": "#/components/schemas/DeliveryRule"
          },
          "exposure": {
            "$ref": "#/components/schemas/ExposureRule"
          },
          "integrity": {
            "$ref": "#/components/schemas/IntegrityRule"
          },
          "locale": {
            "$ref": "#/components/schemas/LocaleRule"
          },
          "mastery_band": {
            "$ref": "#/components/schemas/MasteryBandRule"
          },
          "objective_coverage": {
            "$ref": "#/components/schemas/ObjectiveCoverageRule"
          },
          "owner_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "pnp_support": {
            "$ref": "#/components/schemas/PnpSupportRule"
          },
          "required_revision_prerequisites": {
            "items": {
              "enum": ["estimate", "learning_link", "accessibility", "rights", "calibration"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Required Revision Prerequisites",
            "type": "array"
          },
          "rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Sha256",
            "type": "string"
          },
          "rule_version": {
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$",
            "title": "Rule Version",
            "type": "string"
          }
        },
        "required": [
          "rule_id",
          "rule_version",
          "rule_sha256",
          "owner_id",
          "required_revision_prerequisites",
          "objective_coverage",
          "mastery_band",
          "exposure",
          "locale",
          "pnp_support",
          "delivery",
          "integrity"
        ],
        "title": "EligibilityRule",
        "type": "object"
      },
      "EnforcementDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["release", "redact", "regenerate", "block", "escalate"],
            "title": "Action",
            "type": "string"
          },
          "escalation_target": {
            "anyOf": [
              {
                "enum": ["human_tutor", "teacher", "safety_reviewer"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Target"
          },
          "presented_claims": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PresentedClaim"
            },
            "maxItems": 400,
            "title": "Presented Claims",
            "type": "array"
          },
          "presented_text": {
            "anyOf": [
              {
                "maxLength": 40000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Presented Text"
          },
          "reason_codes": {
            "default": [],
            "items": {
              "enum": [
                "enforcement.reason.contradicted-claim",
                "enforcement.reason.ungrounded-claim",
                "enforcement.reason.stale-or-unapproved-citation",
                "enforcement.reason.blocking-pedagogy-finding",
                "enforcement.reason.safety-claim-not-grounded",
                "enforcement.reason.abstention-requires-review",
                "enforcement.reason.non-blocking-finding-requires-review",
                "enforcement.reason.nothing-substantive-survives-redaction"
              ],
              "type": "string"
            },
            "maxItems": 12,
            "title": "Reason Codes",
            "type": "array"
          },
          "redacted_claim_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 400,
            "title": "Redacted Claim Ids",
            "type": "array"
          },
          "regeneration_directives": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 12,
            "title": "Regeneration Directives",
            "type": "array"
          }
        },
        "required": ["action"],
        "title": "EnforcementDecision",
        "type": "object"
      },
      "EnforcementProbe": {
        "additionalProperties": false,
        "properties": {
          "counts_toward_quorum": {
            "title": "Counts Toward Quorum",
            "type": "boolean"
          },
          "may_be_assigned": {
            "title": "May Be Assigned",
            "type": "boolean"
          },
          "may_sign_off": {
            "title": "May Sign Off",
            "type": "boolean"
          },
          "refusals": {
            "items": {
              "enum": [
                "declaration_missing",
                "declaration_stale",
                "declaration_does_not_cover_subject",
                "unsure_unresolved",
                "disqualifying_conflict",
                "mitigation_not_approved",
                "recused"
              ],
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          },
          "scenario": {
            "maxLength": 100,
            "minLength": 3,
            "title": "Scenario",
            "type": "string"
          }
        },
        "required": [
          "scenario",
          "may_be_assigned",
          "may_sign_off",
          "counts_toward_quorum",
          "refusals"
        ],
        "title": "EnforcementProbe",
        "type": "object"
      },
      "EnrollmentResponse": {
        "description": "Enrollment data returned in API responses.",
        "properties": {
          "certificate_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Certificate Url"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "course_id": {
            "format": "uuid",
            "title": "Course Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "enrolled_at": {
            "format": "date-time",
            "title": "Enrolled At",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "last_accessed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Accessed At"
          },
          "progress_percent": {
            "title": "Progress Percent",
            "type": "number"
          },
          "rating": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rating"
          },
          "review": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "user_id": {
            "format": "uuid",
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "progress_percent",
          "enrolled_at",
          "user_id",
          "course_id",
          "created_at",
          "updated_at"
        ],
        "title": "EnrollmentResponse",
        "type": "object"
      },
      "EntityAnchor": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "entity",
            "default": "entity",
            "title": "Kind",
            "type": "string"
          }
        },
        "title": "EntityAnchor",
        "type": "object"
      },
      "EntityProvenanceSummary": {
        "additionalProperties": false,
        "properties": {
          "entity_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Entity Id",
            "type": "string"
          },
          "entity_kind": {
            "enum": ["measurement", "verdict"],
            "title": "Entity Kind",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "registry_references": {
            "items": {
              "$ref": "#/components/schemas/RegistryReference"
            },
            "title": "Registry References",
            "type": "array"
          },
          "replay_instructions": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Replay Instructions",
            "type": "string"
          },
          "status": {
            "enum": ["reproducible", "nonreproducible"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "entity_kind",
          "entity_id",
          "status",
          "registry_references",
          "reason_codes",
          "replay_instructions"
        ],
        "title": "EntityProvenanceSummary",
        "type": "object"
      },
      "EntryCondition": {
        "additionalProperties": false,
        "properties": {
          "approver_role": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approver Role"
          },
          "comparator": {
            "anyOf": [
              {
                "enum": ["at_least", "greater_than", "equals", "at_most"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comparator"
          },
          "condition_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Condition Id",
            "type": "string"
          },
          "expires_after_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires After Days"
          },
          "kind": {
            "enum": [
              "prior_credential",
              "prior_pathway",
              "assessment_score",
              "objective_mastery",
              "evidence_artifact",
              "manual_approval"
            ],
            "title": "Kind",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "threshold_basis_points": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Threshold Basis Points"
          }
        },
        "required": ["condition_id", "kind", "subject_id"],
        "title": "EntryCondition",
        "type": "object"
      },
      "EntryCriteria": {
        "additionalProperties": false,
        "properties": {
          "requirements": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EntryRequirement"
            },
            "maxItems": 50,
            "title": "Requirements",
            "type": "array"
          },
          "review_cadence_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Review Cadence Days",
            "type": "integer"
          }
        },
        "required": ["review_cadence_days"],
        "title": "EntryCriteria",
        "type": "object"
      },
      "EntryDecision": {
        "additionalProperties": false,
        "properties": {
          "admitted": {
            "title": "Admitted",
            "type": "boolean"
          },
          "blocking_requirement_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Blocking Requirement Ids",
            "type": "array"
          },
          "next_review_on": {
            "format": "date",
            "title": "Next Review On",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "requirements": {
            "items": {
              "$ref": "#/components/schemas/RequirementOutcome"
            },
            "maxItems": 50,
            "title": "Requirements",
            "type": "array"
          },
          "state": {
            "enum": ["admitted", "blocked", "expired", "review_required", "evidence_missing"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "admitted",
          "requirements",
          "blocking_requirement_ids",
          "next_review_on",
          "reason_codes"
        ],
        "title": "EntryDecision",
        "type": "object"
      },
      "EntryRequirement": {
        "additionalProperties": false,
        "description": "One requirement; `any_of` is how a pathway declares alternatives.",
        "properties": {
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/EntryCondition"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Conditions",
            "type": "array"
          },
          "requirement_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Requirement Id",
            "type": "string"
          },
          "satisfied_by": {
            "enum": ["all_of", "any_of"],
            "title": "Satisfied By",
            "type": "string"
          }
        },
        "required": ["requirement_id", "satisfied_by", "conditions"],
        "title": "EntryRequirement",
        "type": "object"
      },
      "EnumValue": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "enum",
            "default": "enum",
            "title": "Kind",
            "type": "string"
          },
          "value": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value"],
        "title": "EnumValue",
        "type": "object"
      },
      "EnvironmentVersionRecord": {
        "additionalProperties": false,
        "properties": {
          "architecture": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Architecture",
            "type": "string"
          },
          "availability": {
            "enum": ["available", "expired", "withdrawn"],
            "title": "Availability",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "container": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "dependency_lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dependency Lock Sha256",
            "type": "string"
          },
          "environment_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Environment Id",
            "type": "string"
          },
          "environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Sha256",
            "type": "string"
          },
          "environment_variables_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Variables Sha256",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "hardware": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Hardware",
            "type": "array"
          },
          "infrastructure_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Infrastructure Sha256",
            "type": "string"
          },
          "locale": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Locale",
            "type": "string"
          },
          "network_mode": {
            "enum": ["offline", "allowlisted", "unrestricted"],
            "title": "Network Mode",
            "type": "string"
          },
          "os_name": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Os Name",
            "type": "string"
          },
          "os_version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Os Version",
            "type": "string"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "registered_by": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Registered By",
            "type": "string"
          },
          "registry_id": {
            "pattern": "^environment-version:[a-f0-9]{64}$",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "replay_instructions": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Replay Instructions",
            "type": "string"
          },
          "retained_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retained Until"
          },
          "runtimes": {
            "items": {
              "$ref": "#/components/schemas/RegisteredArtifact"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Runtimes",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "timezone": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Timezone",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "environment_id",
          "version",
          "environment_sha256",
          "os_name",
          "os_version",
          "architecture",
          "runtimes",
          "container",
          "dependency_lock_sha256",
          "environment_variables_sha256",
          "infrastructure_sha256",
          "hardware",
          "locale",
          "timezone",
          "network_mode",
          "captured_at",
          "availability",
          "replay_instructions",
          "evidence_refs",
          "registry_id",
          "registry_sha256",
          "registered_by",
          "registered_at"
        ],
        "title": "EnvironmentVersionRecord",
        "type": "object"
      },
      "EnvironmentVersionRegistration": {
        "additionalProperties": false,
        "properties": {
          "architecture": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Architecture",
            "type": "string"
          },
          "availability": {
            "enum": ["available", "expired", "withdrawn"],
            "title": "Availability",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "container": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "dependency_lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dependency Lock Sha256",
            "type": "string"
          },
          "environment_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Environment Id",
            "type": "string"
          },
          "environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Sha256",
            "type": "string"
          },
          "environment_variables_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Variables Sha256",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "hardware": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Hardware",
            "type": "array"
          },
          "infrastructure_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Infrastructure Sha256",
            "type": "string"
          },
          "locale": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Locale",
            "type": "string"
          },
          "network_mode": {
            "enum": ["offline", "allowlisted", "unrestricted"],
            "title": "Network Mode",
            "type": "string"
          },
          "os_name": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Os Name",
            "type": "string"
          },
          "os_version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Os Version",
            "type": "string"
          },
          "replay_instructions": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Replay Instructions",
            "type": "string"
          },
          "retained_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retained Until"
          },
          "runtimes": {
            "items": {
              "$ref": "#/components/schemas/RegisteredArtifact"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Runtimes",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "timezone": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Timezone",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "environment_id",
          "version",
          "environment_sha256",
          "os_name",
          "os_version",
          "architecture",
          "runtimes",
          "container",
          "dependency_lock_sha256",
          "environment_variables_sha256",
          "infrastructure_sha256",
          "hardware",
          "locale",
          "timezone",
          "network_mode",
          "captured_at",
          "availability",
          "replay_instructions",
          "evidence_refs"
        ],
        "title": "EnvironmentVersionRegistration",
        "type": "object"
      },
      "EscalationRecord": {
        "additionalProperties": false,
        "description": "A handoff to a person, or an honest statement that nobody has it yet.\n\nThere is no value of `state` meaning \"handed off\" without an acknowledgement:\n`acknowledged` requires both a name and a time, and a `pending` escalation\nsays plainly that nobody has picked it up. A tutor telling a learner it has\npassed them to a person when nobody has is the failure this shape forbids.",
        "properties": {
          "acknowledged_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acknowledged At"
          },
          "acknowledged_by": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acknowledged By"
          },
          "context_summary": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Context Summary",
            "type": "string"
          },
          "escalation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Escalation Id",
            "type": "string"
          },
          "learner_told_a_person_has_it": {
            "title": "Learner Told A Person Has It",
            "type": "boolean"
          },
          "reason": {
            "enum": [
              "learner_distress",
              "safety_concern",
              "repeated_failure",
              "out_of_scope_question",
              "integrity_concern",
              "learner_requested_a_person"
            ],
            "title": "Reason",
            "type": "string"
          },
          "routed_to_role": {
            "enum": ["course_owner", "instructor", "support_lead"],
            "title": "Routed To Role",
            "type": "string"
          },
          "state": {
            "enum": ["pending", "acknowledged", "declined"],
            "title": "State",
            "type": "string"
          },
          "withheld_from_summary": {
            "items": {
              "enum": ["learner_words", "learner_identifier", "attempt_contents"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Withheld From Summary",
            "type": "array"
          }
        },
        "required": [
          "escalation_id",
          "reason",
          "context_summary",
          "routed_to_role",
          "state",
          "withheld_from_summary",
          "learner_told_a_person_has_it"
        ],
        "title": "EscalationRecord",
        "type": "object"
      },
      "EscalationTier": {
        "additionalProperties": false,
        "properties": {
          "after_business_hours": {
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "After Business Hours",
            "type": "integer"
          },
          "role": {
            "enum": ["reviewer", "review_lead", "integrity_lead", "institution_admin"],
            "title": "Role",
            "type": "string"
          },
          "tier": {
            "maximum": 5.0,
            "minimum": 1.0,
            "title": "Tier",
            "type": "integer"
          }
        },
        "required": ["tier", "role", "after_business_hours"],
        "title": "EscalationTier",
        "type": "object"
      },
      "Estimate": {
        "additionalProperties": false,
        "description": "One statistic, with its uncertainty or a reason there is none.",
        "properties": {
          "detail": {
            "anyOf": [
              {
                "maxLength": 300,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "lower": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lower"
          },
          "standard_error": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Error"
          },
          "state": {
            "enum": ["estimated", "inestimable", "not_applicable", "unavailable"],
            "title": "State",
            "type": "string"
          },
          "statistic": {
            "enum": [
              "p_value",
              "point_biserial",
              "difficulty",
              "discrimination",
              "guessing",
              "infit",
              "outfit",
              "information"
            ],
            "title": "Statistic",
            "type": "string"
          },
          "upper": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upper"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["statistic", "state"],
        "title": "Estimate",
        "type": "object"
      },
      "EvaluateRequest": {
        "additionalProperties": false,
        "properties": {
          "declarations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewerConflictDeclaration"
            },
            "maxItems": 200,
            "title": "Declarations",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "mitigations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MitigationPlan"
            },
            "maxItems": 50,
            "title": "Mitigations",
            "type": "array"
          },
          "overlay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConflictPolicyOverlay"
              },
              {
                "type": "null"
              }
            ]
          },
          "recusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecusalRecord"
            },
            "maxItems": 50,
            "title": "Recusals",
            "type": "array"
          },
          "referrals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/UnsureReferral"
            },
            "maxItems": 50,
            "title": "Referrals",
            "type": "array"
          },
          "reviewer_digest": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ConflictSubject"
          }
        },
        "required": ["reviewer_digest", "dimension", "subject", "risk"],
        "title": "EvaluateRequest",
        "type": "object"
      },
      "EvaluationFinding": {
        "additionalProperties": false,
        "properties": {
          "candidate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Candidate Id"
          },
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "verifier_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verifier Id"
          }
        },
        "required": ["code", "detail"],
        "title": "EvaluationFinding",
        "type": "object"
      },
      "EvaluationFixture": {
        "additionalProperties": false,
        "description": "What a probe is run against. Real learner work is not a fixture.",
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Approved By Digest",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "covers": {
            "items": {
              "enum": [
                "contract",
                "safety",
                "grounding",
                "answer_leakage",
                "privacy",
                "latency_cost",
                "availability",
                "drift"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Covers",
            "type": "array"
          },
          "fixture_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Fixture Id",
            "type": "string"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": ["fixture_id", "approved_by_digest", "approved_at", "content_sha256", "covers"],
        "title": "EvaluationFixture",
        "type": "object"
      },
      "EvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "every_eligible_candidate_fully_verified": {
            "title": "Every Eligible Candidate Fully Verified",
            "type": "boolean"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/EvaluationFinding"
            },
            "maxItems": 2000,
            "title": "Findings",
            "type": "array"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/CandidateVerifierResult"
            },
            "maxItems": 2000,
            "title": "Results",
            "type": "array"
          },
          "selective_rerun_detected": {
            "title": "Selective Rerun Detected",
            "type": "boolean"
          },
          "unavailable_verifier_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Unavailable Verifier Ids",
            "type": "array"
          }
        },
        "required": [
          "results",
          "findings",
          "every_eligible_candidate_fully_verified",
          "selective_rerun_detected",
          "unavailable_verifier_ids"
        ],
        "title": "EvaluationReport",
        "type": "object"
      },
      "EvaluationRun": {
        "additionalProperties": false,
        "description": "A whole suite against one candidate at one fingerprint.",
        "properties": {
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "finished_at": {
            "format": "date-time",
            "title": "Finished At",
            "type": "string"
          },
          "model_fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Model Fingerprint Sha256",
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/ProbeResult"
            },
            "maxItems": 32,
            "minItems": 8,
            "title": "Results",
            "type": "array"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "candidate_id",
          "model_fingerprint_sha256",
          "started_at",
          "finished_at",
          "results"
        ],
        "title": "EvaluationRun",
        "type": "object"
      },
      "EvaluatorCalibration": {
        "additionalProperties": false,
        "properties": {
          "abstentions": {
            "minimum": 0.0,
            "title": "Abstentions",
            "type": "integer"
          },
          "accuracy_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Accuracy Basis Points",
            "type": "integer"
          },
          "calibrated": {
            "title": "Calibrated",
            "type": "boolean"
          },
          "evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluator Id",
            "type": "string"
          },
          "expected_calibration_error_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Expected Calibration Error Basis Points",
            "type": "integer"
          },
          "reason_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reason Code",
            "type": "string"
          },
          "samples": {
            "minimum": 0.0,
            "title": "Samples",
            "type": "integer"
          },
          "scored_samples": {
            "minimum": 0.0,
            "title": "Scored Samples",
            "type": "integer"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/SegmentError"
            },
            "maxItems": 200,
            "title": "Segments",
            "type": "array"
          }
        },
        "required": [
          "evaluator_id",
          "calibrated",
          "reason_code",
          "samples",
          "scored_samples",
          "abstentions",
          "accuracy_basis_points",
          "expected_calibration_error_basis_points",
          "segments"
        ],
        "title": "EvaluatorCalibration",
        "type": "object"
      },
      "EvaluatorDecoding": {
        "additionalProperties": false,
        "properties": {
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "max_output_tokens": {
            "maximum": 32000.0,
            "minimum": 1.0,
            "title": "Max Output Tokens",
            "type": "integer"
          },
          "temperature_milli": {
            "maximum": 2000.0,
            "minimum": 0.0,
            "title": "Temperature Milli",
            "type": "integer"
          },
          "top_p_milli": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Top P Milli",
            "type": "integer"
          }
        },
        "required": ["temperature_milli", "top_p_milli", "deterministic_seed", "max_output_tokens"],
        "title": "EvaluatorDecoding",
        "type": "object"
      },
      "EvaluatorDependency": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "dependency_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Dependency Id",
            "type": "string"
          },
          "dependency_kind": {
            "enum": ["model", "prompt", "provider", "training_data", "tool", "retrieval_index"],
            "title": "Dependency Kind",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["dependency_kind", "dependency_id", "version", "artifact_sha256"],
        "title": "EvaluatorDependency",
        "type": "object"
      },
      "EvaluatorError": {
        "additionalProperties": false,
        "description": "An evaluator that could not look. Never folded into a pass.",
        "properties": {
          "claim_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Claim Id"
          },
          "code": {
            "enum": [
              "evaluator.error.excerpt-unreadable",
              "evaluator.error.material-absent-from-catalogue",
              "evaluator.error.answer-key-unavailable"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluator Id",
            "type": "string"
          }
        },
        "required": ["evaluator_id", "claim_id", "code", "detail"],
        "title": "EvaluatorError",
        "type": "object"
      },
      "EvaluatorEvidenceSpan": {
        "additionalProperties": false,
        "properties": {
          "end": {
            "exclusiveMinimum": 0.0,
            "maximum": 200000.0,
            "title": "End",
            "type": "integer"
          },
          "excerpt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Excerpt Sha256",
            "type": "string"
          },
          "start": {
            "maximum": 200000.0,
            "minimum": 0.0,
            "title": "Start",
            "type": "integer"
          }
        },
        "required": ["start", "end", "excerpt_sha256"],
        "title": "EvaluatorEvidenceSpan",
        "type": "object"
      },
      "EvaluatorObservation": {
        "additionalProperties": false,
        "description": "One evaluator's blinded answer for one rubric criterion.",
        "properties": {
          "confidence_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence Basis Points"
          },
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "elapsed_millis": {
            "maximum": 600000.0,
            "minimum": 0.0,
            "title": "Elapsed Millis",
            "type": "integer"
          },
          "error_code": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluator Id",
            "type": "string"
          },
          "evidence_spans": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EvaluatorEvidenceSpan"
            },
            "maxItems": 50,
            "title": "Evidence Spans",
            "type": "array"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "observed_rubric_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Observed Rubric Revision Sha256",
            "type": "string"
          },
          "outcome": {
            "enum": ["scored", "abstained", "timeout", "error"],
            "title": "Outcome",
            "type": "string"
          },
          "presented_subject_alias": {
            "pattern": "^subject-[a-f0-9]{16}$",
            "title": "Presented Subject Alias",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 8000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "score_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Basis Points"
          }
        },
        "required": [
          "evaluator_id",
          "criterion_id",
          "presented_subject_alias",
          "observed_rubric_revision_sha256",
          "outcome",
          "elapsed_millis"
        ],
        "title": "EvaluatorObservation",
        "type": "object"
      },
      "EvaluatorPanelProjection": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorPanelReviewDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/EvaluatorPanelRunResponse"
          },
          "subject_revision_current": {
            "title": "Subject Revision Current",
            "type": "boolean"
          }
        },
        "required": ["run", "subject_revision_current", "decisions"],
        "title": "EvaluatorPanelProjection",
        "type": "object"
      },
      "EvaluatorPanelReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "accept_advisory",
              "override_with_deterministic_evidence",
              "request_recalibration",
              "escalate_disagreement"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "deterministic_evidence_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deterministic Evidence Ref"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "raw_panel_result_overridden": {
            "const": false,
            "default": false,
            "title": "Raw Panel Result Overridden",
            "type": "boolean"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.24.0",
            "default": "5.24.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "run_id",
          "action",
          "comment",
          "deterministic_evidence_ref",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "expected_run_sha256",
          "self_sha256"
        ],
        "title": "EvaluatorPanelReviewDecision",
        "type": "object"
      },
      "EvaluatorPanelReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "accept_advisory",
              "override_with_deterministic_evidence",
              "request_recalibration",
              "escalate_disagreement"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Comment",
            "type": "string"
          },
          "deterministic_evidence_ref": {
            "anyOf": [
              {
                "maxLength": 240,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deterministic Evidence Ref"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_run_sha256", "action", "comment"],
        "title": "EvaluatorPanelReviewRequest",
        "type": "object"
      },
      "EvaluatorPanelRunRequest": {
        "additionalProperties": false,
        "properties": {
          "calibration_policy": {
            "$ref": "#/components/schemas/CalibrationPolicy"
          },
          "champion_evaluator_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Champion Evaluator Id"
          },
          "declared_correlation_groups": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CorrelationGroup"
            },
            "maxItems": 200,
            "title": "Declared Correlation Groups",
            "type": "array"
          },
          "deterministic_probes": {
            "items": {
              "$ref": "#/components/schemas/DeterministicVerifierProbe"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Deterministic Probes",
            "type": "array"
          },
          "evaluators": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorRegistration"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Evaluators",
            "type": "array"
          },
          "gold_set": {
            "$ref": "#/components/schemas/GoldSetRevision"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "independence_rule": {
            "$ref": "#/components/schemas/IndependenceRule"
          },
          "observations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EvaluatorObservation"
            },
            "maxItems": 2000,
            "title": "Observations",
            "type": "array"
          },
          "risk": {
            "default": "general",
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "rubric": {
            "$ref": "#/components/schemas/RubricRevision"
          },
          "schema_version": {
            "const": "5.24.0",
            "default": "5.24.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/PanelSubject"
          }
        },
        "required": [
          "idempotency_key",
          "subject",
          "rubric",
          "deterministic_probes",
          "evaluators",
          "independence_rule",
          "calibration_policy",
          "gold_set"
        ],
        "title": "EvaluatorPanelRunRequest",
        "type": "object"
      },
      "EvaluatorPanelRunResponse": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/PanelApplicabilityResult"
          },
          "calibration": {
            "$ref": "#/components/schemas/CalibrationReport"
          },
          "calibration_policy": {
            "$ref": "#/components/schemas/CalibrationPolicy"
          },
          "champion_evaluator_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Champion Evaluator Id"
          },
          "collection": {
            "$ref": "#/components/schemas/CollectionResult"
          },
          "consensus": {
            "items": {
              "$ref": "#/components/schemas/CriterionConsensus"
            },
            "title": "Consensus",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "declared_correlation_groups": {
            "items": {
              "$ref": "#/components/schemas/CorrelationGroup"
            },
            "title": "Declared Correlation Groups",
            "type": "array"
          },
          "deterministic_probes": {
            "items": {
              "$ref": "#/components/schemas/DeterministicVerifierProbe"
            },
            "title": "Deterministic Probes",
            "type": "array"
          },
          "engine": {
            "$ref": "#/components/schemas/PanelEngineWitness"
          },
          "evaluators": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorRegistration"
            },
            "title": "Evaluators",
            "type": "array"
          },
          "gold_set": {
            "$ref": "#/components/schemas/GoldSetRevision"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "independence": {
            "$ref": "#/components/schemas/IndependenceAnalysis"
          },
          "independence_rule": {
            "$ref": "#/components/schemas/IndependenceRule"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/LifecycleReport"
          },
          "observations": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorObservation"
            },
            "title": "Observations",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "risk": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "rubric": {
            "$ref": "#/components/schemas/RubricRevision"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.24.0",
            "default": "5.24.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/PanelSubject"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "verdict": {
            "$ref": "#/components/schemas/PanelVerdict"
          }
        },
        "required": [
          "run_id",
          "idempotency_key",
          "subject",
          "rubric",
          "deterministic_probes",
          "evaluators",
          "declared_correlation_groups",
          "independence_rule",
          "observations",
          "calibration_policy",
          "gold_set",
          "champion_evaluator_id",
          "risk",
          "applicability",
          "independence",
          "collection",
          "calibration",
          "consensus",
          "verdict",
          "lifecycle",
          "engine",
          "request_sha256",
          "requested_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "EvaluatorPanelRunResponse",
        "type": "object"
      },
      "EvaluatorPanelWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/PanelEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorPanelProjection"
            },
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "5.24.0",
            "default": "5.24.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/PanelWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "runs"],
        "title": "EvaluatorPanelWorkspaceResponse",
        "type": "object"
      },
      "EvaluatorRegistration": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "decoding": {
            "$ref": "#/components/schemas/EvaluatorDecoding"
          },
          "dependencies": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorDependency"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Dependencies",
            "type": "array"
          },
          "display_name": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluator Id",
            "type": "string"
          },
          "gold_set_predictions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GoldSetPrediction"
            },
            "maxItems": 500,
            "title": "Gold Set Predictions",
            "type": "array"
          },
          "lifecycle": {
            "enum": ["candidate", "challenger", "champion", "deprecated", "retired"],
            "title": "Lifecycle",
            "type": "string"
          },
          "model_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Model Version",
            "type": "string"
          },
          "prompt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Prompt Id",
            "type": "string"
          },
          "prompt_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Prompt Revision Id",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "rubric_scope_criterion_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Rubric Scope Criterion Ids",
            "type": "array"
          }
        },
        "required": [
          "evaluator_id",
          "display_name",
          "lifecycle",
          "provider",
          "model_id",
          "model_version",
          "prompt_id",
          "prompt_revision_id",
          "prompt_sha256",
          "config_sha256",
          "decoding",
          "rubric_scope_criterion_ids",
          "dependencies",
          "registered_at"
        ],
        "title": "EvaluatorRegistration",
        "type": "object"
      },
      "EvaluatorVersionRecord": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "config": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "dependencies": {
            "items": {
              "$ref": "#/components/schemas/RegisteredArtifact"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Dependencies",
            "type": "array"
          },
          "determinism": {
            "enum": ["deterministic", "seeded", "nondeterministic"],
            "title": "Determinism",
            "type": "string"
          },
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "evaluator_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Evaluator Id",
            "type": "string"
          },
          "evaluator_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evaluator Sha256",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "lifecycle": {
            "enum": ["draft", "active", "deprecated", "withdrawn"],
            "title": "Lifecycle",
            "type": "string"
          },
          "lifecycle_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Lifecycle Reason",
            "type": "string"
          },
          "model": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "owner": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "registered_by": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Registered By",
            "type": "string"
          },
          "registry_id": {
            "pattern": "^evaluator-version:[a-f0-9]{64}$",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "replay_instructions": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Replay Instructions",
            "type": "string"
          },
          "runtime": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "supported_inputs": {
            "items": {
              "$ref": "#/components/schemas/SupportedEvaluatorInput"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Supported Inputs",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "evaluator_id",
          "version",
          "evaluator_sha256",
          "model",
          "code",
          "config",
          "runtime",
          "dependencies",
          "supported_inputs",
          "determinism",
          "replay_instructions",
          "lifecycle",
          "effective_from",
          "lifecycle_reason",
          "owner",
          "evidence_refs",
          "registry_id",
          "registry_sha256",
          "registered_by",
          "registered_at"
        ],
        "title": "EvaluatorVersionRecord",
        "type": "object"
      },
      "EvaluatorVersionRegistration": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "config": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "dependencies": {
            "items": {
              "$ref": "#/components/schemas/RegisteredArtifact"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Dependencies",
            "type": "array"
          },
          "determinism": {
            "enum": ["deterministic", "seeded", "nondeterministic"],
            "title": "Determinism",
            "type": "string"
          },
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "evaluator_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Evaluator Id",
            "type": "string"
          },
          "evaluator_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evaluator Sha256",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "lifecycle": {
            "enum": ["draft", "active", "deprecated", "withdrawn"],
            "title": "Lifecycle",
            "type": "string"
          },
          "lifecycle_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Lifecycle Reason",
            "type": "string"
          },
          "model": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "owner": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "replay_instructions": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Replay Instructions",
            "type": "string"
          },
          "runtime": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "supported_inputs": {
            "items": {
              "$ref": "#/components/schemas/SupportedEvaluatorInput"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Supported Inputs",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "evaluator_id",
          "version",
          "evaluator_sha256",
          "model",
          "code",
          "config",
          "runtime",
          "dependencies",
          "supported_inputs",
          "determinism",
          "replay_instructions",
          "lifecycle",
          "effective_from",
          "lifecycle_reason",
          "owner",
          "evidence_refs"
        ],
        "title": "EvaluatorVersionRegistration",
        "type": "object"
      },
      "EventOnView": {
        "additionalProperties": false,
        "description": "One event as a view draws it, with everything wrong with it attached.",
        "properties": {
          "conflicts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/OverbookedSlot"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "event": {
            "$ref": "#/components/schemas/CalendarEvent"
          },
          "resolved": {
            "$ref": "#/components/schemas/ResolvedWindow"
          }
        },
        "required": ["event", "resolved"],
        "title": "EventOnView",
        "type": "object"
      },
      "EventPage": {
        "additionalProperties": false,
        "description": "A page of events, and whether it can be proved contiguous.",
        "properties": {
          "broke_at": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Broke At"
          },
          "contiguous": {
            "title": "Contiguous",
            "type": "boolean"
          },
          "events": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RunEvent"
            },
            "maxItems": 500,
            "title": "Events",
            "type": "array"
          },
          "from_sequence": {
            "minimum": 1.0,
            "title": "From Sequence",
            "type": "integer"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "total_events": {
            "minimum": 0.0,
            "title": "Total Events",
            "type": "integer"
          }
        },
        "required": ["from_sequence", "contiguous", "total_events"],
        "title": "EventPage",
        "type": "object"
      },
      "EvidenceBundleClaimResponse": {
        "description": "Single extracted claim and its support state.",
        "properties": {
          "citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Citation Ids",
            "type": "array"
          },
          "claim_id": {
            "title": "Claim Id",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Ids",
            "type": "array"
          },
          "notes": {
            "items": {
              "type": "string"
            },
            "title": "Notes",
            "type": "array"
          },
          "source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Item Ids",
            "type": "array"
          },
          "support_status": {
            "enum": ["supported", "partial", "unsupported"],
            "title": "Support Status",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["claim_id", "text", "support_status"],
        "title": "EvidenceBundleClaimResponse",
        "type": "object"
      },
      "EvidenceBundleConfidenceSummaryResponse": {
        "description": "Calibrated confidence and abstention guidance for a bundle.",
        "properties": {
          "abstention_state": {
            "enum": ["none", "recommended", "required"],
            "title": "Abstention State",
            "type": "string"
          },
          "calibrated_score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Calibrated Score",
            "type": "number"
          },
          "label": {
            "enum": ["low", "medium", "high"],
            "title": "Label",
            "type": "string"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "threshold_reason": {
            "title": "Threshold Reason",
            "type": "string"
          },
          "threshold_score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Threshold Score",
            "type": "number"
          }
        },
        "required": [
          "calibrated_score",
          "label",
          "abstention_state",
          "threshold_score",
          "threshold_reason"
        ],
        "title": "EvidenceBundleConfidenceSummaryResponse",
        "type": "object"
      },
      "EvidenceBundleEvidenceResponse": {
        "description": "Normalized evidence item attached to a claim-level evidence bundle.",
        "properties": {
          "citation_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Citation Label"
          },
          "evidence_id": {
            "title": "Evidence Id",
            "type": "string"
          },
          "excerpt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "locator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locator"
          },
          "provenance_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provenance Status"
          },
          "source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Item Ids",
            "type": "array"
          },
          "source_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "required": ["evidence_id", "label", "kind"],
        "title": "EvidenceBundleEvidenceResponse",
        "type": "object"
      },
      "EvidenceBundleResponse": {
        "description": "Canonical claim-level evidence package for published educational outputs.",
        "properties": {
          "bundle_id": {
            "title": "Bundle Id",
            "type": "string"
          },
          "claims": {
            "items": {
              "$ref": "#/components/schemas/EvidenceBundleClaimResponse"
            },
            "title": "Claims",
            "type": "array"
          },
          "confidence": {
            "$ref": "#/components/schemas/EvidenceBundleConfidenceSummaryResponse"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/EvidenceBundleEvidenceResponse"
            },
            "title": "Evidence",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "high_stakes": {
            "default": false,
            "title": "High Stakes",
            "type": "boolean"
          },
          "scope_id": {
            "title": "Scope Id",
            "type": "string"
          },
          "scope_kind": {
            "enum": ["lesson", "assessment", "question", "tutor_answer"],
            "title": "Scope Kind",
            "type": "string"
          },
          "source_constraint_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Constraint Status"
          },
          "source_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "summary": {
            "$ref": "#/components/schemas/EvidenceBundleSummaryResponse"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "verification": {
            "$ref": "#/components/schemas/EvidenceBundleVerificationSummaryResponse"
          }
        },
        "required": [
          "bundle_id",
          "scope_kind",
          "scope_id",
          "title",
          "generated_at",
          "summary",
          "verification",
          "confidence"
        ],
        "title": "EvidenceBundleResponse",
        "type": "object"
      },
      "EvidenceBundleSummaryResponse": {
        "description": "Roll-up support summary for an evidence bundle.",
        "properties": {
          "claim_count": {
            "minimum": 0.0,
            "title": "Claim Count",
            "type": "integer"
          },
          "evidence_count": {
            "minimum": 0.0,
            "title": "Evidence Count",
            "type": "integer"
          },
          "partial_claim_count": {
            "minimum": 0.0,
            "title": "Partial Claim Count",
            "type": "integer"
          },
          "support_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Support Coverage Percent",
            "type": "number"
          },
          "supported_claim_count": {
            "minimum": 0.0,
            "title": "Supported Claim Count",
            "type": "integer"
          },
          "unsupported_claim_count": {
            "minimum": 0.0,
            "title": "Unsupported Claim Count",
            "type": "integer"
          }
        },
        "required": [
          "claim_count",
          "supported_claim_count",
          "partial_claim_count",
          "unsupported_claim_count",
          "evidence_count",
          "support_coverage_percent"
        ],
        "title": "EvidenceBundleSummaryResponse",
        "type": "object"
      },
      "EvidenceBundleVerificationSummaryResponse": {
        "description": "Roll-up verifier-ensemble summary for an evidence bundle.",
        "properties": {
          "checks": {
            "items": {
              "$ref": "#/components/schemas/EvidenceBundleVerifierCheckResponse"
            },
            "title": "Checks",
            "type": "array"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["overall_score", "status"],
        "title": "EvidenceBundleVerificationSummaryResponse",
        "type": "object"
      },
      "EvidenceBundleVerifierCheckResponse": {
        "description": "Single verifier result inside the claim-level ensemble.",
        "properties": {
          "checked_claim_count": {
            "minimum": 0.0,
            "title": "Checked Claim Count",
            "type": "integer"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "review", "fail", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "verifier_id": {
            "enum": [
              "citation_integrity",
              "contradiction_detection",
              "symbolic_domain_validation",
              "policy_conformance"
            ],
            "title": "Verifier Id",
            "type": "string"
          }
        },
        "required": ["verifier_id", "label", "status", "score", "checked_claim_count"],
        "title": "EvidenceBundleVerifierCheckResponse",
        "type": "object"
      },
      "EvidenceLink": {
        "additionalProperties": false,
        "description": "One item of evidence, hash-chained to the one before it.",
        "properties": {
          "artifact_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": ["timeline", "media", "session", "device", "similarity", "authorship"],
            "title": "Kind",
            "type": "string"
          },
          "locator": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locator"
          },
          "previous_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Sha256"
          }
        },
        "required": ["evidence_id", "kind", "artifact_id", "content_sha256", "captured_at"],
        "title": "EvidenceLink",
        "type": "object"
      },
      "EvidencePolicy": {
        "additionalProperties": false,
        "description": "What counts as evidence here, and who has to look at it.",
        "properties": {
          "accepted_types": {
            "items": {
              "enum": [
                "assessment_result",
                "mastery_estimate",
                "verified_artefact",
                "supervisor_attestation",
                "attendance_record"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Accepted Types",
            "type": "array"
          },
          "default_freshness_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Default Freshness Days",
            "type": "integer"
          },
          "review_quorum": {
            "maximum": 5.0,
            "minimum": 1.0,
            "title": "Review Quorum",
            "type": "integer"
          },
          "reviewer_roles": {
            "items": {
              "enum": ["registrar", "programme_director", "awarding_body", "assessor"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Reviewer Roles",
            "type": "array"
          },
          "verification_required": {
            "const": true,
            "default": true,
            "title": "Verification Required",
            "type": "boolean"
          },
          "withheld_from_projection": {
            "items": {
              "enum": ["free_text_answers", "learner_identifier", "demographics"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Withheld From Projection",
            "type": "array"
          }
        },
        "required": [
          "accepted_types",
          "default_freshness_days",
          "review_quorum",
          "reviewer_roles",
          "withheld_from_projection"
        ],
        "title": "EvidencePolicy",
        "type": "object"
      },
      "EvidenceRef": {
        "additionalProperties": false,
        "description": "A pointer to evidence, pinned to the revision it was taken from.",
        "properties": {
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": ["source_citation", "claim_reference", "gate_result", "static_check"],
            "title": "Kind",
            "type": "string"
          },
          "produced_by_step": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Produced By Step",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "evidence_id",
          "kind",
          "subject_id",
          "subject_revision_sha256",
          "produced_by_step",
          "recorded_at"
        ],
        "title": "EvidenceRef",
        "type": "object"
      },
      "EvidenceRequest": {
        "additionalProperties": false,
        "properties": {
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "refusal_reason": {
            "anyOf": [
              {
                "maxLength": 600,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refusal Reason"
          },
          "refused_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refused At"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Requested By Digest",
            "type": "string"
          },
          "responded_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Responded At"
          }
        },
        "required": ["request_id", "requested_by_digest", "requested_at", "due_at"],
        "title": "EvidenceRequest",
        "type": "object"
      },
      "ExactDependencyBinding": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "maxLength": 160,
            "minLength": 2,
            "title": "Authority",
            "type": "string"
          },
          "bound_at": {
            "format": "date-time",
            "title": "Bound At",
            "type": "string"
          },
          "dependency_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{2,239}$",
            "title": "Dependency Id",
            "type": "string"
          },
          "dependency_kind": {
            "enum": ["source", "claim", "citation", "standard", "objective", "tool", "policy"],
            "title": "Dependency Kind",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Revision",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "dependency_kind",
          "dependency_id",
          "revision",
          "revision_sha256",
          "authority",
          "bound_at"
        ],
        "title": "ExactDependencyBinding",
        "type": "object"
      },
      "ExactLinkedItemRevision": {
        "additionalProperties": false,
        "properties": {
          "answer_material_included": {
            "const": false,
            "default": false,
            "title": "Answer Material Included",
            "type": "boolean"
          },
          "discipline_id": {
            "pattern": "^[a-z0-9][a-z0-9-]{1,99}$",
            "title": "Discipline Id",
            "type": "string"
          },
          "grade_band": {
            "pattern": "^[a-z0-9][a-z0-9-]{0,49}$",
            "title": "Grade Band",
            "type": "string"
          },
          "item_family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Item Family",
            "type": "string"
          },
          "item_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "projection_surface": {
            "const": "learner",
            "default": "learner",
            "title": "Projection Surface",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "item_family",
          "item_id",
          "revision",
          "revision_sha256",
          "discipline_id",
          "grade_band",
          "locale"
        ],
        "title": "ExactLinkedItemRevision",
        "type": "object"
      },
      "ExactRefs": {
        "additionalProperties": false,
        "description": "What the signal is about, pinned to revisions. The learner is a digest.",
        "properties": {
          "attempt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Attempt Id",
            "type": "string"
          },
          "attempt_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Attempt Revision Sha256",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "learner_digest",
          "attempt_id",
          "attempt_revision_sha256",
          "item_id",
          "item_revision_sha256",
          "tenant_id"
        ],
        "title": "ExactRefs",
        "type": "object"
      },
      "ExcerptText": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Artifact Id",
            "type": "string"
          },
          "excerpt_id": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Excerpt Id",
            "type": "string"
          },
          "locator": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locator"
          },
          "text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["excerpt_id", "artifact_id", "text"],
        "title": "ExcerptText",
        "type": "object"
      },
      "ExcerptView": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/FieldDecision"
          },
          "excerpt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Excerpt Id",
            "type": "string"
          },
          "locator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locator"
          },
          "text": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "required": ["excerpt_id", "artifact_id", "decision"],
        "title": "ExcerptView",
        "type": "object"
      },
      "ExcludedEvaluator": {
        "additionalProperties": false,
        "properties": {
          "evaluator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluator Id",
            "type": "string"
          },
          "reason_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reason Code",
            "type": "string"
          }
        },
        "required": ["evaluator_id", "reason_code"],
        "title": "ExcludedEvaluator",
        "type": "object"
      },
      "ExcludedOverlay": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Overlay Id",
            "type": "string"
          },
          "reason": {
            "enum": [
              "scope_key_does_not_match_the_context",
              "lifecycle_is_retired_or_suspended",
              "restricted_to_a_named_item_list",
              "content_kind_is_not_eligible",
              "objective_is_not_eligible",
              "item_is_not_in_the_eligible_item_list"
            ],
            "title": "Reason",
            "type": "string"
          },
          "scope": {
            "enum": ["platform", "region", "institution", "program", "course", "learner_support"],
            "title": "Scope",
            "type": "string"
          }
        },
        "required": ["overlay_id", "scope", "reason", "detail"],
        "title": "ExcludedOverlay",
        "type": "object"
      },
      "ExecuteRequest": {
        "properties": {
          "context": {
            "default": "anywhere",
            "enum": ["anywhere", "course", "item", "review", "operator"],
            "title": "Context",
            "type": "string"
          },
          "current_revision": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Revision"
          },
          "selection_revision": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selection Revision"
          }
        },
        "title": "ExecuteRequest",
        "type": "object"
      },
      "ExecutionResult": {
        "additionalProperties": false,
        "description": "Where a command goes. Never a write.",
        "properties": {
          "effect": {
            "title": "Effect",
            "type": "string"
          },
          "entry_id": {
            "title": "Entry Id",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["entry_id", "effect", "target"],
        "title": "ExecutionResult",
        "type": "object"
      },
      "ExperimentCohort": {
        "additionalProperties": false,
        "description": "The population a governance run allocates over.\n\nThe workbench materialises a synthetic cohort rather than reading a learner\nroster, so no real subject is enrolled by opening a page. The counts below\nsay how many of that cohort carry each disqualifying condition; without them\nfour of the five exclusion reasons would be unreachable through the API and\nthe allocation rules that refuse them would never run.",
        "properties": {
          "already_assigned_elsewhere": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Already Assigned Elsewhere",
            "type": "integer"
          },
          "opted_out": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Opted Out",
            "type": "integer"
          },
          "outside_eligible_population": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Outside Eligible Population",
            "type": "integer"
          },
          "subject_count": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Subject Count",
            "type": "integer"
          },
          "without_consent": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Without Consent",
            "type": "integer"
          }
        },
        "required": ["subject_count"],
        "title": "ExperimentCohort",
        "type": "object"
      },
      "ExperimentCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["definition", "preregistration", "allocation", "guardrail", "analysis"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "ExperimentCorpusCaseResult",
        "type": "object"
      },
      "ExperimentCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["definition", "preregistration", "allocation", "guardrail", "analysis"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "ExperimentCorpusMetric",
        "type": "object"
      },
      "ExperimentDefinition": {
        "additionalProperties": false,
        "description": "What is being tried, on whom, by whose authority, and for how long.",
        "properties": {
          "approvals": {
            "items": {
              "$ref": "#/components/schemas/Approval"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Approvals",
            "type": "array"
          },
          "eligible_population": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Eligible Population",
            "type": "string"
          },
          "ends_at": {
            "format": "date-time",
            "title": "Ends At",
            "type": "string"
          },
          "experiment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Experiment Id",
            "type": "string"
          },
          "hypothesis": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Hypothesis",
            "type": "string"
          },
          "owner": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "starts_at": {
            "format": "date-time",
            "title": "Starts At",
            "type": "string"
          },
          "subject": {
            "enum": ["content", "sequencing"],
            "title": "Subject",
            "type": "string"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/VariantDefinition"
            },
            "maxItems": 10,
            "minItems": 2,
            "title": "Variants",
            "type": "array"
          }
        },
        "required": [
          "experiment_id",
          "revision_id",
          "subject",
          "hypothesis",
          "variants",
          "eligible_population",
          "owner",
          "starts_at",
          "ends_at",
          "approvals"
        ],
        "title": "ExperimentDefinition",
        "type": "object"
      },
      "ExperimentEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/ExperimentCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.12-experiment-governance-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_governance_probe_refused": {
            "title": "Every Governance Probe Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "governance_probes": {
            "items": {
              "$ref": "#/components/schemas/GovernanceProbe"
            },
            "maxItems": 40,
            "minItems": 5,
            "title": "Governance Probes",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/ExperimentCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "ramp_consistency": {
            "$ref": "#/components/schemas/RampConsistencyReport"
          },
          "schema_version": {
            "const": "6.12.0",
            "default": "6.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "corpus_id",
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "governance_probes",
          "every_governance_probe_refused",
          "ramp_consistency"
        ],
        "title": "ExperimentEvaluationReport",
        "type": "object"
      },
      "ExperimentRunProjection": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "run": {
            "$ref": "#/components/schemas/ExperimentRunResponse"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["run_id", "tenant_id", "created_at", "record_sha256", "run"],
        "title": "ExperimentRunProjection",
        "type": "object"
      },
      "ExperimentRunRequest": {
        "additionalProperties": false,
        "properties": {
          "cohort": {
            "$ref": "#/components/schemas/ExperimentCohort"
          },
          "commands": {
            "items": {
              "$ref": "#/components/schemas/GuardrailCommand"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Commands",
            "type": "array"
          },
          "experiment": {
            "$ref": "#/components/schemas/ExperimentDefinition"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "observations": {
            "items": {
              "$ref": "#/components/schemas/MetricObservation"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Observations",
            "type": "array"
          },
          "plan": {
            "$ref": "#/components/schemas/PreRegistrationIntake"
          },
          "ramp_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Ramp Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "idempotency_key",
          "experiment",
          "plan",
          "commands",
          "ramp_basis_points",
          "cohort",
          "observations"
        ],
        "title": "ExperimentRunRequest",
        "type": "object"
      },
      "ExperimentRunResponse": {
        "additionalProperties": false,
        "properties": {
          "allocation": {
            "$ref": "#/components/schemas/AllocationReport"
          },
          "analysis": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnalysisResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "analysis_withheld_reason": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Analysis Withheld Reason"
          },
          "command_log": {
            "$ref": "#/components/schemas/CommandLog"
          },
          "experiment": {
            "$ref": "#/components/schemas/ExperimentDefinition"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "plan": {
            "$ref": "#/components/schemas/PreRegistration"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.12.0",
            "default": "6.12.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "generated_at",
          "experiment",
          "plan",
          "command_log",
          "allocation",
          "analysis"
        ],
        "title": "ExperimentRunResponse",
        "type": "object"
      },
      "ExplanationRequest": {
        "additionalProperties": false,
        "properties": {
          "appeal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AppealRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "case": {
            "$ref": "#/components/schemas/IntegrityCase"
          },
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CaseDecisionRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "outcome": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AppealOutcomeRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "signal_kind": {
            "enum": [
              "paste_external",
              "offplatform_search",
              "response_pattern_anomaly",
              "generated_text_classifier",
              "tutor_output_in_submission",
              "pace_anomaly",
              "device_fingerprint_change",
              "proctor_observation",
              "peer_collaboration_breach",
              "teacher_flag"
            ],
            "title": "Signal Kind",
            "type": "string"
          },
          "support": {
            "$ref": "#/components/schemas/SupportOptions"
          }
        },
        "required": ["case", "signal_kind", "locale", "support"],
        "title": "ExplanationRequest",
        "type": "object"
      },
      "ExplanationSection": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "derived_from": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Derived From",
            "type": "array"
          },
          "heading": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Heading",
            "type": "string"
          },
          "key": {
            "enum": [
              "allegation",
              "policy",
              "evidence",
              "decision",
              "consequence",
              "appeal_rights",
              "support"
            ],
            "title": "Key",
            "type": "string"
          }
        },
        "required": ["key", "heading", "body", "derived_from"],
        "title": "ExplanationSection",
        "type": "object"
      },
      "ExportDiagnostic": {
        "additionalProperties": false,
        "description": "One feature of one node, against one target profile.",
        "properties": {
          "detected_at": {
            "format": "date-time",
            "title": "Detected At",
            "type": "string"
          },
          "diagnostic_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Diagnostic Id",
            "type": "string"
          },
          "extension": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extension"
          },
          "family": {
            "enum": [
              "interaction",
              "scoring",
              "accessibility",
              "media",
              "locale",
              "metadata",
              "layout"
            ],
            "title": "Family",
            "type": "string"
          },
          "feature": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Feature",
            "type": "string"
          },
          "locator": {
            "$ref": "#/components/schemas/ExportLocator"
          },
          "loss": {
            "anyOf": [
              {
                "maxLength": 800,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Loss"
          },
          "profile": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Profile",
            "type": "string"
          },
          "remediation": {
            "maxLength": 800,
            "minLength": 4,
            "title": "Remediation",
            "type": "string"
          },
          "severity": {
            "enum": ["blocking", "lossy", "advisory", "informational"],
            "title": "Severity",
            "type": "string"
          },
          "standard": {
            "enum": ["qti", "scorm", "common_cartridge", "thin_common_cartridge"],
            "title": "Standard",
            "type": "string"
          },
          "support": {
            "enum": [
              "supported",
              "partially_supported",
              "unsupported",
              "extension_required",
              "unknown"
            ],
            "title": "Support",
            "type": "string"
          },
          "version": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "diagnostic_id",
          "standard",
          "profile",
          "version",
          "locator",
          "feature",
          "family",
          "support",
          "severity",
          "remediation",
          "detected_at"
        ],
        "title": "ExportDiagnostic",
        "type": "object"
      },
      "ExportDiagnosticsReport": {
        "additionalProperties": false,
        "description": "Every diagnostic for one package against one target profile.",
        "properties": {
          "build_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Build Revision",
            "type": "string"
          },
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "counts": {
            "$ref": "#/components/schemas/DiagnosticCounts"
          },
          "diagnostics": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExportDiagnostic"
            },
            "title": "Diagnostics",
            "type": "array"
          },
          "exportable": {
            "title": "Exportable",
            "type": "boolean"
          },
          "package_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Package Id",
            "type": "string"
          },
          "profile": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Profile",
            "type": "string"
          },
          "standard": {
            "enum": ["qti", "scorm", "common_cartridge", "thin_common_cartridge"],
            "title": "Standard",
            "type": "string"
          },
          "version": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "build_revision",
          "standard",
          "profile",
          "version",
          "counts",
          "exportable",
          "computed_at"
        ],
        "title": "ExportDiagnosticsReport",
        "type": "object"
      },
      "ExportFile": {
        "additionalProperties": false,
        "description": "One file in the bundle, named by a digest of the bytes actually written.",
        "properties": {
          "byte_length": {
            "minimum": 1.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "media_type": {
            "enum": ["application/json", "text/csv"],
            "title": "Media Type",
            "type": "string"
          },
          "name": {
            "maxLength": 200,
            "minLength": 3,
            "title": "Name",
            "type": "string"
          },
          "of_parts": {
            "default": 1,
            "minimum": 1.0,
            "title": "Of Parts",
            "type": "integer"
          },
          "part": {
            "default": 1,
            "minimum": 1.0,
            "title": "Part",
            "type": "integer"
          },
          "row_count": {
            "minimum": 0.0,
            "title": "Row Count",
            "type": "integer"
          }
        },
        "required": ["name", "media_type", "byte_length", "content_sha256", "row_count"],
        "title": "ExportFile",
        "type": "object"
      },
      "ExportLocator": {
        "additionalProperties": false,
        "description": "Where in the package a diagnostic points. By id, never by position.",
        "properties": {
          "ancestors": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Ancestors",
            "type": "array"
          },
          "field_path": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Field Path"
          },
          "node_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Node Id",
            "type": "string"
          },
          "node_kind": {
            "enum": [
              "package",
              "assessment",
              "section",
              "item",
              "stimulus",
              "rubric",
              "media",
              "field"
            ],
            "title": "Node Kind",
            "type": "string"
          }
        },
        "required": ["node_kind", "node_id"],
        "title": "ExportLocator",
        "type": "object"
      },
      "ExportLossReport": {
        "additionalProperties": false,
        "description": "Everything the export could not carry, attached to what it was for.",
        "properties": {
          "diagnostics_computed_at": {
            "format": "date-time",
            "title": "Diagnostics Computed At",
            "type": "string"
          },
          "diagnostics_package_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Diagnostics Package Id",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "losses": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Losses",
            "type": "object"
          },
          "manifest_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Digest",
            "type": "string"
          },
          "remedied": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Remedied",
            "type": "object"
          }
        },
        "required": [
          "manifest_digest",
          "diagnostics_package_id",
          "diagnostics_computed_at",
          "losses",
          "generated_at"
        ],
        "title": "ExportLossReport",
        "type": "object"
      },
      "ExportManifest": {
        "additionalProperties": false,
        "description": "The document a verifier reads first, and the only one that is signed.",
        "properties": {
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "export_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Export Id",
            "type": "string"
          },
          "external_references": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExternalReference"
            },
            "maxItems": 100,
            "title": "External References",
            "type": "array"
          },
          "files": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExportFile"
            },
            "maxItems": 500,
            "title": "Files",
            "type": "array"
          },
          "provenance": {
            "$ref": "#/components/schemas/GenerationProvenance"
          },
          "purpose": {
            "enum": [
              "institutional_audit",
              "accreditation_review",
              "regulatory_request",
              "learner_subject_access",
              "internal_quality_review"
            ],
            "title": "Purpose",
            "type": "string"
          },
          "recipient": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Recipient",
            "type": "string"
          },
          "redactions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RedactionEntry"
            },
            "maxItems": 200,
            "title": "Redactions",
            "type": "array"
          },
          "schema_version": {
            "const": "7.14.0",
            "default": "7.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/ExportScope"
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/SectionSummary"
            },
            "maxItems": 9,
            "minItems": 9,
            "title": "Sections",
            "type": "array"
          },
          "verification": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 3,
            "title": "Verification",
            "type": "array"
          }
        },
        "required": [
          "export_id",
          "purpose",
          "recipient",
          "scope",
          "provenance",
          "sections",
          "expires_at",
          "verification"
        ],
        "title": "ExportManifest",
        "type": "object"
      },
      "ExportPackageManifest": {
        "additionalProperties": false,
        "description": "What went out, by item id and by digest.",
        "properties": {
          "build_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Build Revision",
            "type": "string"
          },
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/ManifestEntry"
            },
            "minItems": 1,
            "title": "Entries",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Package Id",
            "type": "string"
          },
          "profile": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Profile",
            "type": "string"
          },
          "standard": {
            "enum": ["qti", "scorm", "common_cartridge", "thin_common_cartridge"],
            "title": "Standard",
            "type": "string"
          },
          "version": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "build_revision",
          "standard",
          "profile",
          "version",
          "entries",
          "digest",
          "generated_at"
        ],
        "title": "ExportPackageManifest",
        "type": "object"
      },
      "ExportPackageSummary": {
        "additionalProperties": false,
        "description": "One package/build/profile this estate has diagnosed.",
        "properties": {
          "blocking": {
            "title": "Blocking",
            "type": "integer"
          },
          "build_revision": {
            "title": "Build Revision",
            "type": "string"
          },
          "elided": {
            "title": "Elided",
            "type": "integer"
          },
          "exportable": {
            "title": "Exportable",
            "type": "boolean"
          },
          "listed": {
            "title": "Listed",
            "type": "integer"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "profile": {
            "title": "Profile",
            "type": "string"
          },
          "standard": {
            "title": "Standard",
            "type": "string"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "build_revision",
          "standard",
          "profile",
          "version",
          "total",
          "blocking",
          "listed",
          "elided",
          "exportable"
        ],
        "title": "ExportPackageSummary",
        "type": "object"
      },
      "ExportRecord": {
        "additionalProperties": false,
        "description": "One row destined for the export, before minimisation.",
        "properties": {
          "classes": {
            "additionalProperties": {
              "enum": [
                "learner_identity",
                "answer_content",
                "integrity_detail",
                "source_text",
                "reviewer_identity",
                "private_note"
              ],
              "type": "string"
            },
            "minProperties": 1,
            "title": "Classes",
            "type": "object"
          },
          "institution_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Institution Id",
            "type": "string"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "record_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Record Id",
            "type": "string"
          },
          "section": {
            "enum": [
              "subjects_and_revisions",
              "templates_and_gates",
              "measurements_and_evidence",
              "comments",
              "assignments_and_conflicts",
              "decisions_appeals_signoffs",
              "actors_and_roles",
              "audit",
              "redactions"
            ],
            "title": "Section",
            "type": "string"
          },
          "values": {
            "additionalProperties": {
              "type": "string"
            },
            "minProperties": 1,
            "title": "Values",
            "type": "object"
          }
        },
        "required": ["section", "record_id", "institution_id", "occurred_at", "values", "classes"],
        "title": "ExportRecord",
        "type": "object"
      },
      "ExportRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "section_not_allowed_for_purpose",
              "scope_crosses_tenant",
              "scope_unbounded",
              "requester_role_not_permitted",
              "signing_not_configured",
              "export_expired",
              "record_outside_window",
              "unsafe_file_name"
            ],
            "title": "Reason",
            "type": "string"
          },
          "subject": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject"
          }
        },
        "required": ["reason", "detail"],
        "title": "ExportRefusal",
        "type": "object"
      },
      "ExportReleaseCheck": {
        "additionalProperties": false,
        "description": "Whether this package may go, and everything in the way.",
        "properties": {
          "accepted_downgrades": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Accepted Downgrades",
            "type": "array"
          },
          "build_revision": {
            "title": "Build Revision",
            "type": "string"
          },
          "clear": {
            "title": "Clear",
            "type": "boolean"
          },
          "diagnosed_build_revision": {
            "title": "Diagnosed Build Revision",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "profile": {
            "title": "Profile",
            "type": "string"
          },
          "refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          },
          "remedies_elsewhere": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Remedies Elsewhere",
            "type": "array"
          },
          "standard": {
            "title": "Standard",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "build_revision",
          "standard",
          "profile",
          "version",
          "diagnosed_build_revision",
          "clear"
        ],
        "title": "ExportReleaseCheck",
        "type": "object"
      },
      "ExportRemedy": {
        "additionalProperties": false,
        "description": "One incompatibility, and what somebody decided to do about it.",
        "properties": {
          "diagnostic_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Diagnostic Id",
            "type": "string"
          },
          "kind": {
            "enum": ["substitution", "exclusion"],
            "title": "Kind",
            "type": "string"
          },
          "locator": {
            "$ref": "#/components/schemas/ExportLocator"
          },
          "new_build_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "New Build Revision",
            "type": "string"
          },
          "original_feature": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Original Feature",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "remedy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Remedy Id",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_by": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Reviewed By",
            "type": "string"
          },
          "score_effect": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScoreEffect"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_build_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Build Revision",
            "type": "string"
          },
          "substitute_feature": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Substitute Feature"
          }
        },
        "required": [
          "remedy_id",
          "diagnostic_id",
          "kind",
          "locator",
          "original_feature",
          "new_build_revision",
          "source_build_revision",
          "requested_by",
          "reviewed_by",
          "reviewed_at",
          "rationale"
        ],
        "title": "ExportRemedy",
        "type": "object"
      },
      "ExportRequest": {
        "additionalProperties": false,
        "description": "A request to build an export. The requester is the caller, not a field.",
        "properties": {
          "justification": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Justification",
            "type": "string"
          },
          "purpose": {
            "enum": [
              "institutional_audit",
              "accreditation_review",
              "regulatory_request",
              "learner_subject_access",
              "internal_quality_review"
            ],
            "title": "Purpose",
            "type": "string"
          },
          "recipient": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Recipient",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/ExportScope"
          }
        },
        "required": ["purpose", "scope", "justification", "recipient"],
        "title": "ExportRequest",
        "type": "object"
      },
      "ExportScope": {
        "additionalProperties": false,
        "description": "What this export is allowed to reach. A scope that names nothing is refused.",
        "properties": {
          "course_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Course Ids",
            "type": "array"
          },
          "from_time": {
            "format": "date-time",
            "title": "From Time",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Institution Id",
            "type": "string"
          },
          "sections": {
            "items": {
              "enum": [
                "subjects_and_revisions",
                "templates_and_gates",
                "measurements_and_evidence",
                "comments",
                "assignments_and_conflicts",
                "decisions_appeals_signoffs",
                "actors_and_roles",
                "audit",
                "redactions"
              ],
              "type": "string"
            },
            "maxItems": 9,
            "minItems": 1,
            "title": "Sections",
            "type": "array"
          },
          "subject_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 2000,
            "title": "Subject Ids",
            "type": "array"
          },
          "to_time": {
            "format": "date-time",
            "title": "To Time",
            "type": "string"
          }
        },
        "required": ["institution_id", "from_time", "to_time", "sections"],
        "title": "ExportScope",
        "type": "object"
      },
      "ExposureAdmissionDecision": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "assessment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "assessment_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Sha256"
          },
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "reason_code": {
            "title": "Reason Code",
            "type": "string"
          },
          "state": {
            "anyOf": [
              {
                "enum": ["normal", "warning", "restricted", "quarantined", "retired"],
                "type": "string"
              },
              {
                "const": "unknown",
                "type": "string"
              }
            ],
            "title": "State"
          },
          "surface": {
            "enum": ["pool", "assembly", "delivery", "export"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": [
          "item",
          "surface",
          "allowed",
          "state",
          "reason_code",
          "assessment_id",
          "assessment_sha256"
        ],
        "title": "ExposureAdmissionDecision",
        "type": "object"
      },
      "ExposureAdmissionRequest": {
        "additionalProperties": false,
        "properties": {
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "surface": {
            "enum": ["pool", "assembly", "delivery", "export"],
            "title": "Surface",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "item", "surface"],
        "title": "ExposureAdmissionRequest",
        "type": "object"
      },
      "ExposureAggregate": {
        "additionalProperties": false,
        "properties": {
          "aggregate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Aggregate Sha256",
            "type": "string"
          },
          "eligible_occurrences": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eligible Occurrences"
          },
          "excluded_outside_window": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excluded Outside Window"
          },
          "excluded_preview_test": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excluded Preview Test"
          },
          "exposure_points": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exposure Points"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/ExposureMetricRelease"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Metrics",
            "type": "array"
          },
          "privacy_floor": {
            "minimum": 2.0,
            "title": "Privacy Floor",
            "type": "integer"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "unique_actors": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unique Actors"
          },
          "window_ended_at": {
            "format": "date-time",
            "title": "Window Ended At",
            "type": "string"
          },
          "window_started_at": {
            "format": "date-time",
            "title": "Window Started At",
            "type": "string"
          }
        },
        "required": [
          "window_started_at",
          "window_ended_at",
          "privacy_floor",
          "suppressed",
          "metrics",
          "aggregate_sha256"
        ],
        "title": "ExposureAggregate",
        "type": "object"
      },
      "ExposureAppealRecord": {
        "additionalProperties": false,
        "properties": {
          "appeal_id": {
            "pattern": "^exposure-appeal-[a-f0-9]{40}$",
            "title": "Appeal Id",
            "type": "string"
          },
          "appeal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Appeal Sha256",
            "type": "string"
          },
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "incident_id": {
            "title": "Incident Id",
            "type": "string"
          },
          "outcome": {
            "enum": ["uphold", "overturn"],
            "title": "Outcome",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          }
        },
        "required": [
          "appeal_id",
          "assessment_id",
          "incident_id",
          "outcome",
          "reviewer_id",
          "evidence_sha256",
          "reason",
          "decided_at",
          "appeal_sha256"
        ],
        "title": "ExposureAppealRecord",
        "type": "object"
      },
      "ExposureAppealRequest": {
        "additionalProperties": false,
        "properties": {
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^exposure-appeal:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "incident_id": {
            "pattern": "^item-compromise:[A-Za-z0-9._:-]{8,140}$",
            "title": "Incident Id",
            "type": "string"
          },
          "outcome": {
            "enum": ["uphold", "overturn"],
            "title": "Outcome",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 20,
            "title": "Reason",
            "type": "string"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          }
        },
        "required": [
          "incident_id",
          "outcome",
          "reviewer_id",
          "evidence_sha256",
          "reason",
          "idempotency_key"
        ],
        "title": "ExposureAppealRequest",
        "type": "object"
      },
      "ExposureAssessment": {
        "additionalProperties": false,
        "properties": {
          "aggregate": {
            "$ref": "#/components/schemas/ExposureAggregate"
          },
          "assessment_id": {
            "pattern": "^exposure-assessment-[a-f0-9]{40}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Assessment Sha256",
            "type": "string"
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/ExposureCheck"
            },
            "maxItems": 20,
            "minItems": 6,
            "title": "Checks",
            "type": "array"
          },
          "classification": {
            "enum": ["standard", "secure", "high_stakes"],
            "title": "Classification",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "incidents": {
            "items": {
              "$ref": "#/components/schemas/CompromiseIncidentSummary"
            },
            "title": "Incidents",
            "type": "array"
          },
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "policy_id": {
            "const": "metis.item-exposure-control",
            "default": "metis.item-exposure-control",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "previous_state": {
            "anyOf": [
              {
                "enum": ["normal", "warning", "restricted", "quarantined", "retired"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous State"
          },
          "response_plan": {
            "$ref": "#/components/schemas/ExposureResponsePlan"
          },
          "schema_version": {
            "const": "5.13.0",
            "default": "5.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": ["normal", "warning", "restricted", "quarantined", "retired"],
            "title": "State",
            "type": "string"
          },
          "state_reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "State Reason Codes",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "tenant_id",
          "item",
          "classification",
          "state",
          "state_reason_codes",
          "policy_sha256",
          "aggregate",
          "incidents",
          "checks",
          "response_plan",
          "evaluated_at",
          "assessment_sha256"
        ],
        "title": "ExposureAssessment",
        "type": "object"
      },
      "ExposureAssessmentSummary": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Assessment Sha256",
            "type": "string"
          },
          "automatic_enforcement_applied": {
            "title": "Automatic Enforcement Applied",
            "type": "boolean"
          },
          "classification": {
            "enum": ["standard", "secure", "high_stakes"],
            "title": "Classification",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "state": {
            "enum": ["normal", "warning", "restricted", "quarantined", "retired"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "item",
          "classification",
          "state",
          "automatic_enforcement_applied",
          "evaluated_at",
          "assessment_sha256"
        ],
        "title": "ExposureAssessmentSummary",
        "type": "object"
      },
      "ExposureBand": {
        "enum": ["unknown", "unused", "low", "moderate", "high", "restricted"],
        "title": "ExposureBand",
        "type": "string"
      },
      "ExposureCatalog": {
        "additionalProperties": false,
        "properties": {
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/ExposureAssessmentSummary"
            },
            "title": "Assessments",
            "type": "array"
          },
          "schema_version": {
            "const": "5.13.0",
            "default": "5.13.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["assessments"],
        "title": "ExposureCatalog",
        "type": "object"
      },
      "ExposureChannelRule": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "enum": [
              "secure_delivery",
              "lms",
              "qti_export",
              "authoring_export",
              "print",
              "share_link",
              "api"
            ],
            "title": "Channel",
            "type": "string"
          },
          "multiplier_basis_points": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Multiplier Basis Points",
            "type": "integer"
          }
        },
        "required": ["channel", "multiplier_basis_points"],
        "title": "ExposureChannelRule",
        "type": "object"
      },
      "ExposureCheck": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": ["input", "privacy", "metric", "incident", "lifecycle", "enforcement"],
            "title": "Category",
            "type": "string"
          },
          "check_id": {
            "pattern": "^exposure-check:[a-z0-9._:-]{3,140}$",
            "title": "Check Id",
            "type": "string"
          },
          "message": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "warning", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["check_id", "category", "status", "message"],
        "title": "ExposureCheck",
        "type": "object"
      },
      "ExposureClassificationPolicy": {
        "additionalProperties": false,
        "properties": {
          "classification": {
            "enum": ["standard", "secure", "high_stakes"],
            "title": "Classification",
            "type": "string"
          },
          "minimum_released_actors": {
            "maximum": 1000.0,
            "minimum": 2.0,
            "title": "Minimum Released Actors",
            "type": "integer"
          },
          "restriction_points": {
            "minimum": 1.0,
            "title": "Restriction Points",
            "type": "integer"
          },
          "retirement_points": {
            "minimum": 1.0,
            "title": "Retirement Points",
            "type": "integer"
          },
          "rolling_window_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Rolling Window Days",
            "type": "integer"
          },
          "warning_points": {
            "minimum": 1.0,
            "title": "Warning Points",
            "type": "integer"
          }
        },
        "required": [
          "classification",
          "rolling_window_days",
          "minimum_released_actors",
          "warning_points",
          "restriction_points",
          "retirement_points"
        ],
        "title": "ExposureClassificationPolicy",
        "type": "object"
      },
      "ExposureControlPolicy": {
        "additionalProperties": false,
        "properties": {
          "authority_contract": {
            "const": "metis.protected-assessment:1.0.0",
            "default": "metis.protected-assessment:1.0.0",
            "title": "Authority Contract",
            "type": "string"
          },
          "authorized_purpose": {
            "const": "assessment_security_and_item_lifecycle",
            "default": "assessment_security_and_item_lifecycle",
            "title": "Authorized Purpose",
            "type": "string"
          },
          "automatic_restriction": {
            "const": true,
            "default": true,
            "title": "Automatic Restriction",
            "type": "boolean"
          },
          "automatic_retirement": {
            "const": true,
            "default": true,
            "title": "Automatic Retirement",
            "type": "boolean"
          },
          "channel_rules": {
            "items": {
              "$ref": "#/components/schemas/ExposureChannelRule"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Channel Rules",
            "type": "array"
          },
          "classifications": {
            "items": {
              "$ref": "#/components/schemas/ExposureClassificationPolicy"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Classifications",
            "type": "array"
          },
          "counted_environments": {
            "default": ["production"],
            "items": {
              "const": "production",
              "type": "string"
            },
            "title": "Counted Environments",
            "type": "array"
          },
          "enforcement_surfaces": {
            "items": {
              "enum": ["pool", "assembly", "delivery", "export"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Enforcement Surfaces",
            "type": "array"
          },
          "excluded_environments": {
            "default": ["preview", "test"],
            "items": {
              "enum": ["preview", "test"],
              "type": "string"
            },
            "title": "Excluded Environments",
            "type": "array"
          },
          "known_compromise_signals": {
            "items": {
              "enum": [
                "answer_key_leak",
                "full_item_leak",
                "reconstruction",
                "unauthorized_export",
                "public_sharing",
                "delivery_token_compromise"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Known Compromise Signals",
            "type": "array"
          },
          "lifecycle_states": {
            "items": {
              "enum": ["normal", "warning", "restricted", "quarantined", "retired"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Lifecycle States",
            "type": "array"
          },
          "metric_rules": {
            "items": {
              "$ref": "#/components/schemas/ExposureMetricRule"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Metric Rules",
            "type": "array"
          },
          "policy_id": {
            "const": "metis.item-exposure-control",
            "default": "metis.item-exposure-control",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "preserve_historical_attempts": {
            "const": true,
            "default": true,
            "title": "Preserve Historical Attempts",
            "type": "boolean"
          },
          "preserve_historical_grades": {
            "const": true,
            "default": true,
            "title": "Preserve Historical Grades",
            "type": "boolean"
          },
          "schema_version": {
            "const": "5.13.0",
            "default": "5.13.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "metric_rules",
          "channel_rules",
          "classifications",
          "known_compromise_signals",
          "lifecycle_states",
          "enforcement_surfaces",
          "policy_sha256"
        ],
        "title": "ExposureControlPolicy",
        "type": "object"
      },
      "ExposureEventBatchReceipt": {
        "additionalProperties": false,
        "properties": {
          "batch_id": {
            "pattern": "^exposure-batch-[a-f0-9]{40}$",
            "title": "Batch Id",
            "type": "string"
          },
          "classification": {
            "enum": ["standard", "secure", "high_stakes"],
            "title": "Classification",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "event_count": {
            "minimum": 1.0,
            "title": "Event Count",
            "type": "integer"
          },
          "input_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Sha256",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "observed_through": {
            "format": "date-time",
            "title": "Observed Through",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "batch_id",
          "tenant_id",
          "item",
          "classification",
          "event_count",
          "observed_through",
          "input_sha256",
          "created_at"
        ],
        "title": "ExposureEventBatchReceipt",
        "type": "object"
      },
      "ExposureEventBatchRequest": {
        "additionalProperties": false,
        "properties": {
          "classification": {
            "enum": ["standard", "secure", "high_stakes"],
            "title": "Classification",
            "type": "string"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/ExposureOccurrence"
            },
            "maxItems": 50000,
            "minItems": 1,
            "title": "Events",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^exposure-batch:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "observed_through": {
            "format": "date-time",
            "title": "Observed Through",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.13.0",
            "default": "5.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "item",
          "classification",
          "events",
          "observed_through",
          "reason",
          "idempotency_key"
        ],
        "title": "ExposureEventBatchRequest",
        "type": "object"
      },
      "ExposureItemRevision": {
        "additionalProperties": false,
        "properties": {
          "item_id": {
            "format": "uuid",
            "title": "Item Id",
            "type": "string"
          },
          "item_revision": {
            "minimum": 1.0,
            "title": "Item Revision",
            "type": "integer"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          }
        },
        "required": ["item_id", "item_revision", "item_revision_sha256"],
        "title": "ExposureItemRevision",
        "type": "object"
      },
      "ExposureMetricRelease": {
        "additionalProperties": false,
        "properties": {
          "event_type": {
            "enum": ["delivered", "seen", "responded", "reused", "exported", "shared"],
            "title": "Event Type",
            "type": "string"
          },
          "occurrences": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Occurrences"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "unique_actors": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unique Actors"
          }
        },
        "required": ["event_type", "suppressed"],
        "title": "ExposureMetricRelease",
        "type": "object"
      },
      "ExposureMetricRule": {
        "additionalProperties": false,
        "properties": {
          "event_type": {
            "enum": ["delivered", "seen", "responded", "reused", "exported", "shared"],
            "title": "Event Type",
            "type": "string"
          },
          "points_per_occurrence": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Points Per Occurrence",
            "type": "integer"
          }
        },
        "required": ["event_type", "points_per_occurrence"],
        "title": "ExposureMetricRule",
        "type": "object"
      },
      "ExposureOccurrence": {
        "additionalProperties": false,
        "properties": {
          "actor_token_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Actor Token Sha256",
            "type": "string"
          },
          "administration_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administration Revision Sha256"
          },
          "channel": {
            "enum": [
              "secure_delivery",
              "lms",
              "qti_export",
              "authoring_export",
              "print",
              "share_link",
              "api"
            ],
            "title": "Channel",
            "type": "string"
          },
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "environment": {
            "enum": ["production", "preview", "test"],
            "title": "Environment",
            "type": "string"
          },
          "event_id": {
            "pattern": "^exposure-event:[A-Za-z0-9._:-]{8,150}$",
            "title": "Event Id",
            "type": "string"
          },
          "event_type": {
            "enum": ["delivered", "seen", "responded", "reused", "exported", "shared"],
            "title": "Event Type",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "population": {
            "enum": ["learner", "instructor", "reviewer", "institution", "public"],
            "title": "Population",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "item",
          "event_type",
          "channel",
          "population",
          "environment",
          "actor_token_sha256",
          "context_revision_sha256",
          "occurred_at"
        ],
        "title": "ExposureOccurrence",
        "type": "object"
      },
      "ExposureResponsePlan": {
        "additionalProperties": false,
        "properties": {
          "appeal_allowed": {
            "title": "Appeal Allowed",
            "type": "boolean"
          },
          "automatic_enforcement_applied": {
            "title": "Automatic Enforcement Applied",
            "type": "boolean"
          },
          "blast_radius_contexts": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Blast Radius Contexts"
          },
          "blast_radius_suppressed": {
            "title": "Blast Radius Suppressed",
            "type": "boolean"
          },
          "historical_attempts_preserved": {
            "const": true,
            "default": true,
            "title": "Historical Attempts Preserved",
            "type": "boolean"
          },
          "historical_grades_preserved": {
            "const": true,
            "default": true,
            "title": "Historical Grades Preserved",
            "type": "boolean"
          },
          "notification_roles": {
            "items": {
              "enum": ["security", "assessment_owner", "institution_reviewer", "affected_learners"],
              "type": "string"
            },
            "title": "Notification Roles",
            "type": "array"
          },
          "replacement_item": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExposureItemRevision"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacement_required": {
            "title": "Replacement Required",
            "type": "boolean"
          },
          "replacement_status": {
            "enum": ["not_required", "required", "linked"],
            "title": "Replacement Status",
            "type": "string"
          },
          "surfaces": {
            "items": {
              "$ref": "#/components/schemas/SurfaceEnforcement"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Surfaces",
            "type": "array"
          }
        },
        "required": [
          "automatic_enforcement_applied",
          "surfaces",
          "replacement_required",
          "replacement_status",
          "notification_roles",
          "blast_radius_suppressed",
          "appeal_allowed"
        ],
        "title": "ExposureResponsePlan",
        "type": "object"
      },
      "ExposureRule": {
        "additionalProperties": false,
        "properties": {
          "block_compromised": {
            "const": true,
            "default": true,
            "title": "Block Compromised",
            "type": "boolean"
          },
          "maximum_band": {
            "enum": ["unused", "low", "moderate", "high", "restricted"],
            "title": "Maximum Band",
            "type": "string"
          },
          "maximum_rate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Maximum Rate Basis Points",
            "type": "integer"
          },
          "minimum_days_since_last_seen": {
            "maximum": 365.0,
            "minimum": 0.0,
            "title": "Minimum Days Since Last Seen",
            "type": "integer"
          },
          "require_current_evidence": {
            "title": "Require Current Evidence",
            "type": "boolean"
          }
        },
        "required": [
          "maximum_band",
          "maximum_rate_basis_points",
          "minimum_days_since_last_seen",
          "require_current_evidence"
        ],
        "title": "ExposureRule",
        "type": "object"
      },
      "ExposureWorkspace": {
        "additionalProperties": false,
        "properties": {
          "appeals": {
            "items": {
              "$ref": "#/components/schemas/ExposureAppealRecord"
            },
            "title": "Appeals",
            "type": "array"
          },
          "assessment": {
            "$ref": "#/components/schemas/ExposureAssessment"
          },
          "latest_batch": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExposureEventBatchReceipt"
              },
              {
                "type": "null"
              }
            ]
          },
          "policy": {
            "$ref": "#/components/schemas/ExposureControlPolicy"
          },
          "schema_version": {
            "const": "5.13.0",
            "default": "5.13.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["policy", "latest_batch", "assessment", "appeals"],
        "title": "ExposureWorkspace",
        "type": "object"
      },
      "ExternalReference": {
        "additionalProperties": false,
        "description": "Something the export points at but does not contain.",
        "properties": {
          "label": {
            "maxLength": 200,
            "minLength": 3,
            "title": "Label",
            "type": "string"
          },
          "locator": {
            "maxLength": 500,
            "minLength": 3,
            "title": "Locator",
            "type": "string"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["label", "locator", "reason"],
        "title": "ExternalReference",
        "type": "object"
      },
      "ExtractedCitationResponse": {
        "additionalProperties": false,
        "description": "Citation-like reference discovered during extraction.",
        "properties": {
          "anchor_id": {
            "anyOf": [
              {
                "pattern": "^anchor_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Anchor Id"
          },
          "confidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExtractionConfidenceResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "enum": ["url", "doi", "isbn", "issn"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "locator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locator"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["id", "label", "kind", "value"],
        "title": "ExtractedCitationResponse",
        "type": "object"
      },
      "ExtractedDiagnosticsResponse": {
        "additionalProperties": false,
        "description": "Parser and OCR diagnostics for an extracted source.",
        "properties": {
          "failure_stage": {
            "enum": ["fetch", "parser", "ocr", "rights", "none"],
            "title": "Failure Stage",
            "type": "string"
          },
          "failures": {
            "items": {
              "type": "string"
            },
            "title": "Failures",
            "type": "array"
          },
          "ocr_applied": {
            "title": "Ocr Applied",
            "type": "boolean"
          },
          "ocr_confidence": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ocr Confidence"
          },
          "ocr_required": {
            "title": "Ocr Required",
            "type": "boolean"
          },
          "parser_confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Parser Confidence",
            "type": "number"
          },
          "parser_name": {
            "title": "Parser Name",
            "type": "string"
          }
        },
        "required": [
          "parser_name",
          "parser_confidence",
          "ocr_required",
          "ocr_applied",
          "failure_stage"
        ],
        "title": "ExtractedDiagnosticsResponse",
        "type": "object"
      },
      "ExtractedDocumentResponse": {
        "additionalProperties": false,
        "description": "Complete structured representation of one exact source artifact.",
        "properties": {
          "anchors": {
            "items": {
              "$ref": "#/components/schemas/ExtractionAnchorResponse"
            },
            "title": "Anchors",
            "type": "array"
          },
          "direction": {
            "enum": ["ltr", "rtl", "mixed", "unknown"],
            "title": "Direction",
            "type": "string"
          },
          "equations": {
            "items": {
              "$ref": "#/components/schemas/ExtractedEquationResponse"
            },
            "title": "Equations",
            "type": "array"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/ExtractionErrorResponse"
            },
            "title": "Errors",
            "type": "array"
          },
          "extractor": {
            "$ref": "#/components/schemas/SourceExtractorIdentityResponse"
          },
          "id": {
            "pattern": "^document_[a-f0-9]{24}$",
            "title": "Id",
            "type": "string"
          },
          "language": {
            "anyOf": [
              {
                "maxLength": 35,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "media": {
            "items": {
              "$ref": "#/components/schemas/ExtractedMediaResponse"
            },
            "title": "Media",
            "type": "array"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/ExtractedNodeResponse"
            },
            "title": "Nodes",
            "type": "array"
          },
          "reading_order_node_ids": {
            "items": {
              "type": "string"
            },
            "title": "Reading Order Node Ids",
            "type": "array"
          },
          "schema_version": {
            "const": "2.3.0",
            "default": "2.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["complete", "partial", "failed"],
            "title": "Status",
            "type": "string"
          },
          "tables": {
            "items": {
              "$ref": "#/components/schemas/ExtractedTableResponse"
            },
            "title": "Tables",
            "type": "array"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "id",
          "source_sha256",
          "extractor",
          "status",
          "text",
          "direction",
          "anchors",
          "reading_order_node_ids",
          "nodes",
          "tables",
          "equations",
          "media",
          "errors"
        ],
        "title": "ExtractedDocumentResponse",
        "type": "object"
      },
      "ExtractedEquationRepresentationResponse": {
        "additionalProperties": false,
        "description": "One exact equation representation retained from the source.",
        "properties": {
          "kind": {
            "enum": ["latex", "mathml", "omml", "plaintext"],
            "title": "Kind",
            "type": "string"
          },
          "provenance": {
            "enum": ["source_declared", "source_embedded", "derived", "ocr"],
            "title": "Provenance",
            "type": "string"
          },
          "value": {
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["kind", "value", "provenance"],
        "title": "ExtractedEquationRepresentationResponse",
        "type": "object"
      },
      "ExtractedEquationResponse": {
        "additionalProperties": false,
        "description": "An equation representation that never invents mathematical semantics.",
        "properties": {
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Anchor Ids",
            "type": "array"
          },
          "confidence": {
            "$ref": "#/components/schemas/ExtractionConfidenceResponse"
          },
          "id": {
            "pattern": "^equation_[a-f0-9]{24}$",
            "title": "Id",
            "type": "string"
          },
          "image_media_id": {
            "anyOf": [
              {
                "pattern": "^media_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Media Id"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 256,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "order": {
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "representations": {
            "items": {
              "$ref": "#/components/schemas/ExtractedEquationRepresentationResponse"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Representations",
            "type": "array"
          },
          "semantics_inferred": {
            "const": false,
            "default": false,
            "title": "Semantics Inferred",
            "type": "boolean"
          },
          "variables": {
            "items": {
              "$ref": "#/components/schemas/ExtractedEquationVariableResponse"
            },
            "maxItems": 256,
            "title": "Variables",
            "type": "array"
          },
          "visible_text": {
            "minLength": 1,
            "title": "Visible Text",
            "type": "string"
          }
        },
        "required": ["id", "order", "representations", "visible_text", "anchor_ids", "confidence"],
        "title": "ExtractedEquationResponse",
        "type": "object"
      },
      "ExtractedEquationVariableResponse": {
        "additionalProperties": false,
        "description": "A visible symbol and only a source-explicit definition, if present.",
        "properties": {
          "definition_provenance": {
            "default": "none",
            "enum": ["source_explicit", "none"],
            "title": "Definition Provenance",
            "type": "string"
          },
          "source_definition": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Definition"
          },
          "symbol": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Symbol",
            "type": "string"
          }
        },
        "required": ["symbol"],
        "title": "ExtractedEquationVariableResponse",
        "type": "object"
      },
      "ExtractedMediaResponse": {
        "additionalProperties": false,
        "description": "Hash-addressed embedded or whole-source media.",
        "properties": {
          "alt_text": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExtractedTextClaimResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "title": "Anchor Ids",
            "type": "array"
          },
          "byte_size": {
            "minimum": 0.0,
            "title": "Byte Size",
            "type": "integer"
          },
          "caption": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExtractedTextClaimResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "disposition": {
            "enum": ["whole_source", "embedded", "archive_member", "table_fallback"],
            "title": "Disposition",
            "type": "string"
          },
          "file_name": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Name"
          },
          "id": {
            "pattern": "^media_[a-f0-9]{24}$",
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "enum": ["image", "audio", "video", "file"],
            "title": "Kind",
            "type": "string"
          },
          "mime_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Mime Type",
            "type": "string"
          },
          "order": {
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "rights": {
            "$ref": "#/components/schemas/ExtractedRightsRecordResponse"
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sha256",
            "type": "string"
          },
          "source_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ref"
          },
          "technical": {
            "$ref": "#/components/schemas/ExtractedMediaTechnicalResponse"
          }
        },
        "required": [
          "id",
          "order",
          "kind",
          "disposition",
          "sha256",
          "byte_size",
          "mime_type",
          "technical",
          "rights"
        ],
        "title": "ExtractedMediaResponse",
        "type": "object"
      },
      "ExtractedMediaTechnicalResponse": {
        "additionalProperties": false,
        "description": "Technical media metadata; absent values remain absent.",
        "properties": {
          "channels": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Channels"
          },
          "codecs": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Codecs",
            "type": "array"
          },
          "container": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Container"
          },
          "duration_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms"
          },
          "frame_rate": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Frame Rate"
          },
          "height_px": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Height Px"
          },
          "sample_rate_hz": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sample Rate Hz"
          },
          "width_px": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Width Px"
          }
        },
        "title": "ExtractedMediaTechnicalResponse",
        "type": "object"
      },
      "ExtractedMetadataConflictResponse": {
        "additionalProperties": false,
        "description": "Uncollapsed disagreement between metadata sources.",
        "properties": {
          "field": {
            "pattern": "^[a-z][a-z0-9_.-]{1,127}$",
            "title": "Field",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "resolution": {
            "enum": ["unresolved", "source_declared_selected", "source_embedded_selected"],
            "title": "Resolution",
            "type": "string"
          },
          "sources": {
            "items": {
              "enum": ["source_declared", "source_embedded", "derived", "ocr"],
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 2,
            "title": "Sources",
            "type": "array"
          },
          "values": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 2,
            "title": "Values",
            "type": "array"
          }
        },
        "required": ["field", "values", "sources", "resolution", "rationale"],
        "title": "ExtractedMetadataConflictResponse",
        "type": "object"
      },
      "ExtractedMetadataFieldResponse": {
        "additionalProperties": false,
        "description": "One normalized metadata field with its exact provenance.",
        "properties": {
          "confidence": {
            "$ref": "#/components/schemas/ExtractionConfidenceResponse"
          },
          "name": {
            "pattern": "^[a-z][a-z0-9_.-]{1,127}$",
            "title": "Name",
            "type": "string"
          },
          "normalization": {
            "maxLength": 256,
            "minLength": 1,
            "title": "Normalization",
            "type": "string"
          },
          "normalized_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalized Value"
          },
          "provenance": {
            "enum": ["source_declared", "source_embedded", "derived", "ocr"],
            "title": "Provenance",
            "type": "string"
          },
          "source_values": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Source Values",
            "type": "array"
          }
        },
        "required": ["name", "provenance", "normalization", "confidence"],
        "title": "ExtractedMetadataFieldResponse",
        "type": "object"
      },
      "ExtractedMetadataResponse": {
        "additionalProperties": false,
        "description": "Normalized metadata plus field-level provenance and conflicts.",
        "properties": {
          "authors": {
            "items": {
              "type": "string"
            },
            "title": "Authors",
            "type": "array"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/ExtractedMetadataConflictResponse"
            },
            "maxItems": 128,
            "title": "Conflicts",
            "type": "array"
          },
          "custom": {
            "additionalProperties": true,
            "title": "Custom",
            "type": "object"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/ExtractedMetadataFieldResponse"
            },
            "maxItems": 512,
            "title": "Fields",
            "type": "array"
          },
          "genre": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Genre"
          },
          "keywords": {
            "items": {
              "type": "string"
            },
            "title": "Keywords",
            "type": "array"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "publisher": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Publisher"
          },
          "subjects": {
            "items": {
              "type": "string"
            },
            "title": "Subjects",
            "type": "array"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "ExtractedMetadataResponse",
        "type": "object"
      },
      "ExtractedNodeResponse": {
        "additionalProperties": false,
        "description": "One ordered semantic node in the normalized document.",
        "properties": {
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Anchor Ids",
            "type": "array"
          },
          "confidence": {
            "$ref": "#/components/schemas/ExtractionConfidenceResponse"
          },
          "direction": {
            "enum": ["ltr", "rtl", "mixed", "unknown"],
            "title": "Direction",
            "type": "string"
          },
          "id": {
            "pattern": "^node_[a-f0-9]{24}$",
            "title": "Id",
            "type": "string"
          },
          "language": {
            "anyOf": [
              {
                "maxLength": 35,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "level": {
            "anyOf": [
              {
                "maximum": 64.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Level"
          },
          "node_type": {
            "enum": [
              "title",
              "heading",
              "paragraph",
              "list",
              "list_item",
              "footnote",
              "citation",
              "caption",
              "page_break",
              "unknown"
            ],
            "title": "Node Type",
            "type": "string"
          },
          "order": {
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^node_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "text": {
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["id", "node_type", "order", "text", "direction", "anchor_ids", "confidence"],
        "title": "ExtractedNodeResponse",
        "type": "object"
      },
      "ExtractedProcessingResponse": {
        "additionalProperties": false,
        "description": "Processing details for an extracted source.",
        "properties": {
          "char_count": {
            "minimum": 0.0,
            "title": "Char Count",
            "type": "integer"
          },
          "chunk_count": {
            "minimum": 0.0,
            "title": "Chunk Count",
            "type": "integer"
          },
          "content_hash": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Hash",
            "type": "string"
          },
          "line_count": {
            "minimum": 0.0,
            "title": "Line Count",
            "type": "integer"
          },
          "source_hash": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Hash"
          },
          "word_count": {
            "minimum": 0.0,
            "title": "Word Count",
            "type": "integer"
          }
        },
        "required": ["char_count", "word_count", "line_count", "chunk_count", "content_hash"],
        "title": "ExtractedProcessingResponse",
        "type": "object"
      },
      "ExtractedRightsRecordResponse": {
        "additionalProperties": false,
        "description": "Rights posture derived from the source and extracted content.",
        "properties": {
          "full_text_use_authorized": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Text Use Authorized"
          },
          "license_type": {
            "enum": [
              "open_license",
              "licensed",
              "institutional",
              "open_reference",
              "restricted",
              "unknown",
              "missing"
            ],
            "title": "License Type",
            "type": "string"
          },
          "license_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Uri"
          },
          "policy_flags": {
            "items": {
              "type": "string"
            },
            "title": "Policy Flags",
            "type": "array"
          },
          "posture": {
            "enum": ["cleared", "needs_review", "blocked"],
            "title": "Posture",
            "type": "string"
          },
          "provenance_posture": {
            "enum": ["verified", "partial", "missing"],
            "title": "Provenance Posture",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "source_evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Source Evidence",
            "type": "array"
          },
          "source_status": {
            "anyOf": [
              {
                "enum": [
                  "unknown",
                  "unchecked",
                  "registry_reported",
                  "declared",
                  "permitted",
                  "restricted",
                  "public_domain"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Status"
          }
        },
        "required": ["posture", "license_type", "provenance_posture", "rationale"],
        "title": "ExtractedRightsRecordResponse",
        "type": "object"
      },
      "ExtractedSectionResponse": {
        "additionalProperties": false,
        "description": "Structured section discovered during extraction.",
        "properties": {
          "anchor_id": {
            "anyOf": [
              {
                "pattern": "^anchor_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Anchor Id"
          },
          "end_offset": {
            "minimum": 0.0,
            "title": "End Offset",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "level": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Level",
            "type": "integer"
          },
          "order": {
            "default": 0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "parent_section_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Section Id"
          },
          "start_offset": {
            "minimum": 0.0,
            "title": "Start Offset",
            "type": "integer"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": ["id", "level", "start_offset", "end_offset"],
        "title": "ExtractedSectionResponse",
        "type": "object"
      },
      "ExtractedTableCellResponse": {
        "additionalProperties": false,
        "description": "A source-preserving table cell, including merged-cell coordinates.",
        "properties": {
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Anchor Ids",
            "type": "array"
          },
          "column": {
            "minimum": 0.0,
            "title": "Column",
            "type": "integer"
          },
          "column_span": {
            "default": 1,
            "maximum": 2000000.0,
            "minimum": 1.0,
            "title": "Column Span",
            "type": "integer"
          },
          "confidence": {
            "$ref": "#/components/schemas/ExtractionConfidenceResponse"
          },
          "header_scope": {
            "default": "none",
            "enum": ["row", "column", "both", "none"],
            "title": "Header Scope",
            "type": "string"
          },
          "is_header": {
            "default": false,
            "title": "Is Header",
            "type": "boolean"
          },
          "row": {
            "minimum": 0.0,
            "title": "Row",
            "type": "integer"
          },
          "row_span": {
            "default": 1,
            "maximum": 2000000.0,
            "minimum": 1.0,
            "title": "Row Span",
            "type": "integer"
          },
          "text": {
            "title": "Text",
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 128,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": ["row", "column", "text", "confidence"],
        "title": "ExtractedTableCellResponse",
        "type": "object"
      },
      "ExtractedTableResponse": {
        "additionalProperties": false,
        "description": "A structured table with source-level fallback and supporting notes.",
        "properties": {
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Anchor Ids",
            "type": "array"
          },
          "caption": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Caption"
          },
          "cells": {
            "items": {
              "$ref": "#/components/schemas/ExtractedTableCellResponse"
            },
            "maxItems": 2000000,
            "minItems": 1,
            "title": "Cells",
            "type": "array"
          },
          "confidence": {
            "$ref": "#/components/schemas/ExtractionConfidenceResponse"
          },
          "footnotes": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Footnotes",
            "type": "array"
          },
          "id": {
            "pattern": "^table_[a-f0-9]{24}$",
            "title": "Id",
            "type": "string"
          },
          "image_fallback_media_id": {
            "anyOf": [
              {
                "pattern": "^media_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Fallback Media Id"
          },
          "order": {
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "units": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Units",
            "type": "array"
          }
        },
        "required": ["id", "order", "cells", "anchor_ids", "confidence"],
        "title": "ExtractedTableResponse",
        "type": "object"
      },
      "ExtractedTextClaimResponse": {
        "additionalProperties": false,
        "description": "Caption or alternative text with explicit provenance.",
        "properties": {
          "confidence": {
            "$ref": "#/components/schemas/ExtractionConfidenceResponse"
          },
          "provenance": {
            "enum": ["source_declared", "source_embedded", "derived", "ocr"],
            "title": "Provenance",
            "type": "string"
          },
          "value": {
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "provenance", "confidence"],
        "title": "ExtractedTextClaimResponse",
        "type": "object"
      },
      "Extraction": {
        "additionalProperties": false,
        "description": "A passage taken out of one exact version of one source.",
        "properties": {
          "excerpt": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Excerpt",
            "type": "string"
          },
          "excerpt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Excerpt Sha256",
            "type": "string"
          },
          "extracted_at": {
            "format": "date-time",
            "title": "Extracted At",
            "type": "string"
          },
          "extracted_by": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Extracted By",
            "type": "string"
          },
          "extraction_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "locator": {
            "$ref": "#/components/schemas/Locator"
          },
          "model_generated": {
            "default": false,
            "title": "Model Generated",
            "type": "boolean"
          },
          "source_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "source_version": {
            "minimum": 1.0,
            "title": "Source Version",
            "type": "integer"
          }
        },
        "required": [
          "extraction_id",
          "source_id",
          "source_version",
          "locator",
          "excerpt",
          "excerpt_sha256",
          "extracted_at",
          "extracted_by"
        ],
        "title": "Extraction",
        "type": "object"
      },
      "ExtractionAnchorResponse": {
        "additionalProperties": false,
        "description": "Typed selectors bound to one exact source byte hash.",
        "properties": {
          "end_char": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Char"
          },
          "end_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Ms"
          },
          "exact_quote_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exact Quote Sha256"
          },
          "fragment": {
            "anyOf": [
              {
                "maxLength": 2048,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fragment"
          },
          "id": {
            "pattern": "^anchor_[a-f0-9]{24}$",
            "title": "Id",
            "type": "string"
          },
          "page_number": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Page Number"
          },
          "region": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExtractionRegionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "section_path": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Section Path",
            "type": "array"
          },
          "selectors": {
            "items": {
              "enum": [
                "text_position",
                "page_region",
                "section_path",
                "temporal_fragment",
                "media_fragment",
                "archive_member"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Selectors",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "start_char": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Char"
          },
          "start_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Ms"
          }
        },
        "required": ["id", "source_sha256", "selectors"],
        "title": "ExtractionAnchorResponse",
        "type": "object"
      },
      "ExtractionConfidenceResponse": {
        "additionalProperties": false,
        "description": "Calibrated confidence with an explicit evidence basis.",
        "properties": {
          "basis": {
            "enum": [
              "parser_native",
              "source_declared",
              "deterministic",
              "heuristic",
              "ocr",
              "unavailable"
            ],
            "title": "Basis",
            "type": "string"
          },
          "calibration_version": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Calibration Version",
            "type": "string"
          },
          "explanation": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["score", "basis", "calibration_version", "explanation"],
        "title": "ExtractionConfidenceResponse",
        "type": "object"
      },
      "ExtractionErrorResponse": {
        "additionalProperties": false,
        "description": "A bounded, machine-readable extraction failure or limitation.",
        "properties": {
          "anchor_id": {
            "anyOf": [
              {
                "pattern": "^anchor_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Anchor Id"
          },
          "code": {
            "pattern": "^[a-z][a-z0-9_.-]{2,127}$",
            "title": "Code",
            "type": "string"
          },
          "message": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "retryable": {
            "default": false,
            "title": "Retryable",
            "type": "boolean"
          },
          "severity": {
            "enum": ["warning", "recoverable", "fatal"],
            "title": "Severity",
            "type": "string"
          },
          "stage": {
            "enum": [
              "load",
              "parser",
              "structure",
              "table",
              "equation",
              "media",
              "metadata",
              "ocr"
            ],
            "title": "Stage",
            "type": "string"
          }
        },
        "required": ["code", "stage", "severity", "message"],
        "title": "ExtractionErrorResponse",
        "type": "object"
      },
      "ExtractionRegionResponse": {
        "additionalProperties": false,
        "description": "Normalized top-left page or image region.",
        "properties": {
          "coordinate_system": {
            "const": "normalized_top_left",
            "default": "normalized_top_left",
            "title": "Coordinate System",
            "type": "string"
          },
          "height": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Height",
            "type": "number"
          },
          "width": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Width",
            "type": "number"
          },
          "x": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "X",
            "type": "number"
          },
          "y": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Y",
            "type": "number"
          }
        },
        "required": ["x", "y", "width", "height"],
        "title": "ExtractionRegionResponse",
        "type": "object"
      },
      "ExtractionRuntimeComponentResponse": {
        "additionalProperties": false,
        "description": "One exact parser or OCR component that participated in extraction.",
        "properties": {
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "name": {
            "maxLength": 128,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "role": {
            "enum": ["orchestrator", "parser", "ocr", "media_probe"],
            "title": "Role",
            "type": "string"
          },
          "version": {
            "maxLength": 128,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["name", "version", "role", "available"],
        "title": "ExtractionRuntimeComponentResponse",
        "type": "object"
      },
      "ExtractionView": {
        "additionalProperties": false,
        "description": "One extraction, with its locator rendered and its comparison beside it.",
        "properties": {
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Comparison"
              },
              {
                "type": "null"
              }
            ]
          },
          "extraction": {
            "$ref": "#/components/schemas/Extraction"
          },
          "locator": {
            "$ref": "#/components/schemas/LocatorView"
          }
        },
        "required": ["extraction", "locator"],
        "title": "ExtractionView",
        "type": "object"
      },
      "FacetVerification": {
        "additionalProperties": false,
        "description": "One facet of one target, read back from the destination.",
        "properties": {
          "checked_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Checked At"
          },
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "expected": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected"
          },
          "facet": {
            "enum": ["bytes", "metadata", "visibility", "links"],
            "title": "Facet",
            "type": "string"
          },
          "observed": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed"
          },
          "outcome": {
            "enum": ["matched", "different", "absent", "unreadable", "not_checked"],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": ["facet", "outcome", "detail"],
        "title": "FacetVerification",
        "type": "object"
      },
      "FairnessCohortSummaryResponse": {
        "description": "Cohort distribution used in a fairness review.",
        "properties": {
          "dimension": {
            "title": "Dimension",
            "type": "string"
          },
          "group": {
            "title": "Group",
            "type": "string"
          },
          "sample_size": {
            "minimum": 0.0,
            "title": "Sample Size",
            "type": "integer"
          }
        },
        "required": ["dimension", "group", "sample_size"],
        "title": "FairnessCohortSummaryResponse",
        "type": "object"
      },
      "FallbackDecision": {
        "additionalProperties": false,
        "description": "What happens to one segment that has no approved target.\n\n**A SILENT FALLBACK IS A LIE ABOUT WHAT LANGUAGE THE LEARNER IS READING.**\nIn assessed content it is worse than a lie: an item whose stem is Spanish\nand whose fourth option is English has told the learner which option is\ndifferent, and that is a measurement the item did not intend to take. The\nonly two answers here are to refuse to ship the segment, or to ship the\nsource marked as the source \u2014 with a `lang` attribute a screen reader can\nswitch voices on and a visible marker a sighted learner can see.",
        "properties": {
          "kind": {
            "enum": [
              "title",
              "prose",
              "stem",
              "answer",
              "distractor",
              "rationale",
              "rubric",
              "interaction_label",
              "alt_text",
              "long_description",
              "caption",
              "transcript",
              "voice_script",
              "mathml",
              "ssml",
              "metadata",
              "standards_label"
            ],
            "title": "Kind",
            "type": "string"
          },
          "mode": {
            "enum": ["refuse", "marked_source", "silent_source"],
            "title": "Mode",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "rendered_locale": {
            "anyOf": [
              {
                "maxLength": 16,
                "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rendered Locale"
          },
          "unit_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Unit Id",
            "type": "string"
          }
        },
        "required": ["unit_id", "kind", "mode", "reason"],
        "title": "FallbackDecision",
        "type": "object"
      },
      "FeatureUseBody": {
        "description": "One feature, used at one place. Addressed by id, never by position.",
        "properties": {
          "detail": {
            "default": "",
            "maxLength": 400,
            "title": "Detail",
            "type": "string"
          },
          "feature": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Feature",
            "type": "string"
          },
          "locator": {
            "$ref": "#/components/schemas/ExportLocator"
          }
        },
        "required": ["locator", "feature"],
        "title": "FeatureUseBody",
        "type": "object"
      },
      "FeatureValue": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "number"
          }
        },
        "required": ["name", "value"],
        "title": "FeatureValue",
        "type": "object"
      },
      "FeedIngestionInput": {
        "description": "A remote feed to snapshot into Metis ingestion storage.",
        "properties": {
          "feed_format": {
            "default": "unknown",
            "enum": ["rss", "atom", "jsonfeed", "unknown"],
            "title": "Feed Format",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "license_uri": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Uri"
          },
          "rights_status": {
            "default": "unknown",
            "enum": ["unknown", "unchecked", "declared", "permitted", "restricted"],
            "title": "Rights Status",
            "type": "string"
          },
          "url": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Url",
            "type": "string"
          }
        },
        "required": ["label", "url"],
        "title": "FeedIngestionInput",
        "type": "object"
      },
      "FeedbackCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["intake", "triage", "authority", "lineage", "privacy"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "FeedbackCorpusCaseResult",
        "type": "object"
      },
      "FeedbackCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["intake", "triage", "authority", "lineage", "privacy"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "FeedbackCorpusMetric",
        "type": "object"
      },
      "FeedbackEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "auto_edit_probes": {
            "items": {
              "$ref": "#/components/schemas/AutoEditProbe"
            },
            "maxItems": 40,
            "minItems": 4,
            "title": "Auto Edit Probes",
            "type": "array"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/FeedbackCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.11-feedback-queue-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_auto_edit_refused": {
            "title": "Every Auto Edit Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/FeedbackCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "published_payload_identity_findings": {
            "minimum": 0.0,
            "title": "Published Payload Identity Findings",
            "type": "integer"
          },
          "schema_version": {
            "const": "6.11.0",
            "default": "6.11.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "corpus_id",
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "auto_edit_probes",
          "every_auto_edit_refused",
          "published_payload_identity_findings"
        ],
        "title": "FeedbackEvaluationReport",
        "type": "object"
      },
      "FeedbackQueueProjection": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "queue": {
            "$ref": "#/components/schemas/FeedbackQueueResponse"
          },
          "queue_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Queue Id",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["queue_id", "tenant_id", "created_at", "record_sha256", "queue"],
        "title": "FeedbackQueueProjection",
        "type": "object"
      },
      "FeedbackQueueRequest": {
        "additionalProperties": false,
        "properties": {
          "approved_sources": {
            "items": {
              "enum": [
                "survey",
                "comment",
                "support_ticket",
                "correction",
                "analytics",
                "performance",
                "accessibility",
                "integrity"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Approved Sources",
            "type": "array"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "known_revisions": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Known Revisions",
            "type": "array"
          },
          "minimum_cohort": {
            "default": 10,
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Minimum Cohort",
            "type": "integer"
          },
          "owner": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/RawFeedbackSignal"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Signals",
            "type": "array"
          }
        },
        "required": ["idempotency_key", "approved_sources", "known_revisions", "owner", "signals"],
        "title": "FeedbackQueueRequest",
        "type": "object"
      },
      "FeedbackQueueResponse": {
        "additionalProperties": false,
        "description": "The queue as published. It carries no verbatim submission anywhere.",
        "properties": {
          "carries_no_identity": {
            "title": "Carries No Identity",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "identity_findings": {
            "minimum": 0.0,
            "title": "Identity Findings",
            "type": "integer"
          },
          "intake": {
            "$ref": "#/components/schemas/IntakeReport"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/QueueItem"
            },
            "maxItems": 500,
            "title": "Items",
            "type": "array"
          },
          "queue_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Queue Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.11.0",
            "default": "6.11.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "queue_id",
          "generated_at",
          "intake",
          "identity_findings",
          "carries_no_identity"
        ],
        "title": "FeedbackQueueResponse",
        "type": "object"
      },
      "FenceCheck": {
        "additionalProperties": false,
        "description": "Whether a result produced at one fence may land at another.\n\nA tool call that started before a cancel can finish after it. Without a\nfence the result looks exactly like a timely one, and lands in a run nobody\nis watching.",
        "properties": {
          "accepted": {
            "title": "Accepted",
            "type": "boolean"
          },
          "current_fence": {
            "minimum": 1.0,
            "title": "Current Fence",
            "type": "integer"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "result_fence": {
            "minimum": 1.0,
            "title": "Result Fence",
            "type": "integer"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": ["run_id", "result_fence", "current_fence", "accepted", "detail"],
        "title": "FenceCheck",
        "type": "object"
      },
      "FieldAnchor": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "field",
            "default": "field",
            "title": "Kind",
            "type": "string"
          },
          "path": {
            "maxLength": 200,
            "pattern": "^[a-z][a-z0-9_]*(?:\\.[a-z0-9_]+)*$",
            "title": "Path",
            "type": "string"
          }
        },
        "required": ["path"],
        "title": "FieldAnchor",
        "type": "object"
      },
      "FieldChange": {
        "additionalProperties": false,
        "description": "One difference, at one path, in one dimension.",
        "properties": {
          "after": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "After"
          },
          "before": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Before"
          },
          "dimension": {
            "enum": [
              "field",
              "entity",
              "list",
              "relationship",
              "source",
              "accessibility",
              "key_safe"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "from_position": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "From Position"
          },
          "kind": {
            "enum": ["added", "removed", "changed", "moved", "unchanged", "redacted", "unknown"],
            "title": "Kind",
            "type": "string"
          },
          "path": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          },
          "to_position": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "To Position"
          }
        },
        "required": ["dimension", "path", "kind"],
        "title": "FieldChange",
        "type": "object"
      },
      "FieldDecision": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "field_group": {
            "enum": [
              "refs.learner_digest",
              "refs.attempt",
              "refs.item",
              "source.versions",
              "raw_outputs",
              "confidence",
              "evidence.timeline",
              "evidence.media",
              "evidence.session",
              "evidence.device",
              "evidence.similarity",
              "evidence.authorship",
              "excerpt.text",
              "summary",
              "state"
            ],
            "title": "Field Group",
            "type": "string"
          },
          "redactions_applied": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "title": "Redactions Applied",
            "type": "array"
          },
          "residue_found": {
            "default": false,
            "title": "Residue Found",
            "type": "boolean"
          },
          "treatment": {
            "enum": ["shown", "masked", "withheld", "redacted"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["field_group", "treatment", "detail"],
        "title": "FieldDecision",
        "type": "object"
      },
      "FieldMapReport": {
        "additionalProperties": false,
        "properties": {
          "by_role": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Role",
            "type": "object"
          },
          "columns": {
            "items": {
              "$ref": "#/components/schemas/OperationalColumn"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Columns",
            "type": "array"
          },
          "content_fields": {
            "minimum": 0.0,
            "title": "Content Fields",
            "type": "integer"
          },
          "indexes": {
            "items": {
              "$ref": "#/components/schemas/IndexPlan"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Indexes",
            "type": "array"
          },
          "operational_fields": {
            "minimum": 0.0,
            "title": "Operational Fields",
            "type": "integer"
          },
          "rows": {
            "items": {
              "$ref": "#/components/schemas/FieldMapRow"
            },
            "maxItems": 20000,
            "minItems": 1,
            "title": "Rows",
            "type": "array"
          },
          "schema_version": {
            "const": "8.2.0",
            "default": "8.2.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "rows",
          "by_role",
          "operational_fields",
          "content_fields",
          "columns",
          "indexes"
        ],
        "title": "FieldMapReport",
        "type": "object"
      },
      "FieldMapRow": {
        "additionalProperties": false,
        "description": "One field of one aggregate, and what it is for.",
        "properties": {
          "aggregate": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Aggregate",
            "type": "string"
          },
          "field": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Field",
            "type": "string"
          },
          "matched_pattern": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matched Pattern"
          },
          "module": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Module",
            "type": "string"
          },
          "role": {
            "enum": [
              "tenant",
              "identity",
              "owner",
              "state",
              "maturity",
              "timestamp",
              "lock",
              "queue",
              "freshness",
              "risk",
              "visibility",
              "integrity",
              "content"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["module", "aggregate", "field", "role"],
        "title": "FieldMapRow",
        "type": "object"
      },
      "FileIngestionInput": {
        "description": "A file already staged into Metis uploads storage.",
        "properties": {
          "checksum": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Checksum"
          },
          "content_type": {
            "default": "application/octet-stream",
            "maxLength": 255,
            "minLength": 1,
            "title": "Content Type",
            "type": "string"
          },
          "file_name": {
            "maxLength": 512,
            "minLength": 1,
            "title": "File Name",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "object_key": {
            "anyOf": [
              {
                "maxLength": 1024,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Object Key"
          },
          "quarantine_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quarantine Id"
          },
          "size_bytes": {
            "minimum": 1.0,
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": ["label", "file_name", "size_bytes"],
        "title": "FileIngestionInput",
        "type": "object"
      },
      "ForeignKeyDesign": {
        "additionalProperties": false,
        "description": "A reference to another aggregate, carried with the tenant so it cannot cross.",
        "properties": {
          "column": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Column",
            "type": "string"
          },
          "references_column": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "References Column",
            "type": "string"
          },
          "references_table": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "References Table",
            "type": "string"
          },
          "target_state": {
            "enum": ["designed", "existing"],
            "title": "Target State",
            "type": "string"
          },
          "tenant_scoped": {
            "const": true,
            "default": true,
            "title": "Tenant Scoped",
            "type": "boolean"
          }
        },
        "required": ["column", "references_table", "references_column", "target_state"],
        "title": "ForeignKeyDesign",
        "type": "object"
      },
      "ForensicAuthorization": {
        "additionalProperties": false,
        "description": "Authorized forensic access: one examiner, one subject chain, a purpose, an expiry.",
        "properties": {
          "authorization_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Authorization Id",
            "type": "string"
          },
          "examiner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Examiner Digest",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "granted_at": {
            "format": "date-time",
            "title": "Granted At",
            "type": "string"
          },
          "granted_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Granted By Digest",
            "type": "string"
          },
          "granted_by_role": {
            "const": "integrity_lead",
            "default": "integrity_lead",
            "title": "Granted By Role",
            "type": "string"
          },
          "purpose": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Purpose",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["signal", "case"],
            "title": "Subject Kind",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "authorization_id",
          "tenant_id",
          "subject_kind",
          "subject_id",
          "examiner_digest",
          "granted_by_digest",
          "purpose",
          "granted_at",
          "expires_at"
        ],
        "title": "ForensicAuthorization",
        "type": "object"
      },
      "FreshnessEnforcementRule": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["allow", "warn", "block"],
            "title": "Action",
            "type": "string"
          },
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "state": {
            "enum": ["current", "due", "stale", "blocked", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "surface": {
            "enum": ["tutor_prompt", "assessment", "build", "publication", "delivery"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["state", "surface", "allowed", "action"],
        "title": "FreshnessEnforcementRule",
        "type": "object"
      },
      "FreshnessEvidenceRef": {
        "additionalProperties": false,
        "properties": {
          "access_class": {
            "default": "metadata_only",
            "enum": ["metadata_only", "review_restricted"],
            "title": "Access Class",
            "type": "string"
          },
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^freshness-evidence:[A-Za-z0-9._:-]{4,140}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "registry_record",
              "source_snapshot",
              "review_record",
              "conflict_witness",
              "tool_attestation",
              "policy_manifest"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "evidence_sha256", "captured_at"],
        "title": "FreshnessEvidenceRef",
        "type": "object"
      },
      "FreshnessFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "pattern": "^freshness_[a-z0-9_]{3,100}$",
            "title": "Code",
            "type": "string"
          },
          "dependency_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dependency Id"
          },
          "dependency_kind": {
            "anyOf": [
              {
                "enum": ["source", "claim", "citation", "standard", "objective", "tool", "policy"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dependency Kind"
          },
          "detail": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "evidence_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Evidence Ids",
            "type": "array"
          },
          "severity": {
            "enum": ["info", "warning", "blocking", "unknown"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "severity", "detail"],
        "title": "FreshnessFinding",
        "type": "object"
      },
      "FreshnessPropagationDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["allow", "warn", "block"],
            "title": "Action",
            "type": "string"
          },
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "declared_use": {
            "title": "Declared Use",
            "type": "boolean"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "surface": {
            "enum": ["tutor_prompt", "assessment", "build", "publication", "delivery"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["surface", "declared_use", "allowed", "action", "reason_codes"],
        "title": "FreshnessPropagationDecision",
        "type": "object"
      },
      "FreshnessRequest": {
        "additionalProperties": false,
        "properties": {
          "carried": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CarriedSignoff"
            },
            "maxItems": 200,
            "title": "Carried",
            "type": "array"
          },
          "change": {
            "$ref": "#/components/schemas/ContentChange"
          },
          "descriptor": {
            "$ref": "#/components/schemas/ContentDescriptor"
          },
          "gate_results": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewGateResult"
            },
            "maxItems": 40,
            "title": "Gate Results",
            "type": "array"
          },
          "overlay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InstitutionOverlay"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviewers": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewerProfile"
            },
            "maxItems": 200,
            "title": "Reviewers",
            "type": "array"
          },
          "signoffs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DimensionSignoff"
            },
            "maxItems": 200,
            "title": "Signoffs",
            "type": "array"
          }
        },
        "required": ["descriptor", "change"],
        "title": "FreshnessRequest",
        "type": "object"
      },
      "FreshnessResponse": {
        "additionalProperties": false,
        "properties": {
          "carried": {
            "items": {
              "$ref": "#/components/schemas/CarriedSignoff"
            },
            "title": "Carried",
            "type": "array"
          },
          "invalidated": {
            "items": {
              "$ref": "#/components/schemas/SignoffInvalidation"
            },
            "title": "Invalidated",
            "type": "array"
          }
        },
        "required": ["carried", "invalidated"],
        "title": "FreshnessResponse",
        "type": "object"
      },
      "FreshnessReviewWindow": {
        "additionalProperties": false,
        "properties": {
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          }
        },
        "required": ["reviewed_at", "due_at", "expires_at", "evaluated_at"],
        "title": "FreshnessReviewWindow",
        "type": "object"
      },
      "FsrsInput": {
        "additionalProperties": false,
        "properties": {
          "desired_retention_basis_points": {
            "maximum": 9999.0,
            "minimum": 1.0,
            "title": "Desired Retention Basis Points",
            "type": "integer"
          },
          "difficulty_x1000": {
            "maximum": 10000.0,
            "minimum": 1000.0,
            "title": "Difficulty X1000",
            "type": "integer"
          },
          "elapsed_days_since_last_review": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Elapsed Days Since Last Review",
            "type": "integer"
          },
          "maximum_review_age_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Maximum Review Age Days",
            "type": "integer"
          },
          "minimum_reviews": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Minimum Reviews",
            "type": "integer"
          },
          "review_history": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FsrsReview"
            },
            "maxItems": 1000,
            "title": "Review History",
            "type": "array"
          },
          "stability_days_x1000": {
            "minimum": 1.0,
            "title": "Stability Days X1000",
            "type": "integer"
          }
        },
        "required": [
          "stability_days_x1000",
          "difficulty_x1000",
          "elapsed_days_since_last_review",
          "desired_retention_basis_points",
          "minimum_reviews",
          "maximum_review_age_days"
        ],
        "title": "FsrsInput",
        "type": "object"
      },
      "FsrsResult": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/ModelApplicability"
          },
          "desired_retention_basis_points": {
            "maximum": 9999.0,
            "minimum": 1.0,
            "title": "Desired Retention Basis Points",
            "type": "integer"
          },
          "difficulty_x1000": {
            "maximum": 10000.0,
            "minimum": 1000.0,
            "title": "Difficulty X1000",
            "type": "integer"
          },
          "elapsed_days_since_last_review": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Elapsed Days Since Last Review",
            "type": "integer"
          },
          "identity": {
            "$ref": "#/components/schemas/ModelRunIdentity"
          },
          "next_interval_days": {
            "maximum": 36500.0,
            "minimum": 0.0,
            "title": "Next Interval Days",
            "type": "integer"
          },
          "ready": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready"
          },
          "retrievability_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Retrievability Basis Points",
            "type": "integer"
          },
          "review_history": {
            "items": {
              "$ref": "#/components/schemas/FsrsReview"
            },
            "maxItems": 1000,
            "title": "Review History",
            "type": "array"
          },
          "stability_days_x1000": {
            "minimum": 1.0,
            "title": "Stability Days X1000",
            "type": "integer"
          }
        },
        "required": [
          "identity",
          "applicability",
          "stability_days_x1000",
          "difficulty_x1000",
          "elapsed_days_since_last_review",
          "retrievability_basis_points",
          "desired_retention_basis_points",
          "next_interval_days",
          "review_history",
          "ready"
        ],
        "title": "FsrsResult",
        "type": "object"
      },
      "FsrsReview": {
        "additionalProperties": false,
        "properties": {
          "difficulty_after_x1000": {
            "maximum": 10000.0,
            "minimum": 1000.0,
            "title": "Difficulty After X1000",
            "type": "integer"
          },
          "elapsed_days": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Elapsed Days",
            "type": "integer"
          },
          "ordinal": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "rating": {
            "enum": ["again", "hard", "good", "easy"],
            "title": "Rating",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "stability_after_days_x1000": {
            "minimum": 1.0,
            "title": "Stability After Days X1000",
            "type": "integer"
          }
        },
        "required": [
          "ordinal",
          "reviewed_at",
          "rating",
          "elapsed_days",
          "stability_after_days_x1000",
          "difficulty_after_x1000"
        ],
        "title": "FsrsReview",
        "type": "object"
      },
      "GapMapReport": {
        "additionalProperties": false,
        "description": "The whole diff, and the counts a reviewer will quote.",
        "properties": {
          "by_medium": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Medium",
            "type": "object"
          },
          "by_verdict": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Verdict",
            "type": "object"
          },
          "contracts": {
            "items": {
              "$ref": "#/components/schemas/ContractRow"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Contracts",
            "type": "array"
          },
          "schema_version": {
            "const": "8.1.0",
            "default": "8.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tables": {
            "items": {
              "$ref": "#/components/schemas/TableFacts"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Tables",
            "type": "array"
          },
          "tables_in_metadata": {
            "minimum": 1.0,
            "title": "Tables In Metadata",
            "type": "integer"
          },
          "tables_reached_by_a_contract": {
            "minimum": 0.0,
            "title": "Tables Reached By A Contract",
            "type": "integer"
          },
          "tables_without_tenant_index": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "Tables Without Tenant Index",
            "type": "array"
          },
          "unclaimed_tables": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "Unclaimed Tables",
            "type": "array"
          }
        },
        "required": [
          "contracts",
          "tables",
          "by_verdict",
          "by_medium",
          "tables_in_metadata",
          "tables_reached_by_a_contract"
        ],
        "title": "GapMapReport",
        "type": "object"
      },
      "GateEvidence": {
        "additionalProperties": false,
        "description": "The material the person was shown. Its digest is what the signoff binds.",
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": ["report", "measurement", "review_record", "manifest", "attestation"],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "content_sha256"],
        "title": "GateEvidence",
        "type": "object"
      },
      "GateFloor": {
        "additionalProperties": false,
        "description": "A machine gate that must hold before a human signoff in the dimension counts.",
        "properties": {
          "gate": {
            "enum": [
              "answer_key_verification",
              "grounding",
              "readability",
              "accessibility_completeness",
              "dif_analysis",
              "rights_clearance",
              "publication_render"
            ],
            "title": "Gate",
            "type": "string"
          },
          "minimum_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Score",
            "type": "integer"
          }
        },
        "required": ["gate", "minimum_score"],
        "title": "GateFloor",
        "type": "object"
      },
      "GateInvalidation": {
        "additionalProperties": false,
        "description": "A gate stopped counting. The human decisions are kept, not deleted.",
        "properties": {
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "gate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gate Id",
            "type": "string"
          },
          "kind": {
            "enum": ["subject_revised", "evidence_replaced", "policy_changed", "expired"],
            "title": "Kind",
            "type": "string"
          },
          "preserved_signoff_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Preserved Signoff Ids",
            "type": "array"
          },
          "superseded_by_gate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Superseded By Gate Id"
          }
        },
        "required": ["gate_id", "kind", "at", "detail"],
        "title": "GateInvalidation",
        "type": "object"
      },
      "GateOutcome": {
        "additionalProperties": false,
        "properties": {
          "evidence_ref": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "gate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gate Id",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail", "unavailable", "error", "abstained"],
            "title": "Outcome",
            "type": "string"
          },
          "verifier_kind": {
            "enum": [
              "deterministic_process",
              "deterministic_code",
              "deterministic_math",
              "grounding_gate",
              "calibrated_panel"
            ],
            "title": "Verifier Kind",
            "type": "string"
          }
        },
        "required": ["gate_id", "verifier_kind", "outcome", "evidence_ref"],
        "title": "GateOutcome",
        "type": "object"
      },
      "GateRefusal": {
        "additionalProperties": false,
        "properties": {
          "actor_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor Kind"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "actor_is_not_human",
              "actor_is_delegated",
              "actor_is_impersonated",
              "not_interactive",
              "step_up_required",
              "role_not_eligible",
              "conflict_not_declared",
              "conflict_declared",
              "subject_changed",
              "evidence_changed",
              "gate_expired",
              "already_signed",
              "quorum_not_met",
              "signoff_copied",
              "gate_policy_changed"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "GateRefusal",
        "type": "object"
      },
      "GateRerun": {
        "additionalProperties": false,
        "description": "One gate scheduled against the draft acceptance produced.",
        "properties": {
          "against_draft": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Against Draft",
            "type": "string"
          },
          "gate": {
            "enum": [
              "gate:grounding",
              "gate:accessibility",
              "gate:answer-leakage",
              "gate:reading-level",
              "gate:rights"
            ],
            "title": "Gate",
            "type": "string"
          },
          "scheduled_at": {
            "format": "date-time",
            "title": "Scheduled At",
            "type": "string"
          },
          "status": {
            "const": "pending",
            "default": "pending",
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["gate", "against_draft", "scheduled_at"],
        "title": "GateRerun",
        "type": "object"
      },
      "GateSubject": {
        "additionalProperties": false,
        "description": "Exactly what is being signed off, at exactly which revision.",
        "properties": {
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["assessment", "grade_set", "credential", "model", "finding", "export"],
            "title": "Subject Kind",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["subject_kind", "subject_id", "revision_sha256", "tenant_id"],
        "title": "GateSubject",
        "type": "object"
      },
      "GeneratedAssessmentQuestionResponse": {
        "properties": {
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "explanation": {
            "title": "Explanation",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "options": {
            "items": {
              "type": "string"
            },
            "title": "Options",
            "type": "array"
          },
          "prompt": {
            "title": "Prompt",
            "type": "string"
          },
          "question_type": {
            "enum": ["multiple_choice", "short_answer"],
            "title": "Question Type",
            "type": "string"
          },
          "retrieval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["id", "prompt", "question_type", "explanation"],
        "title": "GeneratedAssessmentQuestionResponse",
        "type": "object"
      },
      "GeneratedAssessmentResponse": {
        "properties": {
          "assessment_type": {
            "enum": ["quiz", "practice"],
            "title": "Assessment Type",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "questions": {
            "items": {
              "$ref": "#/components/schemas/GeneratedAssessmentQuestionResponse"
            },
            "title": "Questions",
            "type": "array"
          },
          "rubric_treatment": {
            "default": "foundational",
            "enum": ["advanced", "foundational"],
            "title": "Rubric Treatment",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "description", "assessment_type"],
        "title": "GeneratedAssessmentResponse",
        "type": "object"
      },
      "GeneratedCandidate": {
        "additionalProperties": false,
        "properties": {
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "failure_code": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Code"
          },
          "failure_detail": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure Detail"
          },
          "lineage": {
            "$ref": "#/components/schemas/CandidateLineage"
          },
          "ordinal": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "output_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Sha256"
          },
          "output_text": {
            "anyOf": [
              {
                "maxLength": 200000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Text"
          },
          "state": {
            "enum": ["eligible", "malformed", "refused", "generation_failed"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["candidate_id", "ordinal", "state", "lineage"],
        "title": "GeneratedCandidate",
        "type": "object"
      },
      "GeneratedLessonResponse": {
        "properties": {
          "artifact_status": {
            "default": "template_draft",
            "enum": ["generated_draft", "template_draft"],
            "title": "Artifact Status",
            "type": "string"
          },
          "authoring_mode": {
            "default": "deterministic_template",
            "enum": ["model_generated", "deterministic_template"],
            "title": "Authoring Mode",
            "type": "string"
          },
          "content": {
            "title": "Content",
            "type": "string"
          },
          "content_type": {
            "const": "text",
            "title": "Content Type",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "estimated_minutes": {
            "minimum": 0.0,
            "title": "Estimated Minutes",
            "type": "integer"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "model_evidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceLessonModelEvidenceResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "quality_evidence_scope": {
            "default": "structure_only",
            "enum": ["retrieval_grounded_unverified", "structure_only"],
            "title": "Quality Evidence Scope",
            "type": "string"
          },
          "release_eligible": {
            "const": false,
            "default": false,
            "title": "Release Eligible",
            "type": "boolean"
          },
          "retrieval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "template_fallback_reason": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Template Fallback Reason"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "description", "content_type", "content", "estimated_minutes"],
        "title": "GeneratedLessonResponse",
        "type": "object"
      },
      "GeneratedModuleResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/GeneratedLessonResponse"
            },
            "title": "Lessons",
            "type": "array"
          },
          "prerequisite_graph_treatment": {
            "default": "bounded_primer",
            "enum": ["full", "bounded_primer"],
            "title": "Prerequisite Graph Treatment",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "description"],
        "title": "GeneratedModuleResponse",
        "type": "object"
      },
      "GeneratedStudyArtifactResponse": {
        "properties": {
          "artifact_type": {
            "enum": ["study_guide", "flashcards", "quiz_review"],
            "title": "Artifact Type",
            "type": "string"
          },
          "content": {
            "title": "Content",
            "type": "string"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "retrieval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "artifact_type", "title", "content"],
        "title": "GeneratedStudyArtifactResponse",
        "type": "object"
      },
      "GenerationBody": {
        "additionalProperties": false,
        "description": "The request, plus the context the server is willing to be handed.\n\nWhat of it is actually read is decided by the operation's grants, so a\ncaller adding `answer_key` here achieves nothing except sending it.",
        "properties": {
          "available": {
            "additionalProperties": true,
            "default": {},
            "title": "Available",
            "type": "object"
          },
          "request": {
            "$ref": "#/components/schemas/GenerationRequest"
          }
        },
        "required": ["request"],
        "title": "GenerationBody",
        "type": "object"
      },
      "GenerationFailure": {
        "additionalProperties": false,
        "description": "Why it failed, with nothing in it that came from upstream.",
        "properties": {
          "correlation_id": {
            "format": "uuid",
            "title": "Correlation Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 300,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "failure_class": {
            "enum": [
              "not_configured",
              "provider_unavailable",
              "malformed_output",
              "upstream_error",
              "provider_refused",
              "timed_out",
              "rate_limited",
              "budget_exhausted",
              "cancelled"
            ],
            "title": "Failure Class",
            "type": "string"
          },
          "retryable": {
            "title": "Retryable",
            "type": "boolean"
          },
          "status": {
            "maximum": 599.0,
            "minimum": 400.0,
            "title": "Status",
            "type": "integer"
          }
        },
        "required": ["failure_class", "status", "detail", "correlation_id", "retryable"],
        "title": "GenerationFailure",
        "type": "object"
      },
      "GenerationJob": {
        "additionalProperties": false,
        "description": "One durable job. Its state is the only thing that moves.",
        "properties": {
          "context": {
            "$ref": "#/components/schemas/ResolvedContext"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "estimate": {
            "$ref": "#/components/schemas/CostEstimate"
          },
          "failure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GenerationFailure"
              },
              {
                "type": "null"
              }
            ]
          },
          "fence_token": {
            "minimum": 1.0,
            "title": "Fence Token",
            "type": "integer"
          },
          "job_id": {
            "format": "uuid",
            "title": "Job Id",
            "type": "string"
          },
          "proposal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GenerationProposal"
              },
              {
                "type": "null"
              }
            ]
          },
          "request": {
            "$ref": "#/components/schemas/GenerationRequest"
          },
          "schema_version": {
            "const": "8.7.0",
            "default": "8.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": ["estimated", "queued", "running", "succeeded", "failed", "cancelled"],
            "title": "State",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "tenant_id",
          "request",
          "context",
          "estimate",
          "state",
          "created_at",
          "updated_at",
          "fence_token"
        ],
        "title": "GenerationJob",
        "type": "object"
      },
      "GenerationProposal": {
        "additionalProperties": false,
        "description": "The result. It is a suggestion, and there is no field that applies it.\n\nNothing here names a revision to write, a state to move to, or an approval.\nAccepting a proposal is a separate act by a person through the M8.6 surface,\nwhich is why this type has no way to express having done it.",
        "properties": {
          "applied": {
            "const": false,
            "default": false,
            "title": "Applied",
            "type": "boolean"
          },
          "approved": {
            "const": false,
            "default": false,
            "title": "Approved",
            "type": "boolean"
          },
          "attribution": {
            "$ref": "#/components/schemas/ProviderAttribution"
          },
          "content": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "operation": {
            "enum": [
              "draft_lesson_section",
              "suggest_distractors",
              "rewrite_for_reading_level",
              "summarise_source",
              "propose_rubric_criteria"
            ],
            "title": "Operation",
            "type": "string"
          },
          "proposal_id": {
            "format": "uuid",
            "title": "Proposal Id",
            "type": "string"
          },
          "subject_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": [
              "course",
              "lesson",
              "item",
              "rubric",
              "source",
              "objective",
              "standard",
              "review",
              "release"
            ],
            "title": "Subject Kind",
            "type": "string"
          },
          "subject_revision": {
            "minimum": 1.0,
            "title": "Subject Revision",
            "type": "integer"
          }
        },
        "required": [
          "proposal_id",
          "operation",
          "subject_kind",
          "subject_id",
          "subject_revision",
          "content",
          "attribution"
        ],
        "title": "GenerationProposal",
        "type": "object"
      },
      "GenerationProvenance": {
        "additionalProperties": false,
        "description": "Who built this, when, and from which code.",
        "properties": {
          "actor_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Actor Digest",
            "type": "string"
          },
          "actor_role": {
            "enum": [
              "institution_auditor",
              "registrar",
              "data_protection_officer",
              "quality_lead",
              "learner"
            ],
            "title": "Actor Role",
            "type": "string"
          },
          "builder_version": {
            "const": "7.14.0",
            "default": "7.14.0",
            "title": "Builder Version",
            "type": "string"
          },
          "commit_sha": {
            "pattern": "^[0-9a-f]{7,40}$",
            "title": "Commit Sha",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          }
        },
        "required": ["actor_digest", "actor_role", "generated_at", "commit_sha"],
        "title": "GenerationProvenance",
        "type": "object"
      },
      "GenerationReport": {
        "additionalProperties": false,
        "properties": {
          "diversity_satisfied": {
            "title": "Diversity Satisfied",
            "type": "boolean"
          },
          "duplicate_candidate_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Duplicate Candidate Ids",
            "type": "array"
          },
          "eligible_count": {
            "maximum": 64.0,
            "minimum": 0.0,
            "title": "Eligible Count",
            "type": "integer"
          },
          "every_generated_candidate_retained": {
            "const": true,
            "default": true,
            "title": "Every Generated Candidate Retained",
            "type": "boolean"
          },
          "generated_count": {
            "maximum": 64.0,
            "minimum": 0.0,
            "title": "Generated Count",
            "type": "integer"
          },
          "preserved_non_eligible_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Preserved Non Eligible Ids",
            "type": "array"
          },
          "requested_count": {
            "maximum": 64.0,
            "minimum": 2.0,
            "title": "Requested Count",
            "type": "integer"
          },
          "spent_cents": {
            "minimum": 0.0,
            "title": "Spent Cents",
            "type": "integer"
          },
          "stop_reason": {
            "enum": [
              "count_reached",
              "budget_exhausted",
              "deadline_reached",
              "generator_refused",
              "diversity_unmet"
            ],
            "title": "Stop Reason",
            "type": "string"
          },
          "unique_output_count": {
            "maximum": 64.0,
            "minimum": 0.0,
            "title": "Unique Output Count",
            "type": "integer"
          }
        },
        "required": [
          "requested_count",
          "generated_count",
          "eligible_count",
          "unique_output_count",
          "duplicate_candidate_ids",
          "preserved_non_eligible_ids",
          "spent_cents",
          "stop_reason",
          "diversity_satisfied"
        ],
        "title": "GenerationReport",
        "type": "object"
      },
      "GenerationRequest": {
        "additionalProperties": false,
        "description": "What a caller asks for. It does not name its own grants or its own model.",
        "properties": {
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "instruction": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Instruction",
            "type": "string"
          },
          "max_cost_cents": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Max Cost Cents",
            "type": "integer"
          },
          "operation": {
            "enum": [
              "draft_lesson_section",
              "suggest_distractors",
              "rewrite_for_reading_level",
              "summarise_source",
              "propose_rubric_criteria"
            ],
            "title": "Operation",
            "type": "string"
          },
          "subject_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": [
              "course",
              "lesson",
              "item",
              "rubric",
              "source",
              "objective",
              "standard",
              "review",
              "release"
            ],
            "title": "Subject Kind",
            "type": "string"
          },
          "subject_revision": {
            "minimum": 1.0,
            "title": "Subject Revision",
            "type": "integer"
          }
        },
        "required": [
          "operation",
          "subject_kind",
          "subject_id",
          "subject_revision",
          "instruction",
          "idempotency_key",
          "max_cost_cents"
        ],
        "title": "GenerationRequest",
        "type": "object"
      },
      "GeneratorWitness": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "generator_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Generator Id",
            "type": "string"
          },
          "model_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Model Version",
            "type": "string"
          },
          "prompt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Prompt Id",
            "type": "string"
          },
          "prompt_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Prompt Revision Id",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          }
        },
        "required": [
          "generator_id",
          "provider",
          "model_id",
          "model_version",
          "prompt_id",
          "prompt_revision_id",
          "prompt_sha256",
          "config_sha256"
        ],
        "title": "GeneratorWitness",
        "type": "object"
      },
      "GoldSetItem": {
        "additionalProperties": false,
        "properties": {
          "content_kind": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Content Kind",
            "type": "string"
          },
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "expected_label": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Label",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "subgroup": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Subgroup",
            "type": "string"
          }
        },
        "required": ["item_id", "criterion_id", "expected_label", "subgroup", "content_kind"],
        "title": "GoldSetItem",
        "type": "object"
      },
      "GoldSetPrediction": {
        "additionalProperties": false,
        "description": "One evaluator's recorded answer to one gold-set item.",
        "properties": {
          "confidence_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence Basis Points"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "outcome": {
            "enum": ["scored", "abstained", "timeout", "error"],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": ["item_id", "outcome"],
        "title": "GoldSetPrediction",
        "type": "object"
      },
      "GoldSetRevision": {
        "additionalProperties": false,
        "properties": {
          "gold_set_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gold Set Id",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/GoldSetItem"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Items",
            "type": "array"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": ["gold_set_id", "revision_id", "revision_sha256", "items"],
        "title": "GoldSetRevision",
        "type": "object"
      },
      "GovernanceApproval": {
        "additionalProperties": false,
        "description": "One approver's sign-off on one exact candidate digest.",
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "approved_by_role": {
            "enum": ["data_governance", "registrar", "programme_director"],
            "title": "Approved By Role",
            "type": "string"
          },
          "candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Sha256",
            "type": "string"
          }
        },
        "required": ["approved_by", "approved_by_role", "approved_at", "candidate_sha256"],
        "title": "GovernanceApproval",
        "type": "object"
      },
      "GovernanceProbe": {
        "additionalProperties": false,
        "description": "One attempt to escape the pre-registration, and its refusal.",
        "properties": {
          "attempted": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          }
        },
        "required": ["probe_id", "attempted", "refused", "detail"],
        "title": "GovernanceProbe",
        "type": "object"
      },
      "GovernedMediaRevision": {
        "additionalProperties": false,
        "properties": {
          "asset_id": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision": {
            "minimum": 1.0,
            "title": "Asset Revision",
            "type": "integer"
          },
          "asset_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Asset Revision Sha256",
            "type": "string"
          },
          "authority_ref": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Authority Ref",
            "type": "string"
          },
          "binding_id": {
            "pattern": "^media:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Binding Id",
            "type": "string"
          },
          "delivery_locator": {
            "pattern": "^asset://[A-Za-z0-9._:/-]{3,500}$",
            "title": "Delivery Locator",
            "type": "string"
          },
          "media_kind": {
            "enum": ["image", "audio", "video", "model_3d", "stimulus"],
            "title": "Media Kind",
            "type": "string"
          },
          "provenance_ref": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Provenance Ref",
            "type": "string"
          },
          "rendition_id": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          },
          "rendition_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendition Sha256",
            "type": "string"
          },
          "rights_ref": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Rights Ref",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "stimulus", "reference", "feedback"],
            "title": "Role",
            "type": "string"
          },
          "source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Ref",
            "type": "string"
          }
        },
        "required": [
          "binding_id",
          "media_kind",
          "role",
          "asset_id",
          "asset_revision",
          "asset_revision_sha256",
          "rendition_id",
          "rendition_sha256",
          "delivery_locator",
          "authority_ref",
          "source_ref",
          "rights_ref",
          "provenance_ref"
        ],
        "title": "GovernedMediaRevision",
        "type": "object"
      },
      "GovernedStimulusAsset": {
        "additionalProperties": false,
        "properties": {
          "asset_id": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision": {
            "minimum": 1.0,
            "title": "Asset Revision",
            "type": "integer"
          },
          "asset_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Asset Revision Sha256",
            "type": "string"
          },
          "authority_ref": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Authority Ref",
            "type": "string"
          },
          "delivery_locator": {
            "pattern": "^asset://[A-Za-z0-9._:/-]{3,500}$",
            "title": "Delivery Locator",
            "type": "string"
          },
          "media_kind": {
            "enum": ["image", "audio", "video", "model_3d", "document", "text"],
            "title": "Media Kind",
            "type": "string"
          },
          "provenance_ref": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Provenance Ref",
            "type": "string"
          },
          "rendition_id": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          },
          "rendition_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendition Sha256",
            "type": "string"
          },
          "rights_ref": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Rights Ref",
            "type": "string"
          }
        },
        "required": [
          "media_kind",
          "asset_id",
          "asset_revision",
          "asset_revision_sha256",
          "rendition_id",
          "rendition_sha256",
          "delivery_locator",
          "authority_ref",
          "rights_ref",
          "provenance_ref"
        ],
        "title": "GovernedStimulusAsset",
        "type": "object"
      },
      "GradeAggregateRequest": {
        "additionalProperties": false,
        "properties": {
          "aggregate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Aggregate Id",
            "type": "string"
          },
          "inputs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AggregateInput"
            },
            "maxItems": 500,
            "title": "Inputs",
            "type": "array"
          }
        },
        "required": ["aggregate_id"],
        "title": "GradeAggregateRequest",
        "type": "object"
      },
      "GradeBinding": {
        "additionalProperties": false,
        "description": "What an external line item is about, in Metis's own terms.\n\nThe registration this whole module turns on. `item_revision_sha256` is the\nfield that cannot be derived from anything the protocol sends, and `scale`\nis the field that lets a disagreement be caught: a line item whose\n`score_maximum` is not the bound scale's maximum is measuring something\nelse, and silently rescaling it would be the \"silent mapping\" M10.7.f\nexists to block.",
        "properties": {
          "external_line_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "External Line Item Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "registered_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registered By Digest",
            "type": "string"
          },
          "scale": {
            "$ref": "#/components/schemas/GradeScale"
          },
          "schema_version": {
            "const": "10.7.0",
            "default": "10.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "system": {
            "enum": ["lti_ags", "oneroster"],
            "title": "System",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "system",
          "external_line_item_id",
          "item_revision_sha256",
          "scale",
          "registered_by_digest",
          "registered_at"
        ],
        "title": "GradeBinding",
        "type": "object"
      },
      "GradeBindingRequest": {
        "additionalProperties": false,
        "description": "A registration as a caller sends it.\n\nNo tenant and no registrant: both are decided server-side from the caller,\nfor the reason `AppendAuthorization` gives \u2014 a caller who could name the\ntenant could bind somebody else's line item.",
        "properties": {
          "external_line_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "External Line Item Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "scale": {
            "$ref": "#/components/schemas/GradeScale"
          },
          "system": {
            "enum": ["lti_ags", "oneroster"],
            "title": "System",
            "type": "string"
          }
        },
        "required": ["system", "external_line_item_id", "item_revision_sha256", "scale"],
        "title": "GradeBindingRequest",
        "type": "object"
      },
      "GradeDecisionRequest": {
        "additionalProperties": false,
        "description": "What a caller may say about a decision.\n\n`prior_decisions` USED TO BE HERE AND IS DELIBERATELY GONE. It defaulted to\nan empty tuple, so the reviewer who moved a request on approved it by not\nmentioning that they had. The decisions already recorded against a request\nare now read from the store, which is the one account of them the caller\ncannot write. Sending the field is REFUSED rather than ignored: a silently\ndropped field would leave a caller believing they had disclosed something.",
        "properties": {
          "current_item_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Item Revision Sha256"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "history": {
            "$ref": "#/components/schemas/GradeHistory"
          },
          "kind": {
            "enum": ["approve", "reject", "request_changes"],
            "title": "Kind",
            "type": "string"
          },
          "notice": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LearnerNotice"
              },
              {
                "type": "null"
              }
            ]
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "request": {
            "$ref": "#/components/schemas/CorrectionRequest"
          }
        },
        "required": ["request", "history", "kind", "expected_version", "rationale"],
        "title": "GradeDecisionRequest",
        "type": "object"
      },
      "GradeDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CorrectionDecision"
              },
              {
                "type": "null"
              }
            ]
          },
          "history": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GradeHistory"
              },
              {
                "type": "null"
              }
            ]
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CorrectionRefusal"
            },
            "title": "Refusals",
            "type": "array"
          },
          "request": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CorrectionRequest"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "GradeDecisionResponse",
        "type": "object"
      },
      "GradeEvent": {
        "additionalProperties": false,
        "description": "One thing that happened to a grade. Events are appended; none is ever edited.",
        "properties": {
          "actor_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Actor Digest",
            "type": "string"
          },
          "actor_role": {
            "enum": ["scorer", "reviewer", "approver", "system"],
            "title": "Actor Role",
            "type": "string"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "attempt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Attempt Id",
            "type": "string"
          },
          "corrects_event_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corrects Event Id"
          },
          "event_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Event Id",
            "type": "string"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["scored", "rescored", "corrected", "voided", "restored"],
            "title": "Kind",
            "type": "string"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "scale_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Scale Id",
            "type": "string"
          },
          "schema_version": {
            "const": "7.10.0",
            "default": "7.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": [
          "event_id",
          "grade_id",
          "sequence",
          "kind",
          "scale_id",
          "actor_digest",
          "actor_role",
          "attempt_id",
          "item_revision_sha256",
          "at",
          "reason"
        ],
        "title": "GradeEvent",
        "type": "object"
      },
      "GradeHistory": {
        "additionalProperties": false,
        "description": "Every event on one grade, in order. The current value is derived, never stored.",
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/GradeEvent"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Events",
            "type": "array"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "released_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Released At"
          },
          "scale": {
            "$ref": "#/components/schemas/GradeScale"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["grade_id", "tenant_id", "learner_digest", "scale", "events"],
        "title": "GradeHistory",
        "type": "object"
      },
      "GradeProjection": {
        "additionalProperties": false,
        "description": "One grade as one audience sees it at one moment. Withheld fields are absent.",
        "properties": {
          "annotations": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Annotations"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "audience": {
            "enum": ["learner", "guardian", "teacher", "assessor", "admin"],
            "title": "Audience",
            "type": "string"
          },
          "corrections": {
            "anyOf": [
              {
                "items": {
                  "maxLength": 160,
                  "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corrections"
          },
          "current_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Value"
          },
          "fields_withheld": {
            "items": {
              "enum": [
                "value.current",
                "value.history",
                "evidence.response",
                "evidence.rubric",
                "evidence.annotations",
                "scorer.identity",
                "learner.identity",
                "correction.history",
                "policy.scale"
              ],
              "type": "string"
            },
            "title": "Fields Withheld",
            "type": "array"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "history": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/GradeEvent"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "History"
          },
          "learner_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Learner Digest"
          },
          "release_state": {
            "enum": ["before_release", "after_release"],
            "title": "Release State",
            "type": "string"
          },
          "response_evidence_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Evidence Id"
          },
          "rubric_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rubric Id"
          },
          "scale": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GradeScale"
              },
              {
                "type": "null"
              }
            ]
          },
          "scorer_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scorer Digest"
          },
          "viewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Viewer Digest",
            "type": "string"
          }
        },
        "required": [
          "grade_id",
          "audience",
          "viewer_digest",
          "at",
          "release_state",
          "fields_withheld"
        ],
        "title": "GradeProjection",
        "type": "object"
      },
      "GradeProjectionRequest": {
        "additionalProperties": false,
        "properties": {
          "annotations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Annotations",
            "type": "array"
          },
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "history": {
            "$ref": "#/components/schemas/GradeHistory"
          },
          "response_evidence_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Evidence Id"
          },
          "rubric_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rubric Id"
          }
        },
        "required": ["history"],
        "title": "GradeProjectionRequest",
        "type": "object"
      },
      "GradePropagationRequest": {
        "additionalProperties": false,
        "properties": {
          "history": {
            "$ref": "#/components/schemas/GradeHistory"
          },
          "preserved_appeal_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Preserved Appeal Ids",
            "type": "array"
          },
          "preserved_view_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Preserved View Ids",
            "type": "array"
          },
          "targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PropagationTarget"
            },
            "maxItems": 50,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": ["history"],
        "title": "GradePropagationRequest",
        "type": "object"
      },
      "GradeQueueRequest": {
        "additionalProperties": false,
        "properties": {
          "histories": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GradeHistory"
            },
            "maxItems": 200,
            "title": "Histories",
            "type": "array"
          },
          "requests": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CorrectionRequest"
            },
            "maxItems": 200,
            "title": "Requests",
            "type": "array"
          }
        },
        "title": "GradeQueueRequest",
        "type": "object"
      },
      "GradeQueueResponse": {
        "additionalProperties": false,
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CorrectionQueueItem"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": ["items"],
        "title": "GradeQueueResponse",
        "type": "object"
      },
      "GradeRecord": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Course Id",
            "type": "string"
          },
          "grade_code": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Grade Code",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          }
        },
        "required": ["course_id", "grade_code", "recorded_at"],
        "title": "GradeRecord",
        "type": "object"
      },
      "GradeScale": {
        "additionalProperties": false,
        "description": "What a value on this grade may be. A value outside it is not a grade.",
        "properties": {
          "decimals": {
            "maximum": 3.0,
            "minimum": 0.0,
            "title": "Decimals",
            "type": "integer"
          },
          "maximum": {
            "title": "Maximum",
            "type": "number"
          },
          "minimum": {
            "title": "Minimum",
            "type": "number"
          },
          "scale_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Scale Id",
            "type": "string"
          }
        },
        "required": ["scale_id", "minimum", "maximum", "decimals"],
        "title": "GradeScale",
        "type": "object"
      },
      "GradebookCorrectionReport": {
        "additionalProperties": false,
        "properties": {
          "assessor_never_sees_the_learner": {
            "title": "Assessor Never Sees The Learner",
            "type": "boolean"
          },
          "decision_matrix_cells": {
            "minimum": 1.0,
            "title": "Decision Matrix Cells",
            "type": "integer"
          },
          "every_refusal_reason_reached": {
            "title": "Every Refusal Reason Reached",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "guard_probes": {
            "items": {
              "$ref": "#/components/schemas/GuardProbe"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Guard Probes",
            "type": "array"
          },
          "history_is_append_only": {
            "title": "History Is Append Only",
            "type": "boolean"
          },
          "no_value_before_release_for_learner": {
            "title": "No Value Before Release For Learner",
            "type": "boolean"
          },
          "propagation_is_idempotent": {
            "title": "Propagation Is Idempotent",
            "type": "boolean"
          },
          "sample_aggregate": {
            "$ref": "#/components/schemas/AggregateResult"
          },
          "sample_decision": {
            "$ref": "#/components/schemas/CorrectionDecision"
          },
          "sample_projections": {
            "items": {
              "$ref": "#/components/schemas/GradeProjection"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Sample Projections",
            "type": "array"
          },
          "sample_propagation": {
            "$ref": "#/components/schemas/PropagationResult"
          },
          "sample_queue": {
            "items": {
              "$ref": "#/components/schemas/CorrectionQueueItem"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sample Queue",
            "type": "array"
          },
          "schema_version": {
            "const": "7.10.0",
            "default": "7.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "visibility_cells": {
            "minimum": 1.0,
            "title": "Visibility Cells",
            "type": "integer"
          },
          "visibility_rows": {
            "items": {
              "$ref": "#/components/schemas/VisibilityRow"
            },
            "maxItems": 10,
            "minItems": 10,
            "title": "Visibility Rows",
            "type": "array"
          }
        },
        "required": [
          "generated_at",
          "visibility_cells",
          "visibility_rows",
          "no_value_before_release_for_learner",
          "assessor_never_sees_the_learner",
          "guard_probes",
          "every_refusal_reason_reached",
          "decision_matrix_cells",
          "history_is_append_only",
          "propagation_is_idempotent",
          "sample_queue",
          "sample_projections",
          "sample_decision",
          "sample_propagation",
          "sample_aggregate"
        ],
        "title": "GradebookCorrectionReport",
        "type": "object"
      },
      "GrantMatrixCell": {
        "additionalProperties": false,
        "properties": {
          "operation": {
            "enum": [
              "read_source_revision",
              "read_claim_revision",
              "read_course_revision",
              "read_item_revision",
              "read_rubric_revision",
              "read_standard_revision",
              "read_policy_revision",
              "read_config_revision",
              "read_learner_context_field",
              "search_corpus",
              "draft_proposal",
              "annotate_proposal",
              "run_static_check",
              "render_preview",
              "record_evidence"
            ],
            "title": "Operation",
            "type": "string"
          },
          "permitted": {
            "title": "Permitted",
            "type": "boolean"
          },
          "plan_kind": {
            "enum": ["curriculum", "item_writing", "verification", "accessibility", "tutoring"],
            "title": "Plan Kind",
            "type": "string"
          }
        },
        "required": ["plan_kind", "operation", "permitted"],
        "title": "GrantMatrixCell",
        "type": "object"
      },
      "GraphAnalysis": {
        "additionalProperties": false,
        "properties": {
          "acyclic": {
            "title": "Acyclic",
            "type": "boolean"
          },
          "choice_group_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Choice Group Ids",
            "type": "array"
          },
          "cycles": {
            "items": {
              "items": {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              "type": "array"
            },
            "maxItems": 100,
            "title": "Cycles",
            "type": "array"
          },
          "entry_node_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Entry Node Ids",
            "type": "array"
          },
          "every_required_node_reachable": {
            "title": "Every Required Node Reachable",
            "type": "boolean"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/GraphFinding"
            },
            "maxItems": 500,
            "title": "Findings",
            "type": "array"
          },
          "orphan_node_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Orphan Node Ids",
            "type": "array"
          },
          "terminal_node_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Terminal Node Ids",
            "type": "array"
          },
          "topological_order": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Topological Order",
            "type": "array"
          },
          "unreachable_node_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Unreachable Node Ids",
            "type": "array"
          }
        },
        "required": [
          "entry_node_ids",
          "terminal_node_ids",
          "topological_order",
          "cycles",
          "orphan_node_ids",
          "unreachable_node_ids",
          "choice_group_ids",
          "findings",
          "acyclic",
          "every_required_node_reachable"
        ],
        "title": "GraphAnalysis",
        "type": "object"
      },
      "GraphConceptState": {
        "additionalProperties": false,
        "properties": {
          "concept_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Concept Id",
            "type": "string"
          },
          "depends_on": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Depends On",
            "type": "array"
          },
          "state": {
            "enum": ["matched", "missing", "extra", "unvisited"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["concept_id", "state"],
        "title": "GraphConceptState",
        "type": "object"
      },
      "GraphConstraint": {
        "additionalProperties": false,
        "properties": {
          "constraint_id": {
            "pattern": "^graph:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Constraint Id",
            "type": "string"
          },
          "expected": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Expected",
            "type": "string"
          },
          "relation": {
            "enum": ["passes_through", "slope", "intercept", "domain", "range", "shape"],
            "title": "Relation",
            "type": "string"
          }
        },
        "required": ["constraint_id", "relation", "expected"],
        "title": "GraphConstraint",
        "type": "object"
      },
      "GraphCourseRecommendationResponse": {
        "description": "Graph-backed course recommendation derived from learner strengths.",
        "properties": {
          "action_label": {
            "title": "Action Label",
            "type": "string"
          },
          "action_path": {
            "title": "Action Path",
            "type": "string"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "focus_concepts": {
            "items": {
              "type": "string"
            },
            "title": "Focus Concepts",
            "type": "array"
          },
          "matched_concepts": {
            "items": {
              "type": "string"
            },
            "title": "Matched Concepts",
            "type": "array"
          },
          "package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Id"
          },
          "prerequisite_roots": {
            "items": {
              "type": "string"
            },
            "title": "Prerequisite Roots",
            "type": "array"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "recommendation_id": {
            "title": "Recommendation Id",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": [
          "recommendation_id",
          "course_id",
          "course_title",
          "score",
          "rationale",
          "action_path",
          "action_label"
        ],
        "title": "GraphCourseRecommendationResponse",
        "type": "object"
      },
      "GraphCourseSequencingExperimentResponse": {
        "description": "Graph-backed sequencing experiment for an in-progress course.",
        "properties": {
          "alternative_focus_concepts": {
            "items": {
              "type": "string"
            },
            "title": "Alternative Focus Concepts",
            "type": "array"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "experiment_id": {
            "title": "Experiment Id",
            "type": "string"
          },
          "focus_concept_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Focus Concept Id"
          },
          "focus_concept_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Focus Concept Label"
          },
          "focus_lesson_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Focus Lesson Title"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Package Id"
          },
          "path_steps": {
            "items": {
              "$ref": "#/components/schemas/GraphCourseSequencingStepResponse"
            },
            "title": "Path Steps",
            "type": "array"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "recommended_action_label": {
            "title": "Recommended Action Label",
            "type": "string"
          },
          "recommended_action_path": {
            "title": "Recommended Action Path",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "source_signals": {
            "items": {
              "type": "string"
            },
            "title": "Source Signals",
            "type": "array"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "variant": {
            "title": "Variant",
            "type": "string"
          }
        },
        "required": [
          "experiment_id",
          "variant",
          "status",
          "course_id",
          "course_title",
          "score",
          "rationale",
          "recommended_action_path",
          "recommended_action_label"
        ],
        "title": "GraphCourseSequencingExperimentResponse",
        "type": "object"
      },
      "GraphCourseSequencingStepResponse": {
        "description": "Grounded prerequisite step in a sequencing experiment.",
        "properties": {
          "concept_id": {
            "title": "Concept Id",
            "type": "string"
          },
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "depth": {
            "minimum": 0.0,
            "title": "Depth",
            "type": "integer"
          },
          "difficulty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Difficulty",
            "type": "number"
          },
          "importance": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Importance",
            "type": "number"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "mastery_state": {
            "title": "Mastery State",
            "type": "string"
          }
        },
        "required": [
          "concept_id",
          "label",
          "mastery_state",
          "difficulty",
          "importance",
          "depth",
          "confidence"
        ],
        "title": "GraphCourseSequencingStepResponse",
        "type": "object"
      },
      "GraphDefect": {
        "additionalProperties": false,
        "description": "Something wrong with the graph, and what would fix it.",
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "edge_ids": {
            "default": [],
            "items": {
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Edge Ids",
            "type": "array"
          },
          "kind": {
            "enum": [
              "cycle",
              "orphan",
              "unreachable",
              "missing_prerequisite",
              "standards_drift",
              "coverage_gap"
            ],
            "title": "Kind",
            "type": "string"
          },
          "node_ids": {
            "items": {
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Node Ids",
            "type": "array"
          },
          "remediation": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          }
        },
        "required": ["kind", "node_ids", "detail"],
        "title": "GraphDefect",
        "type": "object"
      },
      "GraphEdge": {
        "additionalProperties": false,
        "description": "One relationship, legal between its endpoints' kinds or unconstructible.",
        "properties": {
          "confirmed_by": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirmed By"
          },
          "edge_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Edge Id",
            "type": "string"
          },
          "from_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "From Id",
            "type": "string"
          },
          "from_kind": {
            "enum": ["objective", "concept", "standard"],
            "title": "From Kind",
            "type": "string"
          },
          "kind": {
            "enum": ["prerequisite", "coverage", "alignment"],
            "title": "Kind",
            "type": "string"
          },
          "provenance": {
            "enum": ["authored", "imported", "model_proposed", "derived"],
            "title": "Provenance",
            "type": "string"
          },
          "to_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "To Id",
            "type": "string"
          },
          "to_kind": {
            "enum": ["objective", "concept", "standard"],
            "title": "To Kind",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "edge_id",
          "kind",
          "from_id",
          "from_kind",
          "to_id",
          "to_kind",
          "provenance",
          "updated_at"
        ],
        "title": "GraphEdge",
        "type": "object"
      },
      "GraphFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "pathway.graph.cycle",
              "pathway.graph.self-edge",
              "pathway.graph.unknown-node",
              "pathway.graph.orphan-node",
              "pathway.graph.unreachable-node",
              "pathway.graph.choice-edge-without-group",
              "pathway.graph.choice-group-of-one",
              "pathway.graph.remedial-edge-into-required-node"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "node_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Node Ids",
            "type": "array"
          }
        },
        "required": ["code", "detail", "node_ids"],
        "title": "GraphFinding",
        "type": "object"
      },
      "GraphInput": {
        "additionalProperties": false,
        "properties": {
          "dependencies": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GraphConceptState"
            },
            "maxItems": 200,
            "title": "Dependencies",
            "type": "array"
          },
          "expected_path": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Expected Path",
            "type": "array"
          },
          "minimum_expected_concepts": {
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "Minimum Expected Concepts",
            "type": "integer"
          },
          "observed_path": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Observed Path",
            "type": "array"
          }
        },
        "required": ["minimum_expected_concepts"],
        "title": "GraphInput",
        "type": "object"
      },
      "GraphNode": {
        "additionalProperties": false,
        "description": "One objective, concept or standard.\n\nDeliberately carries no coordinate of any kind. See the module docstring.",
        "properties": {
          "confirmed_by": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirmed By"
          },
          "external_ref": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Ref"
          },
          "kind": {
            "enum": ["objective", "concept", "standard"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "node_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Node Id",
            "type": "string"
          },
          "provenance": {
            "enum": ["authored", "imported", "model_proposed", "derived"],
            "title": "Provenance",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": ["node_id", "kind", "label", "revision", "provenance", "updated_at"],
        "title": "GraphNode",
        "type": "object"
      },
      "GraphProjection": {
        "additionalProperties": false,
        "description": "The whole graph, once, for one viewer.\n\nBoth the picture and the list are rendered from this. A second projection\nfor the accessible view is a second thing to keep correct.",
        "properties": {
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "defects": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GraphDefect"
            },
            "maxItems": 1000,
            "title": "Defects",
            "type": "array"
          },
          "edges": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GraphEdge"
            },
            "maxItems": 20000,
            "title": "Edges",
            "type": "array"
          },
          "editable_kinds": {
            "default": [],
            "items": {
              "enum": ["objective", "concept", "standard"],
              "type": "string"
            },
            "maxItems": 3,
            "title": "Editable Kinds",
            "type": "array"
          },
          "nodes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GraphNode"
            },
            "maxItems": 5000,
            "title": "Nodes",
            "type": "array"
          },
          "role": {
            "enum": ["viewer", "author", "curriculum_lead", "standards_owner"],
            "title": "Role",
            "type": "string"
          },
          "schema_version": {
            "const": "9.5.0",
            "default": "9.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["role", "computed_at"],
        "title": "GraphProjection",
        "type": "object"
      },
      "GraphResponse": {
        "additionalProperties": false,
        "properties": {
          "constraints": {
            "items": {
              "$ref": "#/components/schemas/GraphConstraint"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Constraints",
            "type": "array"
          },
          "coordinate_system": {
            "enum": ["cartesian", "polar"],
            "title": "Coordinate System",
            "type": "string"
          },
          "equivalence": {
            "$ref": "#/components/schemas/MathEquivalencePolicy"
          },
          "response_type": {
            "const": "graph",
            "default": "graph",
            "title": "Response Type",
            "type": "string"
          },
          "x_axis_label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "X Axis Label",
            "type": "string"
          },
          "y_axis_label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Y Axis Label",
            "type": "string"
          }
        },
        "required": [
          "equivalence",
          "coordinate_system",
          "x_axis_label",
          "y_axis_label",
          "constraints"
        ],
        "title": "GraphResponse",
        "type": "object"
      },
      "GraphStep": {
        "additionalProperties": false,
        "properties": {
          "concept_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Concept Id",
            "type": "string"
          },
          "expected": {
            "title": "Expected",
            "type": "boolean"
          },
          "observed": {
            "title": "Observed",
            "type": "boolean"
          },
          "ordinal": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          }
        },
        "required": ["ordinal", "concept_id", "expected", "observed"],
        "title": "GraphStep",
        "type": "object"
      },
      "GraphTracingResult": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/ModelApplicability"
          },
          "concept_states": {
            "items": {
              "$ref": "#/components/schemas/GraphConceptState"
            },
            "maxItems": 200,
            "title": "Concept States",
            "type": "array"
          },
          "expected_path": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Expected Path",
            "type": "array"
          },
          "extra_concept_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Extra Concept Ids",
            "type": "array"
          },
          "identity": {
            "$ref": "#/components/schemas/ModelRunIdentity"
          },
          "matched_concept_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Matched Concept Ids",
            "type": "array"
          },
          "missing_concept_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Missing Concept Ids",
            "type": "array"
          },
          "observed_path": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Observed Path",
            "type": "array"
          },
          "ready": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/GraphStep"
            },
            "maxItems": 1000,
            "title": "Steps",
            "type": "array"
          },
          "unresolved_dependencies": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Unresolved Dependencies",
            "type": "array"
          }
        },
        "required": [
          "identity",
          "applicability",
          "expected_path",
          "observed_path",
          "matched_concept_ids",
          "missing_concept_ids",
          "extra_concept_ids",
          "concept_states",
          "steps",
          "unresolved_dependencies",
          "ready"
        ],
        "title": "GraphTracingResult",
        "type": "object"
      },
      "GraphWorkspace": {
        "additionalProperties": false,
        "description": "Everything one graph screen needs, computed in one pass.",
        "properties": {
          "layout": {
            "$ref": "#/components/schemas/LayoutResult"
          },
          "ordered_node_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Ordered Node Ids",
            "type": "array"
          },
          "ordering": {
            "enum": ["topological", "alphabetical", "by_kind", "by_defect"],
            "title": "Ordering",
            "type": "string"
          },
          "parity": {
            "$ref": "#/components/schemas/ParityReport"
          },
          "projection": {
            "$ref": "#/components/schemas/GraphProjection"
          },
          "scope_id": {
            "title": "Scope Id",
            "type": "string"
          }
        },
        "required": ["scope_id", "projection", "ordering", "layout", "parity"],
        "title": "GraphWorkspace",
        "type": "object"
      },
      "GroundedGenerationRequest": {
        "description": "Request draft generation from a grounded outline.",
        "properties": {
          "allow_template_fallback": {
            "default": true,
            "title": "Allow Template Fallback",
            "type": "boolean"
          },
          "core_context_subject_id": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Core Context Subject Id"
          },
          "difficulty": {
            "default": "beginner",
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          },
          "include_assessments": {
            "default": true,
            "title": "Include Assessments",
            "type": "boolean"
          },
          "include_study_artifacts": {
            "default": true,
            "title": "Include Study Artifacts",
            "type": "boolean"
          },
          "retrieval_strategy": {
            "default": "hybrid",
            "enum": ["dense", "sparse", "hybrid", "rerank", "multi-query"],
            "title": "Retrieval Strategy",
            "type": "string"
          },
          "retrieval_top_k": {
            "default": 3,
            "maximum": 8.0,
            "minimum": 1.0,
            "title": "Retrieval Top K",
            "type": "integer"
          },
          "subject_query": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Query"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "GroundedGenerationRequest",
        "type": "object"
      },
      "GroundedGenerationResponse": {
        "properties": {
          "artifact_status": {
            "default": "template_draft",
            "enum": ["generated_draft", "mixed_draft", "template_draft"],
            "title": "Artifact Status",
            "type": "string"
          },
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/GeneratedAssessmentResponse"
            },
            "title": "Assessments",
            "type": "array"
          },
          "authoring_mode": {
            "default": "deterministic_template",
            "enum": ["model_generated", "mixed", "deterministic_template"],
            "title": "Authoring Mode",
            "type": "string"
          },
          "difficulty": {
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/GeneratedModuleResponse"
            },
            "title": "Modules",
            "type": "array"
          },
          "outline_generated_at": {
            "format": "date-time",
            "title": "Outline Generated At",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "quality_evidence_scope": {
            "default": "structure_only",
            "enum": ["retrieval_grounded_unverified", "mixed_unverified", "structure_only"],
            "title": "Quality Evidence Scope",
            "type": "string"
          },
          "release_eligible": {
            "const": false,
            "default": false,
            "title": "Release Eligible",
            "type": "boolean"
          },
          "retrieval_strategy": {
            "default": "hybrid",
            "enum": ["dense", "sparse", "hybrid", "rerank", "multi-query"],
            "title": "Retrieval Strategy",
            "type": "string"
          },
          "risk_assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Risk Assessment Id",
            "type": "string"
          },
          "risk_evidence_evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Risk Evidence Evaluation Sha256",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "study_artifacts": {
            "items": {
              "$ref": "#/components/schemas/GeneratedStudyArtifactResponse"
            },
            "title": "Study Artifacts",
            "type": "array"
          },
          "subject_route": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LearningSubjectRouteResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "template_fallback_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Template Fallback Reasons",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "risk_assessment_id",
          "risk_evidence_evaluation_sha256",
          "scope",
          "outline_generated_at",
          "title",
          "difficulty",
          "generated_at"
        ],
        "title": "GroundedGenerationResponse",
        "type": "object"
      },
      "GroundedOutlineAssessmentSuggestionResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          },
          "supporting_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Supporting Citation Ids",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "description", "source_item_id"],
        "title": "GroundedOutlineAssessmentSuggestionResponse",
        "type": "object"
      },
      "GroundedOutlineLessonResponse": {
        "properties": {
          "artifact_status": {
            "const": "template_draft",
            "default": "template_draft",
            "title": "Artifact Status",
            "type": "string"
          },
          "authoring_mode": {
            "const": "deterministic_template",
            "default": "deterministic_template",
            "title": "Authoring Mode",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "estimated_minutes": {
            "minimum": 0.0,
            "title": "Estimated Minutes",
            "type": "integer"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "learning_objectives": {
            "items": {
              "type": "string"
            },
            "title": "Learning Objectives",
            "type": "array"
          },
          "quality_evidence_scope": {
            "const": "structure_only",
            "default": "structure_only",
            "title": "Quality Evidence Scope",
            "type": "string"
          },
          "release_eligible": {
            "const": false,
            "default": false,
            "title": "Release Eligible",
            "type": "boolean"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          },
          "source_section_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Section Id"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "description", "source_item_id", "estimated_minutes"],
        "title": "GroundedOutlineLessonResponse",
        "type": "object"
      },
      "GroundedOutlineModuleResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/GroundedOutlineLessonResponse"
            },
            "title": "Lessons",
            "type": "array"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "description", "source_item_id"],
        "title": "GroundedOutlineModuleResponse",
        "type": "object"
      },
      "GroundedOutlineRequest": {
        "description": "Request for generating a grounded outline.",
        "properties": {
          "curriculum_brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "curriculum_brief_revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Curriculum Brief Revision Id",
            "type": "string"
          },
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          },
          "include_assessment_suggestions": {
            "default": true,
            "title": "Include Assessment Suggestions",
            "type": "boolean"
          },
          "risk_assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Risk Assessment Id",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": ["risk_assessment_id", "curriculum_brief_id", "curriculum_brief_revision_id"],
        "title": "GroundedOutlineRequest",
        "type": "object"
      },
      "GroundedOutlineResponse": {
        "properties": {
          "artifact_status": {
            "const": "template_draft",
            "default": "template_draft",
            "title": "Artifact Status",
            "type": "string"
          },
          "assessment_suggestions": {
            "items": {
              "$ref": "#/components/schemas/GroundedOutlineAssessmentSuggestionResponse"
            },
            "title": "Assessment Suggestions",
            "type": "array"
          },
          "authoring_mode": {
            "const": "deterministic_template",
            "default": "deterministic_template",
            "title": "Authoring Mode",
            "type": "string"
          },
          "curriculum_brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "curriculum_brief_review_id": {
            "pattern": "^briefreview_[a-f0-9]{40}$",
            "title": "Curriculum Brief Review Id",
            "type": "string"
          },
          "curriculum_brief_revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Curriculum Brief Revision Id",
            "type": "string"
          },
          "curriculum_brief_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Brief Revision Sha256",
            "type": "string"
          },
          "curriculum_brief_validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Brief Validation Sha256",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/GroundedOutlineModuleResponse"
            },
            "title": "Modules",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "quality_evidence_scope": {
            "const": "structure_only",
            "default": "structure_only",
            "title": "Quality Evidence Scope",
            "type": "string"
          },
          "release_eligible": {
            "const": false,
            "default": false,
            "title": "Release Eligible",
            "type": "boolean"
          },
          "review_status": {
            "const": "approved",
            "title": "Review Status",
            "type": "string"
          },
          "risk_assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Risk Assessment Id",
            "type": "string"
          },
          "risk_evidence_evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Risk Evidence Evaluation Sha256",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "source_item_count": {
            "minimum": 0.0,
            "title": "Source Item Count",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "risk_assessment_id",
          "risk_evidence_evaluation_sha256",
          "curriculum_brief_id",
          "curriculum_brief_revision_id",
          "curriculum_brief_revision_sha256",
          "curriculum_brief_validation_sha256",
          "curriculum_brief_review_id",
          "scope",
          "review_status",
          "title",
          "source_item_count",
          "generated_at"
        ],
        "title": "GroundedOutlineResponse",
        "type": "object"
      },
      "GroundingCitationCriterionResult": {
        "additionalProperties": false,
        "properties": {
          "criterion": {
            "enum": [
              "claim_coverage",
              "authority",
              "diversity",
              "recency",
              "directness",
              "relevance",
              "scope_precision",
              "accessibility",
              "rights"
            ],
            "title": "Criterion",
            "type": "string"
          },
          "evidence_link_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence Link Ids",
            "type": "array"
          },
          "observed": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Observed",
            "type": "string"
          },
          "reason_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Reason Code",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "requirement": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Requirement",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["criterion", "state", "required", "observed", "requirement", "reason_code"],
        "title": "GroundingCitationCriterionResult",
        "type": "object"
      },
      "GroundingCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "actual_citation_state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "Actual Citation State",
            "type": "string"
          },
          "actual_conflict": {
            "anyOf": [
              {
                "enum": ["compatible", "contradiction", "difference", "unclear"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actual Conflict"
          },
          "actual_faithfulness": {
            "enum": ["faithful", "changed", "unclear", "not_applicable"],
            "title": "Actual Faithfulness",
            "type": "string"
          },
          "actual_policy": {
            "enum": ["pass", "block", "manual_review", "not_applicable"],
            "title": "Actual Policy",
            "type": "string"
          },
          "actual_support": {
            "anyOf": [
              {
                "enum": [
                  "full",
                  "partial",
                  "unsupported",
                  "contradicted",
                  "unclear",
                  "not_applicable"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actual Support"
          },
          "case_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Case Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Detail",
            "type": "string"
          },
          "expected_citation_state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "Expected Citation State",
            "type": "string"
          },
          "expected_conflict": {
            "anyOf": [
              {
                "enum": ["compatible", "contradiction", "difference", "unclear"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Conflict"
          },
          "expected_faithfulness": {
            "enum": ["faithful", "changed", "unclear", "not_applicable"],
            "title": "Expected Faithfulness",
            "type": "string"
          },
          "expected_policy": {
            "enum": ["pass", "block", "manual_review", "not_applicable"],
            "title": "Expected Policy",
            "type": "string"
          },
          "expected_support": {
            "anyOf": [
              {
                "enum": [
                  "full",
                  "partial",
                  "unsupported",
                  "contradicted",
                  "unclear",
                  "not_applicable"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Support"
          },
          "fixture_kind": {
            "enum": [
              "entailment",
              "partial_support",
              "irrelevant_citation",
              "overbroad_citation",
              "inaccessible_source",
              "abstention",
              "faithfulness",
              "conflict",
              "risk_policy",
              "not_applicable"
            ],
            "title": "Fixture Kind",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          }
        },
        "required": [
          "case_id",
          "fixture_kind",
          "expected_citation_state",
          "actual_citation_state",
          "expected_faithfulness",
          "actual_faithfulness",
          "expected_policy",
          "actual_policy",
          "matched",
          "detail"
        ],
        "title": "GroundingCorpusCaseResult",
        "type": "object"
      },
      "GroundingCorpusEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 10.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/GroundingCorpusCaseResult"
            },
            "maxItems": 1000,
            "minItems": 10,
            "title": "Cases",
            "type": "array"
          },
          "citation_metric": {
            "$ref": "#/components/schemas/GroundingCorpusMetric"
          },
          "conflict_kinds": {
            "items": {
              "enum": ["within_source", "cross_source", "version", "jurisdiction", "perspective"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Conflict Kinds",
            "type": "array"
          },
          "conflict_metric": {
            "$ref": "#/components/schemas/GroundingCorpusMetric"
          },
          "corpus_id": {
            "const": "metis:m5.20-grounding-gate-fixtures",
            "default": "metis:m5.20-grounding-gate-fixtures",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "corpus_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Corpus Version",
            "type": "string"
          },
          "faithfulness_changes": {
            "items": {
              "enum": [
                "added_certainty",
                "omitted_qualifier",
                "scope_change",
                "number_change",
                "time_change",
                "causal_change",
                "attribution_change"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Faithfulness Changes",
            "type": "array"
          },
          "faithfulness_metric": {
            "$ref": "#/components/schemas/GroundingCorpusMetric"
          },
          "fixture_kinds": {
            "items": {
              "enum": [
                "entailment",
                "partial_support",
                "irrelevant_citation",
                "overbroad_citation",
                "inaccessible_source",
                "abstention",
                "faithfulness",
                "conflict",
                "risk_policy",
                "not_applicable"
              ],
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 10,
            "title": "Fixture Kinds",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 2,
            "title": "Limitations",
            "type": "array"
          },
          "policy_metric": {
            "$ref": "#/components/schemas/GroundingCorpusMetric"
          },
          "risk_tiers": {
            "items": {
              "enum": ["general", "elevated", "high", "critical"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Risk Tiers",
            "type": "array"
          },
          "schema_version": {
            "const": "5.20.0",
            "default": "5.20.0",
            "title": "Schema Version",
            "type": "string"
          },
          "support_metric": {
            "$ref": "#/components/schemas/GroundingCorpusMetric"
          },
          "support_verdicts": {
            "items": {
              "enum": [
                "full",
                "partial",
                "unsupported",
                "contradicted",
                "unclear",
                "not_applicable"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Support Verdicts",
            "type": "array"
          }
        },
        "required": [
          "corpus_version",
          "corpus_sha256",
          "case_count",
          "fixture_kinds",
          "support_verdicts",
          "faithfulness_changes",
          "conflict_kinds",
          "risk_tiers",
          "support_metric",
          "citation_metric",
          "faithfulness_metric",
          "conflict_metric",
          "policy_metric",
          "cases",
          "limitations"
        ],
        "title": "GroundingCorpusEvaluationReport",
        "type": "object"
      },
      "GroundingCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "lower": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Lower",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "upper": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Upper",
            "type": "number"
          }
        },
        "required": ["matched", "total", "accuracy", "lower", "upper"],
        "title": "GroundingCorpusMetric",
        "type": "object"
      },
      "GroundingDimensionVerdict": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": ["support", "citation_sufficiency", "faithfulness", "conflict"],
            "title": "Dimension",
            "type": "string"
          },
          "policy_rule_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Policy Rule Id",
            "type": "string"
          },
          "raw_result_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Raw Result Ids",
            "type": "array"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["dimension", "state", "reason_codes", "policy_rule_id"],
        "title": "GroundingDimensionVerdict",
        "type": "object"
      },
      "GroundingEligibleClaim": {
        "additionalProperties": false,
        "properties": {
          "claim_revision": {
            "$ref": "#/components/schemas/AtomicClaimRevision"
          },
          "content": {
            "$ref": "#/components/schemas/ClaimContentSnapshot"
          },
          "decomposition_run_id": {
            "pattern": "^claimdecomp_[a-f0-9]{40}$",
            "title": "Decomposition Run Id",
            "type": "string"
          },
          "evidence_contexts": {
            "items": {
              "$ref": "#/components/schemas/GroundingEvidenceContext"
            },
            "maxItems": 32,
            "title": "Evidence Contexts",
            "type": "array"
          },
          "source_package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Package Id",
            "type": "string"
          },
          "source_revisions_current": {
            "title": "Source Revisions Current",
            "type": "boolean"
          }
        },
        "required": [
          "source_package_id",
          "decomposition_run_id",
          "content",
          "claim_revision",
          "source_revisions_current",
          "evidence_contexts"
        ],
        "title": "GroundingEligibleClaim",
        "type": "object"
      },
      "GroundingEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis:retrieval-grounding-gates",
            "default": "metis:retrieval-grounding-gates",
            "title": "Engine Id",
            "type": "string"
          },
          "verifiers": {
            "items": {
              "$ref": "#/components/schemas/GroundingVerifierWitness"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Verifiers",
            "type": "array"
          },
          "version": {
            "const": "5.20.0",
            "default": "5.20.0",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["verifiers"],
        "title": "GroundingEngineWitness",
        "type": "object"
      },
      "GroundingEvaluationContext": {
        "additionalProperties": false,
        "properties": {
          "intended_jurisdictions": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Intended Jurisdictions",
            "type": "array"
          },
          "learner_visible": {
            "title": "Learner Visible",
            "type": "boolean"
          },
          "policy_id": {
            "const": "metis:m5.20-grounding-policy",
            "default": "metis:m5.20-grounding-policy",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "5.20.0",
            "default": "5.20.0",
            "title": "Policy Version",
            "type": "string"
          },
          "risk_tier": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk Tier",
            "type": "string"
          },
          "use_case": {
            "enum": ["lesson", "feedback", "hint", "worked_solution", "lecture", "tutor_answer"],
            "title": "Use Case",
            "type": "string"
          }
        },
        "required": ["risk_tier", "use_case", "learner_visible"],
        "title": "GroundingEvaluationContext",
        "type": "object"
      },
      "GroundingEvidenceContext": {
        "additionalProperties": false,
        "properties": {
          "accessibility_reason": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accessibility Reason"
          },
          "accessibility_state": {
            "enum": ["accessible", "restricted", "inaccessible"],
            "title": "Accessibility State",
            "type": "string"
          },
          "authority_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Authority Ids",
            "type": "array"
          },
          "authority_tier": {
            "enum": ["unknown", "community", "secondary", "primary", "authoritative"],
            "title": "Authority Tier",
            "type": "string"
          },
          "cited": {
            "title": "Cited",
            "type": "boolean"
          },
          "currency_state": {
            "enum": ["current", "review_due", "expired", "superseded", "retracted", "unknown"],
            "title": "Currency State",
            "type": "string"
          },
          "directness": {
            "enum": ["direct", "indirect", "tertiary", "unknown"],
            "title": "Directness",
            "type": "string"
          },
          "jurisdiction_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Jurisdiction Codes",
            "type": "array"
          },
          "link_id": {
            "pattern": "^claimlink_[a-f0-9]{40}$",
            "title": "Link Id",
            "type": "string"
          },
          "perspective": {
            "anyOf": [
              {
                "maxLength": 240,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Perspective"
          },
          "retrieval_rank": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Retrieval Rank",
            "type": "integer"
          },
          "retrieval_score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Retrieval Score",
            "type": "number"
          },
          "rights_state": {
            "enum": ["allowed", "conditional", "prohibited", "unknown"],
            "title": "Rights State",
            "type": "string"
          },
          "scope_precision": {
            "enum": ["exact", "overbroad", "unknown"],
            "title": "Scope Precision",
            "type": "string"
          },
          "source_age_days": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Age Days"
          },
          "source_family_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Source Family Id",
            "type": "string"
          }
        },
        "required": [
          "link_id",
          "cited",
          "retrieval_rank",
          "retrieval_score",
          "authority_tier",
          "authority_ids",
          "source_family_id",
          "rights_state",
          "currency_state",
          "accessibility_state",
          "directness",
          "scope_precision",
          "jurisdiction_codes"
        ],
        "title": "GroundingEvidenceContext",
        "type": "object"
      },
      "GroundingEvidenceResolution": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/GroundingEvidenceContext"
          },
          "source_link": {
            "$ref": "#/components/schemas/ClaimSourceLink"
          }
        },
        "required": ["context", "source_link"],
        "title": "GroundingEvidenceResolution",
        "type": "object"
      },
      "GroundingGateProjection": {
        "additionalProperties": false,
        "properties": {
          "claim_and_sources_current": {
            "title": "Claim And Sources Current",
            "type": "boolean"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/GroundingGateReviewDecision"
            },
            "maxItems": 1024,
            "title": "Decisions",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/GroundingGateRunResponse"
          }
        },
        "required": ["run", "claim_and_sources_current"],
        "title": "GroundingGateProjection",
        "type": "object"
      },
      "GroundingGateReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept_policy_verdict", "request_new_evidence", "defer"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^grounddec_[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "run_id": {
            "pattern": "^groundrun_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "run_id",
          "expected_run_sha256",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "GroundingGateReviewDecision",
        "type": "object"
      },
      "GroundingGateReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept_policy_verdict", "request_new_evidence", "defer"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Comment",
            "type": "string"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["action", "expected_run_sha256", "comment", "idempotency_key"],
        "title": "GroundingGateReviewRequest",
        "type": "object"
      },
      "GroundingGateRunRequest": {
        "additionalProperties": false,
        "properties": {
          "claim_id": {
            "pattern": "^atomicclaim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "claim_revision_id": {
            "pattern": "^atomicrev_[a-f0-9]{40}$",
            "title": "Claim Revision Id",
            "type": "string"
          },
          "decomposition_run_id": {
            "pattern": "^claimdecomp_[a-f0-9]{40}$",
            "title": "Decomposition Run Id",
            "type": "string"
          },
          "evaluation_context": {
            "$ref": "#/components/schemas/GroundingEvaluationContext"
          },
          "evidence_contexts": {
            "items": {
              "$ref": "#/components/schemas/GroundingEvidenceContext"
            },
            "maxItems": 32,
            "title": "Evidence Contexts",
            "type": "array"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "retrieval": {
            "$ref": "#/components/schemas/GroundingRetrievalSnapshot"
          },
          "schema_version": {
            "const": "5.20.0",
            "default": "5.20.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Package Id",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "source_package_id",
          "decomposition_run_id",
          "claim_id",
          "claim_revision_id",
          "retrieval",
          "evaluation_context"
        ],
        "title": "GroundingGateRunRequest",
        "type": "object"
      },
      "GroundingGateRunResponse": {
        "additionalProperties": false,
        "properties": {
          "citation_sufficiency": {
            "$ref": "#/components/schemas/RawCitationSufficiencyResult"
          },
          "claim_revision": {
            "$ref": "#/components/schemas/AtomicClaimRevision"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/RawGroundingConflictResult"
            },
            "maxItems": 496,
            "title": "Conflicts",
            "type": "array"
          },
          "content": {
            "$ref": "#/components/schemas/ClaimContentSnapshot"
          },
          "decomposition_run_id": {
            "pattern": "^claimdecomp_[a-f0-9]{40}$",
            "title": "Decomposition Run Id",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/GroundingEngineWitness"
          },
          "evaluation_context": {
            "$ref": "#/components/schemas/GroundingEvaluationContext"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/GroundingEvidenceResolution"
            },
            "maxItems": 32,
            "title": "Evidence",
            "type": "array"
          },
          "faithfulness": {
            "$ref": "#/components/schemas/RawGroundingFaithfulnessResult"
          },
          "policy_verdict": {
            "$ref": "#/components/schemas/GroundingPolicyVerdict"
          },
          "previous_run_id": {
            "anyOf": [
              {
                "pattern": "^groundrun_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Run Id"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "retrieval": {
            "$ref": "#/components/schemas/GroundingRetrievalSnapshot"
          },
          "run_id": {
            "pattern": "^groundrun_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.20.0",
            "default": "5.20.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Package Id",
            "type": "string"
          },
          "source_revisions_current": {
            "const": true,
            "title": "Source Revisions Current",
            "type": "boolean"
          },
          "support_results": {
            "items": {
              "$ref": "#/components/schemas/RawGroundingSupportResult"
            },
            "maxItems": 32,
            "title": "Support Results",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "tenant_id",
          "requested_by",
          "requested_at",
          "request_sha256",
          "source_package_id",
          "decomposition_run_id",
          "content",
          "claim_revision",
          "retrieval",
          "evaluation_context",
          "source_revisions_current",
          "evidence",
          "support_results",
          "citation_sufficiency",
          "faithfulness",
          "conflicts",
          "policy_verdict",
          "engine",
          "self_sha256"
        ],
        "title": "GroundingGateRunResponse",
        "type": "object"
      },
      "GroundingGateWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "eligible_claims": {
            "items": {
              "$ref": "#/components/schemas/GroundingEligibleClaim"
            },
            "maxItems": 16384,
            "title": "Eligible Claims",
            "type": "array"
          },
          "evaluation": {
            "$ref": "#/components/schemas/GroundingCorpusEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/GroundingGateProjection"
            },
            "maxItems": 16384,
            "title": "Runs",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/GroundingGateWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation"],
        "title": "GroundingGateWorkspaceResponse",
        "type": "object"
      },
      "GroundingGateWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "abstained": {
            "minimum": 0.0,
            "title": "Abstained",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "manual_review": {
            "minimum": 0.0,
            "title": "Manual Review",
            "type": "integer"
          },
          "not_applicable": {
            "minimum": 0.0,
            "title": "Not Applicable",
            "type": "integer"
          },
          "passed": {
            "minimum": 0.0,
            "title": "Passed",
            "type": "integer"
          },
          "reviewed": {
            "minimum": 0.0,
            "title": "Reviewed",
            "type": "integer"
          },
          "runs": {
            "minimum": 0.0,
            "title": "Runs",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          }
        },
        "required": [
          "runs",
          "passed",
          "blocked",
          "manual_review",
          "not_applicable",
          "abstained",
          "stale",
          "reviewed"
        ],
        "title": "GroundingGateWorkspaceSummary",
        "type": "object"
      },
      "GroundingPolicyVerdict": {
        "additionalProperties": false,
        "properties": {
          "abstained": {
            "title": "Abstained",
            "type": "boolean"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/GroundingDimensionVerdict"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Dimensions",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "manual_review_required": {
            "title": "Manual Review Required",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["pass", "block", "manual_review", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "policy_id": {
            "const": "metis:m5.20-grounding-policy",
            "default": "metis:m5.20-grounding-policy",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "5.20.0",
            "default": "5.20.0",
            "title": "Policy Version",
            "type": "string"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "risk_tier": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk Tier",
            "type": "string"
          },
          "verifier": {
            "$ref": "#/components/schemas/GroundingVerifierWitness"
          }
        },
        "required": [
          "risk_tier",
          "outcome",
          "release_allowed",
          "manual_review_required",
          "abstained",
          "dimensions",
          "verifier",
          "evaluated_at",
          "output_sha256"
        ],
        "title": "GroundingPolicyVerdict",
        "type": "object"
      },
      "GroundingQueueRow": {
        "additionalProperties": false,
        "description": "One claim in the queue, with everything needed to act on it.\n\nNamed for its domain rather than `QueueRow`: the review-SLA cell already\npublishes a `QueueRow`, and two models sharing a name make FastAPI\nmodule-qualify *both* in the OpenAPI document \u2014 renaming somebody else's\npublished schema as a side effect of adding this one.",
        "properties": {
          "claim_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/DimensionState"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Dimensions",
            "type": "array"
          },
          "independent_sources": {
            "default": 0,
            "minimum": 0.0,
            "title": "Independent Sources",
            "type": "integer"
          },
          "required_reviewer": {
            "enum": ["author", "peer_reviewer", "subject_expert", "editorial_board"],
            "title": "Required Reviewer",
            "type": "string"
          },
          "revision": {
            "default": 1,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "shortfall": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "title": "Shortfall",
            "type": "array"
          },
          "source_authorities": {
            "default": [],
            "items": {
              "enum": [
                "peer_reviewed",
                "official_standard",
                "textbook",
                "practitioner",
                "unreviewed"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "title": "Source Authorities",
            "type": "array"
          },
          "statement": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "tier": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Tier",
            "type": "string"
          },
          "uncertainty": {
            "$ref": "#/components/schemas/Uncertainty"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "claim_id",
          "tier",
          "statement",
          "dimensions",
          "uncertainty",
          "required_reviewer",
          "updated_at"
        ],
        "title": "GroundingQueueRow",
        "type": "object"
      },
      "GroundingRetrievalSnapshot": {
        "additionalProperties": false,
        "properties": {
          "executed_at": {
            "format": "date-time",
            "title": "Executed At",
            "type": "string"
          },
          "index_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Index Id",
            "type": "string"
          },
          "index_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Index Sha256",
            "type": "string"
          },
          "index_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Index Version",
            "type": "string"
          },
          "query_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Query Id",
            "type": "string"
          },
          "query_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Query Sha256",
            "type": "string"
          },
          "query_text": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Query Text",
            "type": "string"
          },
          "retrieval_id": {
            "pattern": "^retrieval_[a-f0-9]{24}$",
            "title": "Retrieval Id",
            "type": "string"
          },
          "retriever_config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Retriever Config Sha256",
            "type": "string"
          },
          "retriever_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Retriever Id",
            "type": "string"
          },
          "retriever_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Retriever Version",
            "type": "string"
          },
          "top_k": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Top K",
            "type": "integer"
          }
        },
        "required": [
          "retrieval_id",
          "query_id",
          "query_text",
          "query_sha256",
          "retriever_id",
          "retriever_version",
          "retriever_config_sha256",
          "index_id",
          "index_version",
          "index_sha256",
          "executed_at",
          "top_k"
        ],
        "title": "GroundingRetrievalSnapshot",
        "type": "object"
      },
      "GroundingToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "GroundingToolWitness",
        "type": "object"
      },
      "GroundingVerifierWitness": {
        "additionalProperties": false,
        "properties": {
          "ambiguous_behavior": {
            "const": "abstain",
            "default": "abstain",
            "title": "Ambiguous Behavior",
            "type": "string"
          },
          "auto_pass_scope": {
            "const": "exact_semantic_match_only",
            "default": "exact_semantic_match_only",
            "title": "Auto Pass Scope",
            "type": "string"
          },
          "capability": {
            "enum": ["support", "citation_sufficiency", "faithfulness", "conflict", "policy"],
            "title": "Capability",
            "type": "string"
          },
          "code_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Code Sha256",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "deterministic": {
            "const": true,
            "default": true,
            "title": "Deterministic",
            "type": "boolean"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "verifier_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Verifier Id",
            "type": "string"
          },
          "version": {
            "const": "5.20.0",
            "default": "5.20.0",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["verifier_id", "capability", "code_sha256", "config_sha256", "rules_sha256"],
        "title": "GroundingVerifierWitness",
        "type": "object"
      },
      "GuardProbe": {
        "additionalProperties": false,
        "properties": {
          "reasons": {
            "items": {
              "enum": [
                "scorer_cannot_review",
                "reviewer_cannot_approve",
                "requester_cannot_decide",
                "value_off_scale",
                "value_unchanged",
                "stale_expected_version",
                "wrong_status",
                "target_not_current",
                "item_revision_moved",
                "learner_not_noticed"
              ],
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "scenario": {
            "maxLength": 100,
            "minLength": 3,
            "title": "Scenario",
            "type": "string"
          }
        },
        "required": ["scenario", "refused", "reasons"],
        "title": "GuardProbe",
        "type": "object"
      },
      "GuardrailBreach": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Detail",
            "type": "string"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "observed_basis_points": {
            "title": "Observed Basis Points",
            "type": "integer"
          },
          "threshold_basis_points": {
            "title": "Threshold Basis Points",
            "type": "integer"
          }
        },
        "required": ["metric_id", "observed_basis_points", "threshold_basis_points", "detail"],
        "title": "GuardrailBreach",
        "type": "object"
      },
      "GuardrailCommand": {
        "additionalProperties": false,
        "properties": {
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "kind": {
            "enum": ["start", "pause", "resume", "stop"],
            "title": "Kind",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "enum": [
                  "guardrail_breached",
                  "quality_breached",
                  "slo_breached",
                  "integrity_breached",
                  "owner_decision",
                  "reached_end_of_window"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          }
        },
        "required": ["sequence", "kind", "issued_by", "issued_at"],
        "title": "GuardrailCommand",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "HealthGate": {
        "additionalProperties": false,
        "properties": {
          "asserted_from_documentation": {
            "const": false,
            "default": false,
            "title": "Asserted From Documentation",
            "type": "boolean"
          },
          "breaches": {
            "items": {
              "$ref": "#/components/schemas/BudgetBreach"
            },
            "maxItems": 12,
            "title": "Breaches",
            "type": "array"
          },
          "evaluated_samples": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Evaluated Samples",
            "type": "integer"
          },
          "missing": {
            "items": {
              "$ref": "#/components/schemas/MissingMeasurement"
            },
            "maxItems": 4,
            "title": "Missing",
            "type": "array"
          },
          "profile_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Profile Id",
            "type": "string"
          },
          "spec_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Spec Id",
            "type": "string"
          },
          "spec_version": {
            "title": "Spec Version",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "fail_budget_breached", "fail_measurement_missing"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "spec_id",
          "spec_version",
          "profile_id",
          "evaluated_samples",
          "breaches",
          "missing"
        ],
        "title": "HealthGate",
        "type": "object"
      },
      "HighRiskQueue": {
        "additionalProperties": false,
        "description": "The queue, ordered by what stops a publication soonest.",
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "rows": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GroundingQueueRow"
            },
            "maxItems": 500,
            "title": "Rows",
            "type": "array"
          },
          "schema_version": {
            "const": "9.4.2",
            "default": "9.4.2",
            "title": "Schema Version",
            "type": "string"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "viewer_role": {
            "enum": ["author", "peer_reviewer", "subject_expert", "editorial_board"],
            "title": "Viewer Role",
            "type": "string"
          },
          "withheld_above_role": {
            "default": 0,
            "minimum": 0.0,
            "title": "Withheld Above Role",
            "type": "integer"
          }
        },
        "required": ["total", "viewer_role", "generated_at"],
        "title": "HighRiskQueue",
        "type": "object"
      },
      "HintLadder": {
        "additionalProperties": false,
        "description": "The rungs in order. Each gives away more than the one before it.",
        "properties": {
          "rungs": {
            "items": {
              "$ref": "#/components/schemas/HintRung"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Rungs",
            "type": "array"
          }
        },
        "required": ["rungs"],
        "title": "HintLadder",
        "type": "object"
      },
      "HintRung": {
        "additionalProperties": false,
        "description": "One rung of a hint ladder: what it gives away, and what it costs.",
        "properties": {
          "mastery_penalty_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Mastery Penalty Basis Points",
            "type": "integer"
          },
          "move": {
            "enum": [
              "ask_a_diagnostic_question",
              "offer_a_hint",
              "scaffold_a_step",
              "demonstrate_a_worked_example",
              "give_the_direct_answer",
              "restate_the_objective"
            ],
            "title": "Move",
            "type": "string"
          },
          "reveals": {
            "enum": ["nothing_of_the_answer", "the_approach", "the_first_step", "the_method"],
            "title": "Reveals",
            "type": "string"
          },
          "rung": {
            "maximum": 6.0,
            "minimum": 1.0,
            "title": "Rung",
            "type": "integer"
          },
          "trigger": {
            "enum": [
              "learner_asks",
              "two_failed_attempts",
              "idle_for_ninety_seconds",
              "explicit_request_for_the_answer"
            ],
            "title": "Trigger",
            "type": "string"
          }
        },
        "required": ["rung", "move", "trigger", "reveals", "mastery_penalty_basis_points"],
        "title": "HintRung",
        "type": "object"
      },
      "HistoricalResolution": {
        "additionalProperties": false,
        "properties": {
          "canonical": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical"
          },
          "code": {
            "title": "Code",
            "type": "string"
          },
          "outcome": {
            "enum": ["current", "within_window", "outside_window", "never_recognised"],
            "title": "Outcome",
            "type": "string"
          },
          "recorded_under": {
            "title": "Recorded Under",
            "type": "string"
          },
          "vocabulary_id": {
            "enum": [
              "assessment.integrity_mode",
              "interlock.mode",
              "tutor_grounding.assessment_mode",
              "tutor_preview.assessment_mode",
              "tutor_binding.integrity_mode",
              "tutoring.integrity_mode",
              "learner.tutor_style"
            ],
            "title": "Vocabulary Id",
            "type": "string"
          },
          "window": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CompatibilityWindow"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["vocabulary_id", "code", "recorded_under", "canonical", "outcome"],
        "title": "HistoricalResolution",
        "type": "object"
      },
      "HistoryVerification": {
        "additionalProperties": false,
        "description": "A case chain and the signal chain it opened from, verified together.",
        "properties": {
          "case": {
            "$ref": "#/components/schemas/ChainVerification"
          },
          "case_names_signal_link": {
            "title": "Case Names Signal Link",
            "type": "boolean"
          },
          "intact": {
            "title": "Intact",
            "type": "boolean"
          },
          "signal": {
            "$ref": "#/components/schemas/ChainVerification"
          }
        },
        "required": ["signal", "case", "case_names_signal_link", "intact"],
        "title": "HistoryVerification",
        "type": "object"
      },
      "HoldRelease": {
        "additionalProperties": false,
        "properties": {
          "released_at": {
            "format": "date-time",
            "title": "Released At",
            "type": "string"
          }
        },
        "required": ["released_at"],
        "title": "HoldRelease",
        "type": "object"
      },
      "HubActionGrant": {
        "additionalProperties": false,
        "description": "One action this viewer may take on this card, and what it will ask for.",
        "properties": {
          "action": {
            "enum": ["open", "claim", "reassign", "review", "remediate", "reschedule"],
            "title": "Action",
            "type": "string"
          },
          "confirmation": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confirmation"
          },
          "requires_reason": {
            "default": false,
            "title": "Requires Reason",
            "type": "boolean"
          }
        },
        "required": ["action"],
        "title": "HubActionGrant",
        "type": "object"
      },
      "HubCard": {
        "additionalProperties": false,
        "description": "One thing on the hub. The same shape in every region.",
        "properties": {
          "actions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/HubActionGrant"
            },
            "maxItems": 6,
            "title": "Actions",
            "type": "array"
          },
          "card_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Card Id",
            "type": "string"
          },
          "detail": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "ownership": {
            "enum": ["mine", "my_team", "unassigned", "someone_else"],
            "title": "Ownership",
            "type": "string"
          },
          "priority": {
            "enum": ["blocking", "due", "waiting", "background"],
            "title": "Priority",
            "type": "string"
          },
          "region": {
            "enum": [
              "assigned_work",
              "recent_courses",
              "gate_failures",
              "review_queue",
              "scheduled_releases"
            ],
            "title": "Region",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "maxLength": 60,
            "minLength": 2,
            "title": "Subject Kind",
            "type": "string"
          },
          "subject_revision": {
            "minimum": 1.0,
            "title": "Subject Revision",
            "type": "integer"
          },
          "title": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "region",
          "card_id",
          "title",
          "priority",
          "ownership",
          "subject_kind",
          "subject_id",
          "subject_revision",
          "occurred_at"
        ],
        "title": "HubCard",
        "type": "object"
      },
      "HubRegion": {
        "additionalProperties": false,
        "description": "One region's data, its state, and how old it is.",
        "properties": {
          "cards": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/HubCard"
            },
            "maxItems": 200,
            "title": "Cards",
            "type": "array"
          },
          "computed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Computed At"
          },
          "freshness": {
            "enum": ["live", "cached", "unknown"],
            "title": "Freshness",
            "type": "string"
          },
          "message": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "region": {
            "enum": [
              "assigned_work",
              "recent_courses",
              "gate_failures",
              "review_queue",
              "scheduled_releases"
            ],
            "title": "Region",
            "type": "string"
          },
          "state": {
            "enum": ["loading", "ready", "empty", "stale", "degraded", "offline"],
            "title": "State",
            "type": "string"
          },
          "total_visible": {
            "default": 0,
            "minimum": 0.0,
            "title": "Total Visible",
            "type": "integer"
          }
        },
        "required": ["region", "state", "freshness"],
        "title": "HubRegion",
        "type": "object"
      },
      "HumanActor": {
        "additionalProperties": false,
        "description": "A person, present and authenticated. There is no other way to build one.\n\n`kind` is a Literal so that no machine actor can be coerced into this shape,\nand `on_behalf_of` is deliberately absent: a delegated identity is a\ndifferent actor, and it is refused by name.",
        "properties": {
          "authentication": {
            "$ref": "#/components/schemas/InteractiveAuthentication"
          },
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "kind": {
            "const": "human",
            "default": "human",
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["digest", "authentication"],
        "title": "HumanActor",
        "type": "object"
      },
      "HumanDecision": {
        "additionalProperties": false,
        "description": "The act that makes a claim canonical. There is no other.",
        "properties": {
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Decided By",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["decided_by", "decided_at", "rationale"],
        "title": "HumanDecision",
        "type": "object"
      },
      "HumanGate": {
        "additionalProperties": false,
        "description": "One gate: what it is over, who may pass it, and what they must have seen.",
        "properties": {
          "delegable": {
            "const": false,
            "default": false,
            "title": "Delegable",
            "type": "boolean"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/GateEvidence"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "gate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gate Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "publish_high_stakes_assessment",
              "release_learner_grades",
              "issue_credential",
              "admit_provider_model",
              "uphold_integrity_finding",
              "release_learner_data_export"
            ],
            "title": "Kind",
            "type": "string"
          },
          "opened_at": {
            "format": "date-time",
            "title": "Opened At",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "7.13.0",
            "default": "7.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/GateSubject"
          }
        },
        "required": [
          "gate_id",
          "kind",
          "subject",
          "evidence",
          "opened_at",
          "expires_at",
          "policy_sha256"
        ],
        "title": "HumanGate",
        "type": "object"
      },
      "HumanReviewGateResponse": {
        "properties": {
          "category": {
            "enum": ["low_confidence", "high_stakes", "rights_sensitive", "policy_sensitive"],
            "title": "Category",
            "type": "string"
          },
          "facts": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueFactResponse"
            },
            "title": "Facts",
            "type": "array"
          },
          "gate_id": {
            "title": "Gate Id",
            "type": "string"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "resolution_href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution Href"
          },
          "resolution_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution Label"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "state": {
            "default": "open",
            "enum": ["open", "cleared"],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["gate_id", "category", "severity", "title", "summary", "owner"],
        "title": "HumanReviewGateResponse",
        "type": "object"
      },
      "HumanSignoff": {
        "additionalProperties": false,
        "description": "One person's signature. It cannot be constructed with a non-human actor.",
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/HumanActor"
          },
          "conflict": {
            "$ref": "#/components/schemas/ConflictDeclarationForGate"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "gate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gate Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "role": {
            "enum": [
              "assessment_lead",
              "registrar",
              "integrity_lead",
              "data_protection_officer",
              "institution_admin"
            ],
            "title": "Role",
            "type": "string"
          },
          "schema_version": {
            "const": "7.13.0",
            "default": "7.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "signed_at": {
            "format": "date-time",
            "title": "Signed At",
            "type": "string"
          },
          "signoff_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signoff Id",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "signoff_id",
          "gate_id",
          "actor",
          "role",
          "subject_revision_sha256",
          "evidence_sha256",
          "conflict",
          "rationale",
          "signed_at",
          "session_id"
        ],
        "title": "HumanSignoff",
        "type": "object"
      },
      "HumanSignoffGateReport": {
        "additionalProperties": false,
        "properties": {
          "a_human_signoff_with_a_machine_actor_is_unconstructible": {
            "title": "A Human Signoff With A Machine Actor Is Unconstructible",
            "type": "boolean"
          },
          "actor_probes": {
            "items": {
              "$ref": "#/components/schemas/ActorProbe"
            },
            "maxItems": 40,
            "minItems": 10,
            "title": "Actor Probes",
            "type": "array"
          },
          "adversarial_probes": {
            "items": {
              "$ref": "#/components/schemas/AdversarialProbe"
            },
            "maxItems": 40,
            "minItems": 12,
            "title": "Adversarial Probes",
            "type": "array"
          },
          "every_layer_refused_something": {
            "title": "Every Layer Refused Something",
            "type": "boolean"
          },
          "every_machine_actor_refused": {
            "title": "Every Machine Actor Refused",
            "type": "boolean"
          },
          "every_material_change_kind_produced": {
            "title": "Every Material Change Kind Produced",
            "type": "boolean"
          },
          "every_refusal_reason_reached": {
            "title": "Every Refusal Reason Reached",
            "type": "boolean"
          },
          "gate_kinds": {
            "minimum": 1.0,
            "title": "Gate Kinds",
            "type": "integer"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "invalidation_preserves_the_human_decision": {
            "title": "Invalidation Preserves The Human Decision",
            "type": "boolean"
          },
          "quorum_counts_distinct_people": {
            "title": "Quorum Counts Distinct People",
            "type": "boolean"
          },
          "requirement_cells": {
            "minimum": 1.0,
            "title": "Requirement Cells",
            "type": "integer"
          },
          "sample_invalidation": {
            "$ref": "#/components/schemas/GateInvalidation"
          },
          "sample_outcome": {
            "$ref": "#/components/schemas/SignoffGateOutcome"
          },
          "sample_refusals": {
            "items": {
              "$ref": "#/components/schemas/GateRefusal"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sample Refusals",
            "type": "array"
          },
          "schema_version": {
            "const": "7.13.0",
            "default": "7.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "step_up_required_where_the_table_says": {
            "title": "Step Up Required Where The Table Says",
            "type": "boolean"
          }
        },
        "required": [
          "generated_at",
          "gate_kinds",
          "requirement_cells",
          "actor_probes",
          "every_machine_actor_refused",
          "a_human_signoff_with_a_machine_actor_is_unconstructible",
          "adversarial_probes",
          "every_refusal_reason_reached",
          "every_layer_refused_something",
          "quorum_counts_distinct_people",
          "step_up_required_where_the_table_says",
          "invalidation_preserves_the_human_decision",
          "every_material_change_kind_produced",
          "sample_outcome",
          "sample_invalidation",
          "sample_refusals"
        ],
        "title": "HumanSignoffGateReport",
        "type": "object"
      },
      "ImpactBucket": {
        "additionalProperties": false,
        "properties": {
          "affected": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Affected"
          },
          "bucket_key": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Bucket Key",
            "type": "string"
          },
          "bucket_kind": {
            "enum": ["pathway", "item", "learner_cohort"],
            "title": "Bucket Kind",
            "type": "string"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "suppression_reason": {
            "anyOf": [
              {
                "const": "below_minimum_cell_size",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suppression Reason"
          },
          "total": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total"
          }
        },
        "required": [
          "bucket_kind",
          "bucket_key",
          "affected",
          "total",
          "suppressed",
          "suppression_reason"
        ],
        "title": "ImpactBucket",
        "type": "object"
      },
      "ImpactCount": {
        "additionalProperties": false,
        "properties": {
          "affected": {
            "minimum": 0.0,
            "title": "Affected",
            "type": "integer"
          },
          "category": {
            "enum": ["users", "content", "builds", "attempts", "integrations", "schedules"],
            "title": "Category",
            "type": "string"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["category", "affected", "total"],
        "title": "ImpactCount",
        "type": "object"
      },
      "ImpactPreview": {
        "additionalProperties": false,
        "description": "Aggregates only. This type has no field that can carry a subject.",
        "properties": {
          "buckets": {
            "items": {
              "$ref": "#/components/schemas/ImpactBucket"
            },
            "maxItems": 500,
            "title": "Buckets",
            "type": "array"
          },
          "changed_decision_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Changed Decision Count"
          },
          "contains_subject_identifiers": {
            "const": false,
            "default": false,
            "title": "Contains Subject Identifiers",
            "type": "boolean"
          },
          "minimum_cell_size": {
            "maximum": 1000.0,
            "minimum": 2.0,
            "title": "Minimum Cell Size",
            "type": "integer"
          },
          "reported_bucket_count": {
            "minimum": 0.0,
            "title": "Reported Bucket Count",
            "type": "integer"
          },
          "residual_disclosure_note": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Residual Disclosure Note",
            "type": "string"
          },
          "subjects_examined": {
            "minimum": 0.0,
            "title": "Subjects Examined",
            "type": "integer"
          },
          "suppressed_bucket_count": {
            "minimum": 0.0,
            "title": "Suppressed Bucket Count",
            "type": "integer"
          }
        },
        "required": [
          "minimum_cell_size",
          "subjects_examined",
          "buckets",
          "reported_bucket_count",
          "suppressed_bucket_count",
          "changed_decision_count",
          "residual_disclosure_note"
        ],
        "title": "ImpactPreview",
        "type": "object"
      },
      "ImpactSubject": {
        "additionalProperties": false,
        "description": "One subject of the preview, referenced opaquely and never republished.",
        "properties": {
          "bucket_key": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Bucket Key",
            "type": "string"
          },
          "bucket_kind": {
            "enum": ["pathway", "item", "learner_cohort"],
            "title": "Bucket Kind",
            "type": "string"
          },
          "candidate": {
            "$ref": "#/components/schemas/SequencingCandidate"
          },
          "subject_ref": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Ref",
            "type": "string"
          }
        },
        "required": ["subject_ref", "bucket_kind", "bucket_key", "candidate"],
        "title": "ImpactSubject",
        "type": "object"
      },
      "ImportEvidence": {
        "additionalProperties": false,
        "description": "What the target actually holds, read back after the import.",
        "properties": {
          "detail": {
            "maxLength": 800,
            "minLength": 4,
            "title": "Detail",
            "type": "string"
          },
          "manifest_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Digest",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "observed_item_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Observed Item Ids",
            "type": "array"
          },
          "outcome": {
            "enum": ["accepted", "partially_accepted", "rejected", "unreadable"],
            "title": "Outcome",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["manifest_digest", "target_id", "outcome", "observed_at", "detail"],
        "title": "ImportEvidence",
        "type": "object"
      },
      "InboxItem": {
        "additionalProperties": false,
        "description": "One captured thing. The same shape whatever was captured.",
        "properties": {
          "context_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context Id"
          },
          "conversion": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConversionLink"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "disposition": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disposition"
          },
          "item_id": {
            "format": "uuid",
            "title": "Item Id",
            "type": "string"
          },
          "kind": {
            "enum": ["source", "curriculum_brief", "lesson_idea", "item_idea", "feedback"],
            "title": "Kind",
            "type": "string"
          },
          "owner": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner"
          },
          "raw": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Raw",
            "type": "string"
          },
          "raw_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Raw Sha256",
            "type": "string"
          },
          "scan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScanResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "9.2.0",
            "default": "9.2.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/CaptureSource"
          },
          "status": {
            "enum": [
              "quarantined",
              "scanning",
              "ready",
              "triaged",
              "deferred",
              "converted",
              "archived",
              "rejected"
            ],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "tenant_id",
          "kind",
          "raw",
          "raw_sha256",
          "source",
          "status",
          "created_at",
          "updated_at"
        ],
        "title": "InboxItem",
        "type": "object"
      },
      "InboxView": {
        "additionalProperties": false,
        "description": "A page of the inbox, counted after the viewer's grants.",
        "properties": {
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InboxItem"
            },
            "maxItems": 100,
            "title": "Items",
            "type": "array"
          },
          "quarantined": {
            "minimum": 0.0,
            "title": "Quarantined",
            "type": "integer"
          },
          "total_visible": {
            "minimum": 0.0,
            "title": "Total Visible",
            "type": "integer"
          }
        },
        "required": ["total_visible", "quarantined"],
        "title": "InboxView",
        "type": "object"
      },
      "IncidentEscalationRouteResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "href": {
            "title": "Href",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          }
        },
        "required": ["label", "href", "description"],
        "title": "IncidentEscalationRouteResponse",
        "type": "object"
      },
      "IncidentRunbookStepResponse": {
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["title", "detail"],
        "title": "IncidentRunbookStepResponse",
        "type": "object"
      },
      "IndependenceAnalysis": {
        "additionalProperties": false,
        "properties": {
          "derived_groups": {
            "items": {
              "$ref": "#/components/schemas/CorrelationGroup"
            },
            "maxItems": 200,
            "title": "Derived Groups",
            "type": "array"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/IndependenceFinding"
            },
            "maxItems": 200,
            "title": "Findings",
            "type": "array"
          },
          "independent_group_count": {
            "minimum": 0.0,
            "title": "Independent Group Count",
            "type": "integer"
          },
          "independent_partition": {
            "items": {
              "items": {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              "type": "array"
            },
            "maxItems": 50,
            "title": "Independent Partition",
            "type": "array"
          },
          "rule": {
            "$ref": "#/components/schemas/IndependenceRule"
          },
          "rule_satisfied": {
            "title": "Rule Satisfied",
            "type": "boolean"
          },
          "undeclared_group_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Undeclared Group Ids",
            "type": "array"
          },
          "unjustified_declared_group_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Unjustified Declared Group Ids",
            "type": "array"
          }
        },
        "required": [
          "derived_groups",
          "undeclared_group_ids",
          "unjustified_declared_group_ids",
          "independent_partition",
          "independent_group_count",
          "findings",
          "rule",
          "rule_satisfied"
        ],
        "title": "IndependenceAnalysis",
        "type": "object"
      },
      "IndependenceCheck": {
        "additionalProperties": false,
        "description": "What was checked about one would-be appeal decider, and the answer.",
        "properties": {
          "appeal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Appeal Id",
            "type": "string"
          },
          "candidate_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Digest",
            "type": "string"
          },
          "independent": {
            "title": "Independent",
            "type": "boolean"
          },
          "original_roles_held": {
            "items": {
              "enum": [
                "detector_owner",
                "reviewer",
                "decider",
                "appeal_decider",
                "learner",
                "representative",
                "integrity_lead"
              ],
              "type": "string"
            },
            "title": "Original Roles Held",
            "type": "array"
          },
          "refusals": {
            "default": [],
            "items": {
              "enum": [
                "was_detector_owner",
                "was_reviewer",
                "was_decider",
                "is_a_party",
                "declared_conflict",
                "not_an_appeal_decider",
                "quorum_not_met"
              ],
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          },
          "restriction": {
            "enum": ["standard", "restricted"],
            "title": "Restriction",
            "type": "string"
          }
        },
        "required": [
          "appeal_id",
          "candidate_digest",
          "restriction",
          "original_roles_held",
          "independent"
        ],
        "title": "IndependenceCheck",
        "type": "object"
      },
      "IndependenceFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Evaluator Ids",
            "type": "array"
          }
        },
        "required": ["code", "detail", "evaluator_ids"],
        "title": "IndependenceFinding",
        "type": "object"
      },
      "IndependenceRule": {
        "additionalProperties": false,
        "properties": {
          "maximum_group_weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Maximum Group Weight Basis Points",
            "type": "integer"
          },
          "minimum_independent_groups": {
            "maximum": 50.0,
            "minimum": 1.0,
            "title": "Minimum Independent Groups",
            "type": "integer"
          },
          "minimum_quorum": {
            "maximum": 50.0,
            "minimum": 1.0,
            "title": "Minimum Quorum",
            "type": "integer"
          },
          "weight_mode": {
            "const": "equal_per_independent_group",
            "default": "equal_per_independent_group",
            "title": "Weight Mode",
            "type": "string"
          }
        },
        "required": [
          "minimum_independent_groups",
          "minimum_quorum",
          "maximum_group_weight_basis_points"
        ],
        "title": "IndependenceRule",
        "type": "object"
      },
      "IndexPlan": {
        "additionalProperties": false,
        "description": "A tenant-leading index for one ratified filter or sort.",
        "properties": {
          "columns": {
            "items": {
              "maxLength": 63,
              "pattern": "^[a-z][a-z0-9_]*$",
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 2,
            "title": "Columns",
            "type": "array"
          },
          "index_name": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Index Name",
            "type": "string"
          },
          "predicate": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Predicate"
          },
          "statement": {
            "maxLength": 600,
            "minLength": 20,
            "title": "Statement",
            "type": "string"
          },
          "table_name": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Table Name",
            "type": "string"
          }
        },
        "required": ["table_name", "index_name", "columns", "statement"],
        "title": "IndexPlan",
        "type": "object"
      },
      "IngressReceipt": {
        "additionalProperties": false,
        "description": "What happened to one inbound score, including nothing.\n\nA receipt is produced whether or not the score reached the ledger, because\nthe case this cell was opened on is a grade that went nowhere and said so\nto nobody.",
        "properties": {
          "accepted": {
            "title": "Accepted",
            "type": "boolean"
          },
          "appended": {
            "title": "Appended",
            "type": "boolean"
          },
          "detail": {
            "anyOf": [
              {
                "maxLength": 600,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "external_line_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "External Line Item Id",
            "type": "string"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "ledger_refusal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LedgerRefusal"
              },
              {
                "type": "null"
              }
            ]
          },
          "reasons": {
            "default": [],
            "items": {
              "enum": [
                "line_item_not_bound",
                "line_item_bound_by_more_than_one_tenant",
                "grading_not_final",
                "scale_disagreement"
              ],
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "schema_version": {
            "const": "10.7.0",
            "default": "10.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "system": {
            "enum": ["lti_ags", "oneroster"],
            "title": "System",
            "type": "string"
          },
          "version_after": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version After"
          }
        },
        "required": ["system", "external_line_item_id", "grade_id", "accepted", "appended"],
        "title": "IngressReceipt",
        "type": "object"
      },
      "InjectionProbe": {
        "additionalProperties": false,
        "properties": {
          "neutralised": {
            "title": "Neutralised",
            "type": "boolean"
          },
          "payload": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Payload",
            "type": "string"
          },
          "written_as": {
            "maxLength": 220,
            "minLength": 1,
            "title": "Written As",
            "type": "string"
          }
        },
        "required": ["payload", "neutralised", "written_as"],
        "title": "InjectionProbe",
        "type": "object"
      },
      "InputBinding": {
        "additionalProperties": false,
        "description": "One input, pinned to one revision.\n\n``revision_sha256`` is required. A binding that named only an identifier\nwould let the thing under it change between planning and dispatch, which is\nthe failure the whole cell exists to prevent.",
        "properties": {
          "identifier": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Identifier",
            "type": "string"
          },
          "kind": {
            "enum": [
              "source",
              "extraction",
              "claim",
              "course",
              "item",
              "rubric",
              "standard",
              "policy",
              "config"
            ],
            "title": "Kind",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": ["kind", "identifier", "revision_sha256"],
        "title": "InputBinding",
        "type": "object"
      },
      "InstitutionOverlay": {
        "additionalProperties": false,
        "properties": {
          "additions": {
            "items": {
              "$ref": "#/components/schemas/OverlayAddition"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Additions",
            "type": "array"
          },
          "institution_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          }
        },
        "required": ["institution_id", "template_id", "template_version", "additions"],
        "title": "InstitutionOverlay",
        "type": "object"
      },
      "InstitutionOverlayReport": {
        "additionalProperties": false,
        "properties": {
          "direction_probes": {
            "items": {
              "$ref": "#/components/schemas/DirectionProbe"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Direction Probes",
            "type": "array"
          },
          "every_activation_refusal_reached": {
            "title": "Every Activation Refusal Reached",
            "type": "boolean"
          },
          "every_conflict_reason_reached": {
            "title": "Every Conflict Reason Reached",
            "type": "boolean"
          },
          "every_direction_exercised": {
            "title": "Every Direction Exercised",
            "type": "boolean"
          },
          "families_covered": {
            "items": {
              "enum": [
                "content",
                "source",
                "review",
                "accessibility",
                "integrity",
                "provider",
                "retention",
                "export",
                "assessment",
                "grade",
                "credential",
                "tutor"
              ],
              "type": "string"
            },
            "maxItems": 12,
            "minItems": 12,
            "title": "Families Covered",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "monotonic_property_held": {
            "title": "Monotonic Property Held",
            "type": "boolean"
          },
          "monotonic_trials": {
            "minimum": 1.0,
            "title": "Monotonic Trials",
            "type": "integer"
          },
          "resolution_probes": {
            "items": {
              "$ref": "#/components/schemas/ResolutionProbe"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Resolution Probes",
            "type": "array"
          },
          "sample_preview": {
            "$ref": "#/components/schemas/OverlayImpactPreview"
          },
          "sample_refusals": {
            "items": {
              "$ref": "#/components/schemas/ActivationRefusal"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Sample Refusals",
            "type": "array"
          },
          "sample_resolution": {
            "$ref": "#/components/schemas/ResolutionResult"
          },
          "sample_revalidation": {
            "items": {
              "$ref": "#/components/schemas/RevalidationItem"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Sample Revalidation",
            "type": "array"
          },
          "sample_rollback": {
            "$ref": "#/components/schemas/OverlayVersion"
          },
          "schema_version": {
            "const": "7.9.0",
            "default": "7.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "setting_count": {
            "minimum": 1.0,
            "title": "Setting Count",
            "type": "integer"
          }
        },
        "required": [
          "generated_at",
          "setting_count",
          "families_covered",
          "direction_probes",
          "every_direction_exercised",
          "resolution_probes",
          "every_conflict_reason_reached",
          "monotonic_trials",
          "monotonic_property_held",
          "every_activation_refusal_reached",
          "sample_resolution",
          "sample_preview",
          "sample_revalidation",
          "sample_rollback",
          "sample_refusals"
        ],
        "title": "InstitutionOverlayReport",
        "type": "object"
      },
      "InstitutionWorkloadRule": {
        "additionalProperties": false,
        "properties": {
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "metric": {
            "enum": [
              "learner_effort",
              "instructor_workload",
              "seat_time",
              "independent_time",
              "calendar_duration"
            ],
            "title": "Metric",
            "type": "string"
          },
          "operator": {
            "enum": ["minimum", "maximum", "exact"],
            "title": "Operator",
            "type": "string"
          },
          "policy_code": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Policy Code",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "rule_id": {
            "pattern": "^work_rule_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "unit": {
            "enum": ["minute", "week"],
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Value",
            "type": "integer"
          }
        },
        "required": [
          "rule_id",
          "policy_code",
          "policy_version",
          "evidence_ref",
          "metric",
          "operator",
          "value",
          "unit",
          "rationale"
        ],
        "title": "InstitutionWorkloadRule",
        "type": "object"
      },
      "IntRange": {
        "additionalProperties": false,
        "properties": {
          "high": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "High",
            "type": "integer"
          },
          "low": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Low",
            "type": "integer"
          }
        },
        "required": ["low", "high"],
        "title": "IntRange",
        "type": "object"
      },
      "IntValue": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "int",
            "default": "int",
            "title": "Kind",
            "type": "string"
          },
          "value": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Value",
            "type": "integer"
          }
        },
        "required": ["value"],
        "title": "IntValue",
        "type": "object"
      },
      "IntakeCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["envelope", "hostile", "protected", "persistence", "review", "authority"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "IntakeCorpusCaseResult",
        "type": "object"
      },
      "IntakeCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["envelope", "hostile", "protected", "persistence", "review", "authority"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "IntakeCorpusMetric",
        "type": "object"
      },
      "IntakeEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/IntakeCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.15-agent-result-intake-v1",
            "default": "metis-m6.15-agent-result-intake-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_probe_refused": {
            "title": "Every Probe Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "forbidden_field_names": {
            "maximum": 0.0,
            "minimum": 0.0,
            "title": "Forbidden Field Names",
            "type": "integer"
          },
          "gates_per_output_kind": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Gates Per Output Kind",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/IntakeCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/AuthorityProbe"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          },
          "scanned_field_names": {
            "minimum": 1.0,
            "title": "Scanned Field Names",
            "type": "integer"
          },
          "schema_version": {
            "const": "6.15.0",
            "default": "6.15.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "probes",
          "every_probe_refused",
          "scanned_field_names",
          "forbidden_field_names",
          "gates_per_output_kind"
        ],
        "title": "IntakeEvaluationReport",
        "type": "object"
      },
      "IntakeRejection": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "signature_not_configured",
              "signature_mismatch",
              "body_hash_mismatch",
              "envelope_replayed",
              "payload_too_large",
              "unexpected_step",
              "unexpected_output_kind",
              "tenant_mismatch",
              "course_mismatch",
              "unpinned_citation",
              "uncited_claim",
              "protected_field_present",
              "protected_value_present",
              "field_kind_mismatch"
            ],
            "title": "Reason",
            "type": "string"
          },
          "subject": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["reason", "subject", "detail"],
        "title": "IntakeRejection",
        "type": "object"
      },
      "IntakeReport": {
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AcceptedSignal"
            },
            "maxItems": 1000,
            "title": "Accepted",
            "type": "array"
          },
          "approved_sources": {
            "items": {
              "enum": [
                "survey",
                "comment",
                "support_ticket",
                "correction",
                "analytics",
                "performance",
                "accessibility",
                "integrity"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Approved Sources",
            "type": "array"
          },
          "minimum_cohort": {
            "minimum": 1.0,
            "title": "Minimum Cohort",
            "type": "integer"
          },
          "refused": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RefusedSignal"
            },
            "maxItems": 1000,
            "title": "Refused",
            "type": "array"
          }
        },
        "required": ["minimum_cohort", "approved_sources"],
        "title": "IntakeReport",
        "type": "object"
      },
      "IntakeRequest": {
        "additionalProperties": false,
        "description": "One envelope offered for intake, plus what the caller expected it to be.\n\n``expected_step_id`` and ``expected_output_kind`` come from the plan, not\nfrom the envelope. An intake that took the step and kind the result claimed\nwould accept a result for a step nobody dispatched.",
        "properties": {
          "envelope": {
            "$ref": "#/components/schemas/ResultEnvelope"
          },
          "expected_course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Course Id"
          },
          "expected_output_kind": {
            "enum": [
              "curriculum_outline_proposal",
              "item_draft_proposal",
              "verification_finding_set",
              "accessibility_remediation_proposal",
              "tutoring_script_proposal"
            ],
            "title": "Expected Output Kind",
            "type": "string"
          },
          "expected_step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expected Step Id",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "envelope", "expected_step_id", "expected_output_kind"],
        "title": "IntakeRequest",
        "type": "object"
      },
      "IntakeResponse": {
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "title": "Accepted",
            "type": "boolean"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "envelope_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Envelope Id",
            "type": "string"
          },
          "findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ProtectedFieldFinding"
            },
            "maxItems": 60,
            "title": "Findings",
            "type": "array"
          },
          "proposal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ProposalRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "rejections": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IntakeRejection"
            },
            "maxItems": 60,
            "title": "Rejections",
            "type": "array"
          },
          "schema_version": {
            "const": "6.15.0",
            "default": "6.15.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["envelope_id", "decided_at", "accepted"],
        "title": "IntakeResponse",
        "type": "object"
      },
      "IntegrationConnection": {
        "additionalProperties": false,
        "description": "One institution's link to one outside system.",
        "properties": {
          "capabilities": {
            "items": {
              "$ref": "#/components/schemas/CapabilityProbe"
            },
            "maxItems": 200,
            "title": "Capabilities",
            "type": "array"
          },
          "cleared_privacy_class": {
            "default": "pseudonymous",
            "enum": ["public", "pseudonymous", "identifying", "sensitive"],
            "title": "Cleared Privacy Class",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "connection_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Connection Id",
            "type": "string"
          },
          "credential": {
            "$ref": "#/components/schemas/IntegrationCredentialRef"
          },
          "display_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "enabled": {
            "default": true,
            "title": "Enabled",
            "type": "boolean"
          },
          "endpoint": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Endpoint",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          },
          "kind": {
            "enum": ["lti", "oneroster", "lms", "lrs", "webhook", "credential"],
            "title": "Kind",
            "type": "string"
          },
          "last_failure_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Failure At"
          },
          "last_success_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Success At"
          },
          "owner": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "version": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "connection_id",
          "institution_id",
          "kind",
          "display_name",
          "endpoint",
          "credential",
          "config_sha256",
          "version",
          "owner"
        ],
        "title": "IntegrationConnection",
        "type": "object"
      },
      "IntegrationCredentialRef": {
        "additionalProperties": false,
        "description": "The name of a secret, never the secret.",
        "properties": {
          "last_rotated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Rotated At"
          },
          "owner": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "ref": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Ref",
            "type": "string"
          },
          "rotates_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rotates At"
          }
        },
        "required": ["ref", "owner"],
        "title": "IntegrationCredentialRef",
        "type": "object"
      },
      "IntegrationOperation": {
        "additionalProperties": false,
        "description": "One run against one connection.",
        "properties": {
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/OperationConflict"
            },
            "maxItems": 100000,
            "title": "Conflicts",
            "type": "array"
          },
          "connection_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Connection Id",
            "type": "string"
          },
          "diagnostics": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Diagnostics",
            "type": "array"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 255,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "kind": {
            "enum": [
              "roster_sync",
              "deep_link",
              "launch",
              "grade_push",
              "grade_correction",
              "export",
              "webhook_delivery",
              "credential_event"
            ],
            "title": "Kind",
            "type": "string"
          },
          "operation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Operation Id",
            "type": "string"
          },
          "privacy_class": {
            "default": "pseudonymous",
            "enum": ["public", "pseudonymous", "identifying", "sensitive"],
            "title": "Privacy Class",
            "type": "string"
          },
          "receipt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OperationReceipt"
              },
              {
                "type": "null"
              }
            ]
          },
          "redactions": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Redactions",
            "type": "array"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "requested_by_role": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Requested By Role",
            "type": "string"
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/OperationResource"
            },
            "maxItems": 100000,
            "title": "Resources",
            "type": "array"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "state": {
            "enum": ["queued", "running", "succeeded", "partial", "failed", "unknown"],
            "title": "State",
            "type": "string"
          },
          "supersedes_operation_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Operation Id"
          }
        },
        "required": [
          "operation_id",
          "connection_id",
          "kind",
          "state",
          "requested_by",
          "requested_by_role",
          "started_at",
          "idempotency_key",
          "expected_version"
        ],
        "title": "IntegrationOperation",
        "type": "object"
      },
      "IntegrationWorkspaceAggregate": {
        "additionalProperties": false,
        "description": "One institution's integrations and everything that has run against them.",
        "properties": {
          "connections": {
            "items": {
              "$ref": "#/components/schemas/IntegrationConnection"
            },
            "maxItems": 1000,
            "title": "Connections",
            "type": "array"
          },
          "institution_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          },
          "operations": {
            "items": {
              "$ref": "#/components/schemas/IntegrationOperation"
            },
            "maxItems": 100000,
            "title": "Operations",
            "type": "array"
          },
          "schema_version": {
            "const": "9.19.0",
            "default": "9.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["institution_id", "title"],
        "title": "IntegrationWorkspaceAggregate",
        "type": "object"
      },
      "IntegrationWorkspaceView": {
        "additionalProperties": false,
        "description": "One institution's integration operations, whole.",
        "properties": {
          "attention": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Attention",
            "type": "array"
          },
          "connections": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ConnectionView"
            },
            "title": "Connections",
            "type": "array"
          },
          "institution_id": {
            "title": "Institution Id",
            "type": "string"
          },
          "operations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/OperationView"
            },
            "title": "Operations",
            "type": "array"
          },
          "operator_handoffs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/OperatorHandoffView"
            },
            "title": "Operator Handoffs",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "unresolved": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unresolved",
            "type": "array"
          }
        },
        "required": ["institution_id", "title"],
        "title": "IntegrationWorkspaceView",
        "type": "object"
      },
      "IntegrityAuditReport": {
        "additionalProperties": false,
        "properties": {
          "explanations": {
            "items": {
              "$ref": "#/components/schemas/LearnerExplanationView"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Explanations",
            "type": "array"
          },
          "export_verifies": {
            "title": "Export Verifies",
            "type": "boolean"
          },
          "field_policy_cells": {
            "minimum": 1.0,
            "title": "Field Policy Cells",
            "type": "integer"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "pre_decision_is_not_accusatory": {
            "title": "Pre Decision Is Not Accusatory",
            "type": "boolean"
          },
          "protected_classes_never_reach_learner": {
            "title": "Protected Classes Never Reach Learner",
            "type": "boolean"
          },
          "purge_keeps_chain_intact": {
            "title": "Purge Keeps Chain Intact",
            "type": "boolean"
          },
          "purge_under_hold_refused": {
            "title": "Purge Under Hold Refused",
            "type": "boolean"
          },
          "sample_export": {
            "$ref": "#/components/schemas/AuditExport"
          },
          "sample_history": {
            "$ref": "#/components/schemas/HistoryVerification"
          },
          "sample_purge": {
            "$ref": "#/components/schemas/PurgeReport"
          },
          "sample_refusals": {
            "items": {
              "$ref": "#/components/schemas/AccessRefusal"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Sample Refusals",
            "type": "array"
          },
          "schema_version": {
            "const": "7.5.0",
            "default": "7.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tamper_detected": {
            "title": "Tamper Detected",
            "type": "boolean"
          },
          "tamper_probe": {
            "$ref": "#/components/schemas/ChainVerification"
          },
          "unsupported_locale_refused": {
            "title": "Unsupported Locale Refused",
            "type": "boolean"
          },
          "visibility_probes": {
            "items": {
              "$ref": "#/components/schemas/VisibilityProbe"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Visibility Probes",
            "type": "array"
          }
        },
        "required": [
          "generated_at",
          "field_policy_cells",
          "visibility_probes",
          "protected_classes_never_reach_learner",
          "tamper_probe",
          "tamper_detected",
          "purge_under_hold_refused",
          "purge_keeps_chain_intact",
          "export_verifies",
          "explanations",
          "pre_decision_is_not_accusatory",
          "unsupported_locale_refused",
          "sample_export",
          "sample_history",
          "sample_purge",
          "sample_refusals"
        ],
        "title": "IntegrityAuditReport",
        "type": "object"
      },
      "IntegrityCase": {
        "additionalProperties": false,
        "description": "The case a decision is made about. Every party is a digest in a role.",
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "conflicts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ConflictDeclaration"
            },
            "maxItems": 40,
            "title": "Conflicts",
            "type": "array"
          },
          "evidence_requests": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EvidenceRequest"
            },
            "maxItems": 40,
            "title": "Evidence Requests",
            "type": "array"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "learner_explanation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LearnerExplanation"
              },
              {
                "type": "null"
              }
            ]
          },
          "opened_at": {
            "format": "date-time",
            "title": "Opened At",
            "type": "string"
          },
          "participants": {
            "items": {
              "$ref": "#/components/schemas/Participant"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Participants",
            "type": "array"
          },
          "policy": {
            "$ref": "#/components/schemas/CasePolicy"
          },
          "schema_version": {
            "const": "7.4.0",
            "default": "7.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "state": {
            "enum": ["open", "evidence_complete", "decided", "stayed", "appealed", "closed"],
            "title": "State",
            "type": "string"
          },
          "stays": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Stay"
            },
            "maxItems": 20,
            "title": "Stays",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "case_id",
          "tenant_id",
          "signal_id",
          "learner_digest",
          "policy",
          "participants",
          "state",
          "version",
          "opened_at"
        ],
        "title": "IntegrityCase",
        "type": "object"
      },
      "IntegrityIncident": {
        "additionalProperties": false,
        "properties": {
          "incident_code": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Incident Code",
            "type": "string"
          },
          "incident_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Incident Id",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          }
        },
        "required": ["incident_id", "incident_code", "recorded_at"],
        "title": "IntegrityIncident",
        "type": "object"
      },
      "IntegrityModeRegistryReport": {
        "additionalProperties": false,
        "properties": {
          "canonical": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "propertyNames": {
              "enum": ["stakes", "posture", "stance", "style"]
            },
            "title": "Canonical",
            "type": "object"
          },
          "deprecations": {
            "items": {
              "$ref": "#/components/schemas/CompatibilityWindow"
            },
            "title": "Deprecations",
            "type": "array"
          },
          "expressions": {
            "items": {
              "$ref": "#/components/schemas/ContextExpression"
            },
            "title": "Expressions",
            "type": "array"
          },
          "inventory": {
            "items": {
              "$ref": "#/components/schemas/VocabularyEntry"
            },
            "title": "Inventory",
            "type": "array"
          },
          "lossy_default_count": {
            "minimum": 0.0,
            "title": "Lossy Default Count",
            "type": "integer"
          },
          "mapping_version": {
            "const": "7.2.0",
            "default": "7.2.0",
            "title": "Mapping Version",
            "type": "string"
          },
          "projections": {
            "items": {
              "$ref": "#/components/schemas/Projection"
            },
            "title": "Projections",
            "type": "array"
          },
          "round_trips": {
            "items": {
              "$ref": "#/components/schemas/RoundTrip"
            },
            "title": "Round Trips",
            "type": "array"
          },
          "schema_version": {
            "const": "7.2.0",
            "default": "7.2.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "inventory",
          "canonical",
          "projections",
          "round_trips",
          "expressions",
          "deprecations",
          "lossy_default_count"
        ],
        "title": "IntegrityModeRegistryReport",
        "type": "object"
      },
      "IntegrityRule": {
        "additionalProperties": false,
        "properties": {
          "integrity_mode": {
            "enum": ["open", "monitored", "proctored", "lockdown"],
            "title": "Integrity Mode",
            "type": "string"
          },
          "required_gates": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Required Gates",
            "type": "array"
          },
          "treat_unresolved_gate_as_eligible": {
            "const": false,
            "default": false,
            "title": "Treat Unresolved Gate As Eligible",
            "type": "boolean"
          }
        },
        "required": ["integrity_mode"],
        "title": "IntegrityRule",
        "type": "object"
      },
      "IntegritySignalReviewReport": {
        "additionalProperties": false,
        "properties": {
          "every_probe_refused": {
            "title": "Every Probe Refused",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "journeys": {
            "items": {
              "$ref": "#/components/schemas/JourneyResult"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Journeys",
            "type": "array"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/ProtectedDataProbe"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          },
          "queue_sample": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SignalQueueItem"
            },
            "maxItems": 50,
            "title": "Queue Sample",
            "type": "array"
          },
          "schema_version": {
            "const": "7.3.0",
            "default": "7.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "visibility_matrix": {
            "items": {
              "$ref": "#/components/schemas/VisibilityCell"
            },
            "title": "Visibility Matrix",
            "type": "array"
          }
        },
        "required": [
          "generated_at",
          "journeys",
          "probes",
          "every_probe_refused",
          "visibility_matrix"
        ],
        "title": "IntegritySignalReviewReport",
        "type": "object"
      },
      "InteractionDefinition": {
        "additionalProperties": false,
        "properties": {
          "attempts_allowed": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Attempts Allowed",
            "type": "integer"
          },
          "end_millis": {
            "anyOf": [
              {
                "maximum": 86400000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Millis"
          },
          "interaction_id": {
            "pattern": "^interaction:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Interaction Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "hotspot",
              "timeline",
              "drag_drop",
              "manipulation",
              "branch",
              "simulation_control"
            ],
            "title": "Kind",
            "type": "string"
          },
          "media_binding_id": {
            "title": "Media Binding Id",
            "type": "string"
          },
          "regions": {
            "items": {
              "$ref": "#/components/schemas/InteractionRegion"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Regions",
            "type": "array"
          },
          "response_event": {
            "pattern": "^[a-z][a-z0-9_.-]{2,127}$",
            "title": "Response Event",
            "type": "string"
          },
          "start_millis": {
            "maximum": 86400000.0,
            "minimum": 0.0,
            "title": "Start Millis",
            "type": "integer"
          }
        },
        "required": [
          "interaction_id",
          "kind",
          "media_binding_id",
          "response_event",
          "regions",
          "start_millis",
          "attempts_allowed"
        ],
        "title": "InteractionDefinition",
        "type": "object"
      },
      "InteractionOptions": {
        "additionalProperties": false,
        "description": "The options of one interaction, and which of them are keyed.\n\nThe key gate needs the option ids rather than the option text, because the\nwhole point of the check is that the text changed.",
        "properties": {
          "interaction_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Interaction Id",
            "type": "string"
          },
          "key_option_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Key Option Ids",
            "type": "array"
          },
          "option_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "title": "Option Ids",
            "type": "array"
          }
        },
        "required": ["interaction_id", "option_ids", "key_option_ids"],
        "title": "InteractionOptions",
        "type": "object"
      },
      "InteractionRegion": {
        "additionalProperties": false,
        "properties": {
          "accessible_label": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Accessible Label",
            "type": "string"
          },
          "coordinates": {
            "default": [],
            "items": {
              "type": "number"
            },
            "maxItems": 100,
            "title": "Coordinates",
            "type": "array"
          },
          "region_id": {
            "pattern": "^region:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Region Id",
            "type": "string"
          },
          "response_value": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Response Value",
            "type": "string"
          },
          "shape": {
            "enum": ["rectangle", "circle", "polygon", "full_surface"],
            "title": "Shape",
            "type": "string"
          },
          "tab_order": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Tab Order",
            "type": "integer"
          }
        },
        "required": ["region_id", "shape", "accessible_label", "response_value", "tab_order"],
        "title": "InteractionRegion",
        "type": "object"
      },
      "InteractiveAuthentication": {
        "additionalProperties": false,
        "description": "Evidence that a person was present. A token minted for a job has no such thing.",
        "properties": {
          "authenticated_at": {
            "format": "date-time",
            "title": "Authenticated At",
            "type": "string"
          },
          "method": {
            "enum": ["password_mfa", "passkey", "sso_mfa"],
            "title": "Method",
            "type": "string"
          },
          "second_factor": {
            "title": "Second Factor",
            "type": "boolean"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          }
        },
        "required": ["method", "authenticated_at", "session_id", "second_factor"],
        "title": "InteractiveAuthentication",
        "type": "object"
      },
      "InteractiveSandboxRuntime": {
        "additionalProperties": false,
        "properties": {
          "bundle_ref": {
            "pattern": "^bundle://[A-Za-z0-9._:/-]{3,300}@sha256:[a-f0-9]{64}$",
            "title": "Bundle Ref",
            "type": "string"
          },
          "bundle_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Bundle Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/PinnedArtifact"
          },
          "limits": {
            "$ref": "#/components/schemas/RuntimeResourceLimits"
          },
          "network_allowlist": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Network Allowlist",
            "type": "array"
          },
          "opaque_origin": {
            "const": true,
            "default": true,
            "title": "Opaque Origin",
            "type": "boolean"
          },
          "popups_allowed": {
            "const": false,
            "default": false,
            "title": "Popups Allowed",
            "type": "boolean"
          },
          "reset_policy": {
            "enum": ["every_attempt", "every_retry", "manual_with_audit"],
            "title": "Reset Policy",
            "type": "string"
          },
          "response_capture": {
            "$ref": "#/components/schemas/ResponseCapturePolicy"
          },
          "same_origin_allowed": {
            "const": false,
            "default": false,
            "title": "Same Origin Allowed",
            "type": "boolean"
          },
          "scripts_allowed": {
            "const": true,
            "default": true,
            "title": "Scripts Allowed",
            "type": "boolean"
          },
          "storage_persistence_allowed": {
            "const": false,
            "default": false,
            "title": "Storage Persistence Allowed",
            "type": "boolean"
          },
          "top_navigation_allowed": {
            "const": false,
            "default": false,
            "title": "Top Navigation Allowed",
            "type": "boolean"
          }
        },
        "required": [
          "engine",
          "bundle_ref",
          "bundle_sha256",
          "deterministic_seed",
          "reset_policy",
          "limits",
          "response_capture"
        ],
        "title": "InteractiveSandboxRuntime",
        "type": "object"
      },
      "InterlockCheckRequest": {
        "additionalProperties": false,
        "properties": {
          "assertion": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AssessmentContextAssertion"
              },
              {
                "type": "null"
              }
            ]
          },
          "request": {
            "$ref": "#/components/schemas/OperationRequest"
          }
        },
        "required": ["request"],
        "title": "InterlockCheckRequest",
        "type": "object"
      },
      "InterlockCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["context", "matrix", "revalidation", "bypass", "journey"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "InterlockCorpusCaseResult",
        "type": "object"
      },
      "InterlockCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["context", "matrix", "revalidation", "bypass", "journey"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "InterlockCorpusMetric",
        "type": "object"
      },
      "InterlockDecision": {
        "additionalProperties": false,
        "description": "The whole decision for one request.",
        "properties": {
          "aid_grant_required": {
            "anyOf": [
              {
                "enum": [
                  "calculator",
                  "formula_sheet",
                  "dictionary",
                  "notes",
                  "peer_discussion",
                  "screen_reader",
                  "extra_time",
                  "scribe"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aid Grant Required"
          },
          "checkpoint": {
            "enum": ["tool_request", "stream_turn", "deep_link", "session_resume"],
            "title": "Checkpoint",
            "type": "string"
          },
          "disposition": {
            "enum": ["allow", "deny", "scaffold_only", "require_aid_grant"],
            "title": "Disposition",
            "type": "string"
          },
          "escalation_reason": {
            "anyOf": [
              {
                "enum": [
                  "interlock.escalation.accommodation-requires-review",
                  "interlock.escalation.institution-policy-requires-human"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Reason"
          },
          "event": {
            "$ref": "#/components/schemas/InterlockEvent"
          },
          "mode": {
            "anyOf": [
              {
                "enum": [
                  "practice",
                  "homework",
                  "quiz",
                  "graded",
                  "exam",
                  "proctored",
                  "accommodation",
                  "review"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode"
          },
          "outcome": {
            "enum": ["allowed", "refused", "scaffold_offered", "escalated"],
            "title": "Outcome",
            "type": "string"
          },
          "refusal_message": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refusal Message"
          },
          "refusal_reason": {
            "anyOf": [
              {
                "enum": [
                  "interlock.refusal.mode-forbids-operation",
                  "interlock.refusal.aid-not-granted",
                  "interlock.refusal.context-unverified",
                  "interlock.refusal.operation-not-recognised"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refusal Reason"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "resolution": {
            "$ref": "#/components/schemas/OperationResolution"
          },
          "scaffold": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScaffoldOffer"
              },
              {
                "type": "null"
              }
            ]
          },
          "tool_grant_required": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tool Grant Required"
          },
          "verification": {
            "$ref": "#/components/schemas/ContextVerification"
          }
        },
        "required": [
          "request_id",
          "checkpoint",
          "mode",
          "resolution",
          "verification",
          "disposition",
          "outcome",
          "refusal_reason",
          "event"
        ],
        "title": "InterlockDecision",
        "type": "object"
      },
      "InterlockEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "alias_table_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Alias Table Sha256",
            "type": "string"
          },
          "clock_method": {
            "const": "caller-supplied-reading-never-a-wall-clock-v1",
            "title": "Clock Method",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-assessment-interlock",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.9.0",
            "title": "Engine Version",
            "type": "string"
          },
          "matrix_cells": {
            "minimum": 1.0,
            "title": "Matrix Cells",
            "type": "integer"
          },
          "matrix_method": {
            "const": "total-mode-by-operation-matrix-v1",
            "title": "Matrix Method",
            "type": "string"
          },
          "matrix_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Matrix Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.9.0",
            "default": "6.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "unsupported_behavior": {
            "const": "deny_when_the_context_cannot_be_verified",
            "title": "Unsupported Behavior",
            "type": "string"
          },
          "verification_method": {
            "const": "hmac-sha256-over-canonical-payload-v1",
            "title": "Verification Method",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "matrix_method",
          "verification_method",
          "clock_method",
          "matrix_sha256",
          "alias_table_sha256",
          "matrix_cells",
          "unsupported_behavior"
        ],
        "title": "InterlockEngineWitness",
        "type": "object"
      },
      "InterlockEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "bypass_probes": {
            "items": {
              "$ref": "#/components/schemas/BypassProbe"
            },
            "maxItems": 40,
            "minItems": 7,
            "title": "Bypass Probes",
            "type": "array"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/InterlockCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.9-assessment-interlock-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_bypass_is_invariant": {
            "title": "Every Bypass Is Invariant",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "matrix": {
            "$ref": "#/components/schemas/MatrixTotalityReport"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/InterlockCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "schema_version": {
            "const": "6.9.0",
            "default": "6.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/InterlockEngineWitness"
          }
        },
        "required": [
          "corpus_id",
          "generated_at",
          "witness",
          "cases",
          "metrics",
          "fixture_families",
          "matrix",
          "bypass_probes",
          "every_bypass_is_invariant"
        ],
        "title": "InterlockEvaluationReport",
        "type": "object"
      },
      "InterlockEvent": {
        "additionalProperties": false,
        "description": "A privacy-minimized record of one interlock decision.\n\nThere is deliberately no field on this model that can hold a learner's words,\nan answer, or a judgement about a person: every field is an identifier, a\nclosed vocabulary value, or a digest. ``learner_accused`` is a\n``Literal[False]`` because recording an interlock is not alleging anything.",
        "properties": {
          "actor_pseudonym": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Actor Pseudonym",
            "type": "string"
          },
          "assessment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "canonical_operation": {
            "anyOf": [
              {
                "enum": [
                  "tutor_hint",
                  "tutor_explanation",
                  "tutor_direct_answer",
                  "visualization_render",
                  "visualization_probe",
                  "code_execution",
                  "symbolic_execution",
                  "source_lookup",
                  "source_full_text",
                  "answer_reveal",
                  "answer_check",
                  "accessibility_screen_reader",
                  "accessibility_extra_time"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical Operation"
          },
          "checkpoint": {
            "enum": ["tool_request", "stream_turn", "deep_link", "session_resume"],
            "title": "Checkpoint",
            "type": "string"
          },
          "context_failures": {
            "default": [],
            "items": {
              "enum": [
                "interlock.context.missing",
                "interlock.context.signing-not-configured",
                "interlock.context.signature-invalid",
                "interlock.context.not-yet-valid",
                "interlock.context.expired",
                "interlock.context.outside-window",
                "interlock.context.conflicting-attempt",
                "interlock.context.conflicting-actor",
                "interlock.context.conflicting-session",
                "interlock.context.stale-institution-policy"
              ],
              "type": "string"
            },
            "maxItems": 12,
            "title": "Context Failures",
            "type": "array"
          },
          "disposition": {
            "enum": ["allow", "deny", "scaffold_only", "require_aid_grant"],
            "title": "Disposition",
            "type": "string"
          },
          "event_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Event Id",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "learner_accused": {
            "const": false,
            "default": false,
            "title": "Learner Accused",
            "type": "boolean"
          },
          "mode": {
            "anyOf": [
              {
                "enum": [
                  "practice",
                  "homework",
                  "quiz",
                  "graded",
                  "exam",
                  "proctored",
                  "accommodation",
                  "review"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "outcome": {
            "enum": ["allowed", "refused", "scaffold_offered", "escalated"],
            "title": "Outcome",
            "type": "string"
          },
          "pseudonym_keyed": {
            "title": "Pseudonym Keyed",
            "type": "boolean"
          },
          "refusal_reason": {
            "anyOf": [
              {
                "enum": [
                  "interlock.refusal.mode-forbids-operation",
                  "interlock.refusal.aid-not-granted",
                  "interlock.refusal.context-unverified",
                  "interlock.refusal.operation-not-recognised"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refusal Reason"
          }
        },
        "required": [
          "event_id",
          "occurred_at",
          "checkpoint",
          "mode",
          "canonical_operation",
          "disposition",
          "outcome",
          "refusal_reason",
          "actor_pseudonym",
          "pseudonym_keyed",
          "assessment_id",
          "item_id"
        ],
        "title": "InterlockEvent",
        "type": "object"
      },
      "InterlockProjection": {
        "additionalProperties": false,
        "description": "One stored interlock decision.",
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/InterlockDecision"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "request_id",
          "tenant_id",
          "created_at",
          "record_sha256",
          "decision"
        ],
        "title": "InterlockProjection",
        "type": "object"
      },
      "InterlockWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "decision_count": {
            "minimum": 0.0,
            "title": "Decision Count",
            "type": "integer"
          },
          "decisions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InterlockWorkspaceSummary"
            },
            "maxItems": 500,
            "title": "Decisions",
            "type": "array"
          },
          "escalated_count": {
            "minimum": 0.0,
            "title": "Escalated Count",
            "type": "integer"
          },
          "evaluation": {
            "$ref": "#/components/schemas/InterlockEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "refused_count": {
            "minimum": 0.0,
            "title": "Refused Count",
            "type": "integer"
          },
          "schema_version": {
            "const": "6.9.0",
            "default": "6.9.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "evaluation",
          "decision_count",
          "refused_count",
          "escalated_count"
        ],
        "title": "InterlockWorkspaceResponse",
        "type": "object"
      },
      "InterlockWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "canonical_operation": {
            "anyOf": [
              {
                "enum": [
                  "tutor_hint",
                  "tutor_explanation",
                  "tutor_direct_answer",
                  "visualization_render",
                  "visualization_probe",
                  "code_execution",
                  "symbolic_execution",
                  "source_lookup",
                  "source_full_text",
                  "answer_reveal",
                  "answer_check",
                  "accessibility_screen_reader",
                  "accessibility_extra_time"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical Operation"
          },
          "checkpoint": {
            "enum": ["tool_request", "stream_turn", "deep_link", "session_resume"],
            "title": "Checkpoint",
            "type": "string"
          },
          "context_verified": {
            "title": "Context Verified",
            "type": "boolean"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "disposition": {
            "enum": ["allow", "deny", "scaffold_only", "require_aid_grant"],
            "title": "Disposition",
            "type": "string"
          },
          "mode": {
            "anyOf": [
              {
                "enum": [
                  "practice",
                  "homework",
                  "quiz",
                  "graded",
                  "exam",
                  "proctored",
                  "accommodation",
                  "review"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode"
          },
          "outcome": {
            "enum": ["allowed", "refused", "scaffold_offered", "escalated"],
            "title": "Outcome",
            "type": "string"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "request_id",
          "created_at",
          "checkpoint",
          "mode",
          "canonical_operation",
          "disposition",
          "outcome",
          "context_verified"
        ],
        "title": "InterlockWorkspaceSummary",
        "type": "object"
      },
      "InterpretationSource": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Authority",
            "type": "string"
          },
          "citation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Citation",
            "type": "string"
          },
          "perspective": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Perspective",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_kind": {
            "enum": ["primary", "secondary"],
            "title": "Source Kind",
            "type": "string"
          }
        },
        "required": ["source_id", "source_kind", "citation", "authority", "perspective"],
        "title": "InterpretationSource",
        "type": "object"
      },
      "InvalidateRequest": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "gate": {
            "$ref": "#/components/schemas/HumanGate"
          },
          "kind": {
            "enum": ["subject_revised", "evidence_replaced", "policy_changed", "expired"],
            "title": "Kind",
            "type": "string"
          },
          "superseded_by_gate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Superseded By Gate Id"
          }
        },
        "required": ["gate", "kind", "detail"],
        "title": "InvalidateRequest",
        "type": "object"
      },
      "InvalidatedDerivedAssetResponse": {
        "description": "Result of invalidating one derived artifact.",
        "properties": {
          "artifact_path": {
            "title": "Artifact Path",
            "type": "string"
          },
          "asset_type": {
            "enum": ["extraction", "outline", "generation", "concept_graph", "evaluation"],
            "title": "Asset Type",
            "type": "string"
          },
          "invalidated": {
            "title": "Invalidated",
            "type": "boolean"
          }
        },
        "required": ["asset_type", "invalidated", "artifact_path"],
        "title": "InvalidatedDerivedAssetResponse",
        "type": "object"
      },
      "InventoryItem": {
        "additionalProperties": false,
        "description": "One thing in the tenant that a setting could touch.",
        "properties": {
          "category": {
            "enum": ["users", "content", "builds", "attempts", "integrations", "schedules"],
            "title": "Category",
            "type": "string"
          },
          "depends_on_keys": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Depends On Keys",
            "type": "array"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          }
        },
        "required": ["category", "item_id"],
        "title": "InventoryItem",
        "type": "object"
      },
      "IrtAbilityScale": {
        "additionalProperties": false,
        "properties": {
          "maximum": {
            "title": "Maximum",
            "type": "number"
          },
          "metric": {
            "const": "logit",
            "default": "logit",
            "title": "Metric",
            "type": "string"
          },
          "minimum": {
            "title": "Minimum",
            "type": "number"
          },
          "orientation": {
            "const": "higher_means_more_ability",
            "default": "higher_means_more_ability",
            "title": "Orientation",
            "type": "string"
          },
          "origin": {
            "title": "Origin",
            "type": "number"
          },
          "reference_population_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reference Population Id",
            "type": "string"
          },
          "reference_population_revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reference Population Revision",
            "type": "string"
          },
          "reference_population_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reference Population Sha256",
            "type": "string"
          },
          "scale_id": {
            "pattern": "^ability-scale:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Scale Id",
            "type": "string"
          },
          "scale_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Scale Version",
            "type": "string"
          },
          "unit": {
            "exclusiveMinimum": 0.0,
            "title": "Unit",
            "type": "number"
          }
        },
        "required": [
          "scale_id",
          "scale_version",
          "origin",
          "unit",
          "minimum",
          "maximum",
          "reference_population_id",
          "reference_population_revision",
          "reference_population_sha256"
        ],
        "title": "IrtAbilityScale",
        "type": "object"
      },
      "IrtConfigurationIdentity": {
        "additionalProperties": false,
        "properties": {
          "config_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Config Id",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "random_seed": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Random Seed"
          },
          "reproducibility": {
            "enum": ["deterministic", "seeded", "externally_reproducible"],
            "title": "Reproducibility",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["config_id", "version", "config_sha256", "reproducibility"],
        "title": "IrtConfigurationIdentity",
        "type": "object"
      },
      "IrtConvergenceDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "converged": {
            "title": "Converged",
            "type": "boolean"
          },
          "criterion": {
            "exclusiveMinimum": 0.0,
            "title": "Criterion",
            "type": "number"
          },
          "final_change": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Final Change"
          },
          "iterations": {
            "minimum": 0.0,
            "title": "Iterations",
            "type": "integer"
          },
          "maximum_iterations": {
            "minimum": 1.0,
            "title": "Maximum Iterations",
            "type": "integer"
          },
          "termination": {
            "enum": [
              "criterion_met",
              "maximum_iterations",
              "singular_information",
              "boundary_solution",
              "numerical_failure",
              "cancelled"
            ],
            "title": "Termination",
            "type": "string"
          },
          "warnings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": ["converged", "iterations", "maximum_iterations", "criterion", "termination"],
        "title": "IrtConvergenceDiagnostic",
        "type": "object"
      },
      "IrtCovarianceEntry": {
        "additionalProperties": false,
        "properties": {
          "column_parameter": {
            "enum": ["difficulty", "discrimination", "guessing", "scaling_constant"],
            "title": "Column Parameter",
            "type": "string"
          },
          "covariance": {
            "title": "Covariance",
            "type": "number"
          },
          "row_parameter": {
            "enum": ["difficulty", "discrimination", "guessing", "scaling_constant"],
            "title": "Row Parameter",
            "type": "string"
          }
        },
        "required": ["row_parameter", "column_parameter", "covariance"],
        "title": "IrtCovarianceEntry",
        "type": "object"
      },
      "IrtDiagnosticCatalog": {
        "additionalProperties": false,
        "properties": {
          "runs": {
            "items": {
              "$ref": "#/components/schemas/IrtDiagnosticSummary"
            },
            "maxItems": 1000,
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["runs"],
        "title": "IrtDiagnosticCatalog",
        "type": "object"
      },
      "IrtDiagnosticCheck": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "model_applicability",
              "parameter_bounds",
              "covariance",
              "convergence",
              "identifiability",
              "sample_sufficiency",
              "item_sufficiency",
              "information",
              "residual",
              "global_fit",
              "item_fit",
              "local_dependence",
              "linking"
            ],
            "title": "Category",
            "type": "string"
          },
          "check_id": {
            "pattern": "^irt-check:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Check Id",
            "type": "string"
          },
          "criterion": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Criterion",
            "type": "string"
          },
          "evidence_paths": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Paths",
            "type": "array"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "observed": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Observed",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "fail", "insufficient", "not_applicable"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "check_id",
          "category",
          "status",
          "observed",
          "criterion",
          "evidence_paths",
          "message"
        ],
        "title": "IrtDiagnosticCheck",
        "type": "object"
      },
      "IrtDiagnosticPayload": {
        "additionalProperties": false,
        "properties": {
          "ability_scale": {
            "$ref": "#/components/schemas/IrtAbilityScale"
          },
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "configuration": {
            "$ref": "#/components/schemas/IrtConfigurationIdentity"
          },
          "convergence": {
            "$ref": "#/components/schemas/IrtConvergenceDiagnostic"
          },
          "global_fit": {
            "items": {
              "$ref": "#/components/schemas/IrtFitStatistic"
            },
            "maxItems": 8,
            "minItems": 4,
            "title": "Global Fit",
            "type": "array"
          },
          "identifiability": {
            "$ref": "#/components/schemas/IrtIdentifiabilityDiagnostic"
          },
          "information": {
            "items": {
              "$ref": "#/components/schemas/IrtInformationPoint"
            },
            "maxItems": 10000,
            "minItems": 3,
            "title": "Information",
            "type": "array"
          },
          "input_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Snapshot Sha256",
            "type": "string"
          },
          "intended_use": {
            "enum": ["pilot", "operational", "research"],
            "title": "Intended Use",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExactLinkedItemRevision"
          },
          "item_fit": {
            "items": {
              "$ref": "#/components/schemas/IrtFitStatistic"
            },
            "maxItems": 8,
            "minItems": 3,
            "title": "Item Fit",
            "type": "array"
          },
          "linking": {
            "$ref": "#/components/schemas/IrtLinkingDiagnostic"
          },
          "local_dependence": {
            "$ref": "#/components/schemas/IrtLocalDependenceDiagnostic"
          },
          "model_family": {
            "enum": ["1PL", "2PL", "3PL"],
            "title": "Model Family",
            "type": "string"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "parameter_covariance": {
            "$ref": "#/components/schemas/IrtParameterCovariance"
          },
          "parameters": {
            "items": {
              "$ref": "#/components/schemas/IrtParameterEstimate"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Parameters",
            "type": "array"
          },
          "residual": {
            "$ref": "#/components/schemas/IrtResidualDiagnostic"
          },
          "run_id": {
            "pattern": "^irt-run:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "sample": {
            "$ref": "#/components/schemas/IrtSampleSnapshot"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tool": {
            "$ref": "#/components/schemas/IrtToolIdentity"
          }
        },
        "required": [
          "run_id",
          "completed_at",
          "item",
          "model_family",
          "intended_use",
          "input_snapshot_sha256",
          "output_sha256",
          "tool",
          "configuration",
          "sample",
          "ability_scale",
          "parameters",
          "parameter_covariance",
          "linking",
          "convergence",
          "identifiability",
          "information",
          "residual",
          "global_fit",
          "item_fit",
          "local_dependence"
        ],
        "title": "IrtDiagnosticPayload",
        "type": "object"
      },
      "IrtDiagnosticPolicy": {
        "additionalProperties": false,
        "properties": {
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "maximum_absolute_residual": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Absolute Residual",
            "type": "number"
          },
          "maximum_condition_number": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Condition Number",
            "type": "number"
          },
          "maximum_infit_msq": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Infit Msq",
            "type": "number"
          },
          "maximum_local_dependence_q3": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Maximum Local Dependence Q3",
            "type": "number"
          },
          "maximum_outfit_msq": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Outfit Msq",
            "type": "number"
          },
          "maximum_rmsea": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Rmsea",
            "type": "number"
          },
          "minimum_infit_msq": {
            "exclusiveMinimum": 0.0,
            "title": "Minimum Infit Msq",
            "type": "number"
          },
          "minimum_information_at_origin": {
            "exclusiveMinimum": 0.0,
            "title": "Minimum Information At Origin",
            "type": "number"
          },
          "minimum_item_fit_p_value": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Minimum Item Fit P Value",
            "type": "number"
          },
          "minimum_outfit_msq": {
            "exclusiveMinimum": 0.0,
            "title": "Minimum Outfit Msq",
            "type": "number"
          },
          "model_policies": {
            "items": {
              "$ref": "#/components/schemas/IrtModelPolicy"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Model Policies",
            "type": "array"
          },
          "parameter_policies": {
            "items": {
              "$ref": "#/components/schemas/IrtParameterPolicy"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Parameter Policies",
            "type": "array"
          },
          "policy_id": {
            "const": "metis.irt-diagnostic-eligibility",
            "default": "metis.irt-diagnostic-eligibility",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          }
        },
        "required": [
          "parameter_policies",
          "model_policies",
          "maximum_condition_number",
          "minimum_information_at_origin",
          "maximum_absolute_residual",
          "maximum_rmsea",
          "minimum_infit_msq",
          "maximum_infit_msq",
          "minimum_outfit_msq",
          "maximum_outfit_msq",
          "minimum_item_fit_p_value",
          "maximum_local_dependence_q3",
          "source_refs",
          "limitations",
          "policy_sha256"
        ],
        "title": "IrtDiagnosticPolicy",
        "type": "object"
      },
      "IrtDiagnosticRawRun": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "diagnostic": {
            "$ref": "#/components/schemas/IrtDiagnosticPayload"
          },
          "raw_diagnostic_id": {
            "pattern": "^irt-diagnostic-raw-[a-f0-9]{40}$",
            "title": "Raw Diagnostic Id",
            "type": "string"
          },
          "raw_diagnostic_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Raw Diagnostic Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "raw_diagnostic_id",
          "tenant_id",
          "diagnostic",
          "raw_diagnostic_sha256",
          "created_at"
        ],
        "title": "IrtDiagnosticRawRun",
        "type": "object"
      },
      "IrtDiagnosticRunRequest": {
        "additionalProperties": false,
        "properties": {
          "diagnostic": {
            "$ref": "#/components/schemas/IrtDiagnosticPayload"
          },
          "expected_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Policy Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^irt-diagnostic:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "diagnostic", "expected_policy_sha256", "reason"],
        "title": "IrtDiagnosticRunRequest",
        "type": "object"
      },
      "IrtDiagnosticSummary": {
        "additionalProperties": false,
        "properties": {
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "intended_use": {
            "enum": ["pilot", "operational", "research"],
            "title": "Intended Use",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_revision": {
            "minimum": 1.0,
            "title": "Item Revision",
            "type": "integer"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "model_family": {
            "enum": ["1PL", "2PL", "3PL"],
            "title": "Model Family",
            "type": "string"
          },
          "raw_diagnostic_id": {
            "title": "Raw Diagnostic Id",
            "type": "string"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["calibrated", "flagged", "ineligible"],
            "title": "Status",
            "type": "string"
          },
          "tool_id": {
            "title": "Tool Id",
            "type": "string"
          },
          "tool_version": {
            "title": "Tool Version",
            "type": "string"
          },
          "verdict_id": {
            "title": "Verdict Id",
            "type": "string"
          }
        },
        "required": [
          "verdict_id",
          "raw_diagnostic_id",
          "item_id",
          "item_revision",
          "item_revision_sha256",
          "run_id",
          "model_family",
          "intended_use",
          "tool_id",
          "tool_version",
          "status",
          "completed_at",
          "created_at"
        ],
        "title": "IrtDiagnosticSummary",
        "type": "object"
      },
      "IrtDiagnosticVerdict": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "checks": {
            "items": {
              "$ref": "#/components/schemas/IrtDiagnosticCheck"
            },
            "maxItems": 13,
            "minItems": 13,
            "title": "Checks",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "interpretable_parameters": {
            "items": {
              "enum": ["difficulty", "discrimination", "guessing", "scaling_constant"],
              "type": "string"
            },
            "title": "Interpretable Parameters",
            "type": "array"
          },
          "model_family": {
            "enum": ["1PL", "2PL", "3PL"],
            "title": "Model Family",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.irt-diagnostic-eligibility",
            "default": "metis.irt-diagnostic-eligibility",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "promotion_applied": {
            "const": false,
            "default": false,
            "title": "Promotion Applied",
            "type": "boolean"
          },
          "raw_diagnostic_id": {
            "title": "Raw Diagnostic Id",
            "type": "string"
          },
          "raw_diagnostic_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Raw Diagnostic Sha256",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["calibrated", "flagged", "ineligible"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "verdict_id": {
            "pattern": "^irt-diagnostic-verdict-[a-f0-9]{40}$",
            "title": "Verdict Id",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          }
        },
        "required": [
          "verdict_id",
          "tenant_id",
          "raw_diagnostic_id",
          "raw_diagnostic_sha256",
          "policy_sha256",
          "model_family",
          "status",
          "checks",
          "interpretable_parameters",
          "actor_id",
          "actor_role",
          "reason",
          "idempotency_key",
          "request_sha256",
          "verdict_sha256",
          "created_at"
        ],
        "title": "IrtDiagnosticVerdict",
        "type": "object"
      },
      "IrtDiagnosticWorkspace": {
        "additionalProperties": false,
        "properties": {
          "raw_diagnostic": {
            "$ref": "#/components/schemas/IrtDiagnosticRawRun"
          },
          "schema_version": {
            "const": "5.10.0",
            "default": "5.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "verdict": {
            "$ref": "#/components/schemas/IrtDiagnosticVerdict"
          }
        },
        "required": ["raw_diagnostic", "verdict"],
        "title": "IrtDiagnosticWorkspace",
        "type": "object"
      },
      "IrtEstimate": {
        "additionalProperties": false,
        "properties": {
          "interval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IrtUncertaintyInterval"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "standard_error": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Error"
          },
          "status": {
            "enum": ["estimated", "fixed", "not_estimable", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["status", "value", "interval"],
        "title": "IrtEstimate",
        "type": "object"
      },
      "IrtFitStatistic": {
        "additionalProperties": false,
        "properties": {
          "degrees_of_freedom": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Degrees Of Freedom"
          },
          "p_value": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "P Value"
          },
          "statistic": {
            "enum": [
              "log_likelihood",
              "aic",
              "bic",
              "rmsea",
              "infit_msq",
              "outfit_msq",
              "s_x2",
              "g2"
            ],
            "title": "Statistic",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "number"
          }
        },
        "required": ["statistic", "value"],
        "title": "IrtFitStatistic",
        "type": "object"
      },
      "IrtIdentifiabilityDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "condition_number": {
            "exclusiveMinimum": 0.0,
            "title": "Condition Number",
            "type": "number"
          },
          "expected_rank": {
            "minimum": 1.0,
            "title": "Expected Rank",
            "type": "integer"
          },
          "free_parameter_count": {
            "minimum": 1.0,
            "title": "Free Parameter Count",
            "type": "integer"
          },
          "identified": {
            "title": "Identified",
            "type": "boolean"
          },
          "method": {
            "enum": ["information_rank", "hessian_rank", "posterior_geometry"],
            "title": "Method",
            "type": "string"
          },
          "observed_rank": {
            "minimum": 0.0,
            "title": "Observed Rank",
            "type": "integer"
          },
          "warnings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "method",
          "free_parameter_count",
          "expected_rank",
          "observed_rank",
          "condition_number",
          "identified"
        ],
        "title": "IrtIdentifiabilityDiagnostic",
        "type": "object"
      },
      "IrtInformationPoint": {
        "additionalProperties": false,
        "properties": {
          "ability": {
            "title": "Ability",
            "type": "number"
          },
          "conditional_standard_error": {
            "exclusiveMinimum": 0.0,
            "title": "Conditional Standard Error",
            "type": "number"
          },
          "information": {
            "exclusiveMinimum": 0.0,
            "title": "Information",
            "type": "number"
          }
        },
        "required": ["ability", "information", "conditional_standard_error"],
        "title": "IrtInformationPoint",
        "type": "object"
      },
      "IrtInput": {
        "additionalProperties": false,
        "properties": {
          "ability_x1000": {
            "maximum": 5000.0,
            "minimum": -5000.0,
            "title": "Ability X1000",
            "type": "integer"
          },
          "calibration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Calibration Id",
            "type": "string"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IrtItemParameters"
            },
            "maxItems": 200,
            "title": "Items",
            "type": "array"
          },
          "linking_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Linking Id"
          },
          "minimum_items": {
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "Minimum Items",
            "type": "integer"
          },
          "readiness_threshold_x1000": {
            "title": "Readiness Threshold X1000",
            "type": "integer"
          }
        },
        "required": [
          "ability_x1000",
          "readiness_threshold_x1000",
          "calibration_id",
          "minimum_items"
        ],
        "title": "IrtInput",
        "type": "object"
      },
      "IrtItemParameters": {
        "additionalProperties": false,
        "properties": {
          "difficulty_x1000": {
            "maximum": 5000.0,
            "minimum": -5000.0,
            "title": "Difficulty X1000",
            "type": "integer"
          },
          "discrimination_x1000": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Discrimination X1000",
            "type": "integer"
          },
          "guessing_basis_points": {
            "maximum": 5000.0,
            "minimum": 0.0,
            "title": "Guessing Basis Points",
            "type": "integer"
          },
          "information_x1000": {
            "minimum": 0.0,
            "title": "Information X1000",
            "type": "integer"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "discrimination_x1000",
          "difficulty_x1000",
          "guessing_basis_points",
          "information_x1000"
        ],
        "title": "IrtItemParameters",
        "type": "object"
      },
      "IrtLinkingDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "anchor_item_revision_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Anchor Item Revision Sha256S",
            "type": "array"
          },
          "covariance": {
            "anyOf": [
              {
                "maxItems": 4,
                "minItems": 4,
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Covariance"
          },
          "evidence_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Sha256"
          },
          "intercept": {
            "$ref": "#/components/schemas/IrtEstimate"
          },
          "method": {
            "enum": ["none", "mean_mean", "mean_sigma", "stocking_lord", "haebara", "fixed_anchor"],
            "title": "Method",
            "type": "string"
          },
          "slope": {
            "$ref": "#/components/schemas/IrtEstimate"
          },
          "status": {
            "enum": ["not_linked", "linked", "link_rejected"],
            "title": "Status",
            "type": "string"
          },
          "target_scale_id": {
            "anyOf": [
              {
                "maxLength": 180,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Scale Id"
          },
          "target_scale_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Scale Sha256"
          },
          "target_scale_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Scale Version"
          }
        },
        "required": ["status", "method", "slope", "intercept", "covariance", "evidence_sha256"],
        "title": "IrtLinkingDiagnostic",
        "type": "object"
      },
      "IrtLocalDependenceDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "pairs": {
            "items": {
              "$ref": "#/components/schemas/IrtLocalDependencePair"
            },
            "maxItems": 10000,
            "title": "Pairs",
            "type": "array"
          }
        },
        "required": ["pairs", "evidence_sha256"],
        "title": "IrtLocalDependenceDiagnostic",
        "type": "object"
      },
      "IrtLocalDependencePair": {
        "additionalProperties": false,
        "properties": {
          "first_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "First Item Revision Sha256",
            "type": "string"
          },
          "q3": {
            "maximum": 1.0,
            "minimum": -1.0,
            "title": "Q3",
            "type": "number"
          },
          "second_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Second Item Revision Sha256",
            "type": "string"
          }
        },
        "required": ["first_item_revision_sha256", "second_item_revision_sha256", "q3"],
        "title": "IrtLocalDependencePair",
        "type": "object"
      },
      "IrtModelParameterRule": {
        "additionalProperties": false,
        "properties": {
          "fixed_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fixed Value"
          },
          "parameter": {
            "enum": ["difficulty", "discrimination", "guessing", "scaling_constant"],
            "title": "Parameter",
            "type": "string"
          },
          "status": {
            "enum": ["estimated", "fixed", "not_estimable", "not_applicable"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["parameter", "status"],
        "title": "IrtModelParameterRule",
        "type": "object"
      },
      "IrtModelPolicy": {
        "additionalProperties": false,
        "properties": {
          "minimum_calibrated_items": {
            "minimum": 1.0,
            "title": "Minimum Calibrated Items",
            "type": "integer"
          },
          "minimum_usable_responses": {
            "minimum": 1.0,
            "title": "Minimum Usable Responses",
            "type": "integer"
          },
          "model_family": {
            "enum": ["1PL", "2PL", "3PL"],
            "title": "Model Family",
            "type": "string"
          },
          "parameter_rules": {
            "items": {
              "$ref": "#/components/schemas/IrtModelParameterRule"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Parameter Rules",
            "type": "array"
          }
        },
        "required": [
          "model_family",
          "minimum_usable_responses",
          "minimum_calibrated_items",
          "parameter_rules"
        ],
        "title": "IrtModelPolicy",
        "type": "object"
      },
      "IrtParameterCovariance": {
        "additionalProperties": false,
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/IrtCovarianceEntry"
            },
            "maxItems": 16,
            "title": "Entries",
            "type": "array"
          }
        },
        "required": ["entries"],
        "title": "IrtParameterCovariance",
        "type": "object"
      },
      "IrtParameterEstimate": {
        "additionalProperties": false,
        "properties": {
          "estimate": {
            "$ref": "#/components/schemas/IrtEstimate"
          },
          "parameter": {
            "enum": ["difficulty", "discrimination", "guessing", "scaling_constant"],
            "title": "Parameter",
            "type": "string"
          }
        },
        "required": ["parameter", "estimate"],
        "title": "IrtParameterEstimate",
        "type": "object"
      },
      "IrtParameterPolicy": {
        "additionalProperties": false,
        "properties": {
          "allowed_fixed_values": {
            "default": [],
            "items": {
              "type": "number"
            },
            "title": "Allowed Fixed Values",
            "type": "array"
          },
          "maximum": {
            "title": "Maximum",
            "type": "number"
          },
          "minimum": {
            "title": "Minimum",
            "type": "number"
          },
          "parameter": {
            "enum": ["difficulty", "discrimination", "guessing", "scaling_constant"],
            "title": "Parameter",
            "type": "string"
          }
        },
        "required": ["parameter", "minimum", "maximum"],
        "title": "IrtParameterPolicy",
        "type": "object"
      },
      "IrtResidualDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "maximum_absolute": {
            "minimum": 0.0,
            "title": "Maximum Absolute",
            "type": "number"
          },
          "mean": {
            "title": "Mean",
            "type": "number"
          },
          "observed_expected_correlation": {
            "maximum": 1.0,
            "minimum": -1.0,
            "title": "Observed Expected Correlation",
            "type": "number"
          },
          "standard_deviation": {
            "minimum": 0.0,
            "title": "Standard Deviation",
            "type": "number"
          }
        },
        "required": [
          "mean",
          "standard_deviation",
          "maximum_absolute",
          "observed_expected_correlation",
          "evidence_sha256"
        ],
        "title": "IrtResidualDiagnostic",
        "type": "object"
      },
      "IrtResult": {
        "additionalProperties": false,
        "properties": {
          "ability_x1000": {
            "maximum": 5000.0,
            "minimum": -5000.0,
            "title": "Ability X1000",
            "type": "integer"
          },
          "applicability": {
            "$ref": "#/components/schemas/ModelApplicability"
          },
          "calibration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Calibration Id",
            "type": "string"
          },
          "identity": {
            "$ref": "#/components/schemas/ModelRunIdentity"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/IrtItemParameters"
            },
            "maxItems": 200,
            "title": "Items",
            "type": "array"
          },
          "linking_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Linking Id"
          },
          "lower_confidence_bound_x1000": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lower Confidence Bound X1000"
          },
          "readiness_threshold_x1000": {
            "title": "Readiness Threshold X1000",
            "type": "integer"
          },
          "ready": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready"
          },
          "standard_error_x1000": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Error X1000"
          },
          "total_information_x1000": {
            "minimum": 0.0,
            "title": "Total Information X1000",
            "type": "integer"
          },
          "uncertainty": {
            "$ref": "#/components/schemas/UncertaintyInterval"
          }
        },
        "required": [
          "identity",
          "applicability",
          "ability_x1000",
          "total_information_x1000",
          "readiness_threshold_x1000",
          "items",
          "calibration_id",
          "linking_id",
          "uncertainty",
          "ready"
        ],
        "title": "IrtResult",
        "type": "object"
      },
      "IrtSampleSnapshot": {
        "additionalProperties": false,
        "properties": {
          "calibrated_item_count": {
            "minimum": 0.0,
            "title": "Calibrated Item Count",
            "type": "integer"
          },
          "distinct_learner_count": {
            "minimum": 0.0,
            "title": "Distinct Learner Count",
            "type": "integer"
          },
          "population_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Population Id",
            "type": "string"
          },
          "population_revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Population Revision",
            "type": "string"
          },
          "population_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Population Sha256",
            "type": "string"
          },
          "sample_id": {
            "pattern": "^calibration-sample:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Sample Id",
            "type": "string"
          },
          "sample_revision": {
            "minimum": 1.0,
            "title": "Sample Revision",
            "type": "integer"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "usable_response_count": {
            "minimum": 0.0,
            "title": "Usable Response Count",
            "type": "integer"
          },
          "window_end": {
            "format": "date-time",
            "title": "Window End",
            "type": "string"
          },
          "window_start": {
            "format": "date-time",
            "title": "Window Start",
            "type": "string"
          }
        },
        "required": [
          "sample_id",
          "sample_revision",
          "sample_sha256",
          "population_id",
          "population_revision",
          "population_sha256",
          "window_start",
          "window_end",
          "usable_response_count",
          "calibrated_item_count",
          "distinct_learner_count"
        ],
        "title": "IrtSampleSnapshot",
        "type": "object"
      },
      "IrtToolIdentity": {
        "additionalProperties": false,
        "properties": {
          "build_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Build Sha256",
            "type": "string"
          },
          "runtime": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Runtime",
            "type": "string"
          },
          "tool_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "build_sha256", "runtime"],
        "title": "IrtToolIdentity",
        "type": "object"
      },
      "IrtUncertaintyInterval": {
        "additionalProperties": false,
        "properties": {
          "level": {
            "exclusiveMaximum": 1.0,
            "exclusiveMinimum": 0.5,
            "title": "Level",
            "type": "number"
          },
          "lower": {
            "title": "Lower",
            "type": "number"
          },
          "method": {
            "enum": [
              "normal_approximation",
              "profile_likelihood",
              "posterior_credible",
              "bootstrap"
            ],
            "title": "Method",
            "type": "string"
          },
          "upper": {
            "title": "Upper",
            "type": "number"
          }
        },
        "required": ["level", "lower", "upper", "method"],
        "title": "IrtUncertaintyInterval",
        "type": "object"
      },
      "IsolationFinding": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "database_or_orm",
              "learner_store",
              "gradebook_or_progress",
              "analytics_or_export",
              "network_capable",
              "unlabelled_record",
              "real_identity_shape"
            ],
            "title": "Category",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "reached_via": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Reached Via",
            "type": "string"
          },
          "subject": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["category", "subject", "reached_via", "detail"],
        "title": "IsolationFinding",
        "type": "object"
      },
      "IsolationProbe": {
        "additionalProperties": false,
        "description": "One attempt to see something this audience or tenant may not.",
        "properties": {
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "surface": {
            "enum": ["url", "search", "stream", "export", "action"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["probe_id", "attempted", "refused", "surface", "detail"],
        "title": "IsolationProbe",
        "type": "object"
      },
      "IsolationReport": {
        "additionalProperties": false,
        "properties": {
          "capability_findings": {
            "items": {
              "$ref": "#/components/schemas/IsolationFinding"
            },
            "maxItems": 64,
            "title": "Capability Findings",
            "type": "array"
          },
          "closure_size": {
            "minimum": 1.0,
            "title": "Closure Size",
            "type": "integer"
          },
          "data_source_findings": {
            "items": {
              "$ref": "#/components/schemas/IsolationFinding"
            },
            "maxItems": 64,
            "title": "Data Source Findings",
            "type": "array"
          },
          "denied_categories": {
            "items": {
              "enum": [
                "database_or_orm",
                "learner_store",
                "gradebook_or_progress",
                "analytics_or_export",
                "network_capable",
                "unlabelled_record",
                "real_identity_shape"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Denied Categories",
            "type": "array"
          },
          "isolated": {
            "title": "Isolated",
            "type": "boolean"
          },
          "method": {
            "const": "static-import-closure-plus-output-identity-scan-v1",
            "title": "Method",
            "type": "string"
          },
          "real_identity_matches": {
            "minimum": 0.0,
            "title": "Real Identity Matches",
            "type": "integer"
          },
          "records_scanned": {
            "minimum": 0.0,
            "title": "Records Scanned",
            "type": "integer"
          },
          "root_modules": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Root Modules",
            "type": "array"
          },
          "synthetic_labelled_records": {
            "minimum": 0.0,
            "title": "Synthetic Labelled Records",
            "type": "integer"
          },
          "unlabelled_records": {
            "minimum": 0.0,
            "title": "Unlabelled Records",
            "type": "integer"
          }
        },
        "required": [
          "method",
          "root_modules",
          "closure_size",
          "denied_categories",
          "data_source_findings",
          "capability_findings",
          "records_scanned",
          "synthetic_labelled_records",
          "unlabelled_records",
          "real_identity_matches",
          "isolated"
        ],
        "title": "IsolationReport",
        "type": "object"
      },
      "IssuanceLock": {
        "additionalProperties": false,
        "description": "What the award is about, hashed together.\n\nThe lock covers the criteria, the issuer, the policy, the evidence and the\nsubject projection. A decision names the lock it saw, so what was approved\nand what is issued cannot drift apart between the two.\n\nEvery field here is covered by `lock_sha256`, and none of them is a clock.\nA lock that moved with the moment it was taken could not be computed twice,\nso nobody could approve one and then issue against it; when the substance\ngenuinely changes underneath \u2014 evidence going stale, say \u2014 the lock changes\nwith it, and that is the lock doing its work.",
        "properties": {
          "criteria_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Criteria Sha256",
            "type": "string"
          },
          "eligibility_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Eligibility Sha256",
            "type": "string"
          },
          "issuer_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Issuer Sha256",
            "type": "string"
          },
          "lock_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Lock Id",
            "type": "string"
          },
          "lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lock Sha256",
            "type": "string"
          },
          "pathway_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pathway Id",
            "type": "string"
          },
          "pathway_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Pathway Version",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "projection_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Projection Sha256",
            "type": "string"
          }
        },
        "required": [
          "lock_id",
          "pathway_id",
          "pathway_version",
          "criteria_sha256",
          "issuer_sha256",
          "policy_sha256",
          "projection_sha256",
          "eligibility_sha256",
          "lock_sha256"
        ],
        "title": "IssuanceLock",
        "type": "object"
      },
      "IssuanceReadinessView": {
        "additionalProperties": false,
        "description": "Whether this candidate could be issued right now, and what stops it.",
        "properties": {
          "candidate_id": {
            "title": "Candidate Id",
            "type": "string"
          },
          "ready": {
            "default": false,
            "title": "Ready",
            "type": "boolean"
          },
          "refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          }
        },
        "required": ["candidate_id"],
        "title": "IssuanceReadinessView",
        "type": "object"
      },
      "IssuanceRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "subject_is_synthetic",
              "not_eligible",
              "no_decision",
              "decision_is_not_an_award",
              "lock_mismatch",
              "signer_not_authorized",
              "quorum_not_met",
              "evidence_type_not_accepted",
              "decision_predates_the_work"
            ],
            "title": "Reason",
            "type": "string"
          },
          "subject": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": ["reason", "subject", "detail"],
        "title": "IssuanceRefusal",
        "type": "object"
      },
      "IssuanceRequest": {
        "additionalProperties": false,
        "description": "What a caller may ask for: an evaluation, and a decision to record.\n\nThere is no field naming a status, an issue date or a credential id. A\ncaller cannot mint by asking; it can put a decision on the record and the\nservice will mint from that decision or refuse.",
        "properties": {
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IssuerDecision"
              },
              {
                "type": "null"
              }
            ]
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "pathway": {
            "$ref": "#/components/schemas/CredentialPathway"
          },
          "policy": {
            "$ref": "#/components/schemas/EvidencePolicy"
          },
          "projection": {
            "$ref": "#/components/schemas/SubjectProjection"
          }
        },
        "required": ["idempotency_key", "pathway", "policy", "projection"],
        "title": "IssuanceRequest",
        "type": "object"
      },
      "IssuanceResponse": {
        "additionalProperties": false,
        "properties": {
          "credential": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CredentialRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "eligibility": {
            "$ref": "#/components/schemas/EligibilityReport"
          },
          "issued": {
            "title": "Issued",
            "type": "boolean"
          },
          "lock": {
            "$ref": "#/components/schemas/IssuanceLock"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IssuanceRefusal"
            },
            "maxItems": 30,
            "title": "Refusals",
            "type": "array"
          },
          "schema_version": {
            "const": "6.18.0",
            "default": "6.18.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["lock", "eligibility", "issued", "decided_at"],
        "title": "IssuanceResponse",
        "type": "object"
      },
      "IssueRequest": {
        "properties": {
          "context": {
            "enum": ["course", "item", "attempt", "grade", "support"],
            "title": "Context",
            "type": "string"
          },
          "intent": {
            "enum": [
              "view_case",
              "view_appeal",
              "view_decision",
              "raise_appeal",
              "contact_support"
            ],
            "title": "Intent",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["assessment_attempt", "submission", "grade", "learner_enrolment"],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": ["subject_kind", "subject_id", "context", "intent"],
        "title": "IssueRequest",
        "type": "object"
      },
      "IssuerAuthority": {
        "additionalProperties": false,
        "description": "Who may sign, and under what policy.\n\nA pathway naming no issuer is a pathway nobody can mint from, so the field\nis required rather than defaulted to the tenant.",
        "properties": {
          "issuer_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Issuer Id",
            "type": "string"
          },
          "issuer_name": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Issuer Name",
            "type": "string"
          },
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Revision Sha256",
            "type": "string"
          },
          "signing_roles": {
            "items": {
              "enum": ["registrar", "programme_director", "awarding_body"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Signing Roles",
            "type": "array"
          }
        },
        "required": [
          "issuer_id",
          "issuer_name",
          "policy_id",
          "policy_revision_sha256",
          "signing_roles"
        ],
        "title": "IssuerAuthority",
        "type": "object"
      },
      "IssuerDecision": {
        "additionalProperties": false,
        "description": "A person with authority saying yes or no, over one exact lock.\n\nThere is no `auto` value and no field naming a rule that produced this. A\ndecision exists because somebody made it.",
        "properties": {
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Decided By",
            "type": "string"
          },
          "decided_by_role": {
            "enum": ["registrar", "programme_director", "awarding_body"],
            "title": "Decided By Role",
            "type": "string"
          },
          "decision": {
            "enum": ["award", "decline", "return_for_evidence"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lock Sha256",
            "type": "string"
          },
          "made_by_a_person": {
            "const": true,
            "default": true,
            "title": "Made By A Person",
            "type": "boolean"
          },
          "rationale": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "signature": {
            "maxLength": 64,
            "minLength": 64,
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "lock_sha256",
          "decided_by",
          "decided_by_role",
          "decided_at",
          "decision",
          "rationale",
          "signature"
        ],
        "title": "IssuerDecision",
        "type": "object"
      },
      "ItemAccessibilityActor": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "ItemAccessibilityActor",
        "type": "object"
      },
      "ItemAccessibilityAuditContent": {
        "additionalProperties": false,
        "properties": {
          "automation_cases": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityAutomationCase"
            },
            "title": "Automation Cases",
            "type": "array"
          },
          "coverage": {
            "$ref": "#/components/schemas/AccessibilityAuditCoverage"
          },
          "exception_allowed": {
            "const": false,
            "default": false,
            "title": "Exception Allowed",
            "type": "boolean"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "manual_reviews": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityManualReview"
            },
            "title": "Manual Reviews",
            "type": "array"
          },
          "registry": {
            "$ref": "#/components/schemas/AccessibilityChecklistRegistry"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityChecklistResult"
            },
            "title": "Results",
            "type": "array"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ItemAccessibilitySourceSnapshot"
          },
          "support_matrix": {
            "items": {
              "$ref": "#/components/schemas/AccessibilitySupportMapping"
            },
            "title": "Support Matrix",
            "type": "array"
          },
          "verdict": {
            "enum": ["clear", "blocked", "incomplete"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": [
          "source",
          "registry",
          "results",
          "automation_cases",
          "manual_reviews",
          "support_matrix",
          "findings",
          "coverage",
          "verdict"
        ],
        "title": "ItemAccessibilityAuditContent",
        "type": "object"
      },
      "ItemAccessibilityAuditRequest": {
        "additionalProperties": false,
        "properties": {
          "automation_cases": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityAutomationCase"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Automation Cases",
            "type": "array"
          },
          "expected_audit_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Audit Revision"
          },
          "expected_audit_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Audit Revision Sha256"
          },
          "expected_item_revision": {
            "minimum": 1.0,
            "title": "Expected Item Revision",
            "type": "integer"
          },
          "expected_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Item Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "manual_reviews": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AccessibilityManualReview"
            },
            "maxItems": 1000,
            "title": "Manual Reviews",
            "type": "array"
          },
          "observations": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityCheckObservation"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Observations",
            "type": "array"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "support_matrix": {
            "items": {
              "$ref": "#/components/schemas/AccessibilitySupportMapping"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Support Matrix",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "expected_item_revision",
          "expected_item_revision_sha256",
          "reason",
          "observations",
          "automation_cases",
          "support_matrix"
        ],
        "title": "ItemAccessibilityAuditRequest",
        "type": "object"
      },
      "ItemAccessibilityAuditResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/ItemAccessibilityActor"
          },
          "audit_id": {
            "pattern": "^item-accessibility-audit-[a-f0-9]{40}$",
            "title": "Audit Id",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/ItemAccessibilityAuditContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "audit_id",
          "draft_id",
          "tenant_id",
          "revision",
          "content",
          "content_sha256",
          "actor",
          "reason",
          "idempotency_key",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemAccessibilityAuditResponse",
        "type": "object"
      },
      "ItemAccessibilityFreshness": {
        "additionalProperties": false,
        "properties": {
          "audit_current": {
            "title": "Audit Current",
            "type": "boolean"
          },
          "gate_current": {
            "title": "Gate Current",
            "type": "boolean"
          },
          "source_current": {
            "title": "Source Current",
            "type": "boolean"
          },
          "stale_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          }
        },
        "required": ["source_current", "audit_current", "gate_current", "stale_reasons"],
        "title": "ItemAccessibilityFreshness",
        "type": "object"
      },
      "ItemAccessibilityGateContent": {
        "additionalProperties": false,
        "properties": {
          "audit_id": {
            "title": "Audit Id",
            "type": "string"
          },
          "audit_revision": {
            "minimum": 1.0,
            "title": "Audit Revision",
            "type": "integer"
          },
          "audit_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Audit Revision Sha256",
            "type": "string"
          },
          "blocker_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Blocker Finding Ids",
            "type": "array"
          },
          "exception_allowed": {
            "const": false,
            "default": false,
            "title": "Exception Allowed",
            "type": "boolean"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "audit_id",
          "audit_revision",
          "audit_revision_sha256",
          "item_revision_sha256",
          "registry_sha256",
          "status",
          "release_allowed",
          "blocker_finding_ids"
        ],
        "title": "ItemAccessibilityGateContent",
        "type": "object"
      },
      "ItemAccessibilityGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_audit_revision": {
            "minimum": 1.0,
            "title": "Expected Audit Revision",
            "type": "integer"
          },
          "expected_audit_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Audit Revision Sha256",
            "type": "string"
          },
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_item_revision": {
            "minimum": 1.0,
            "title": "Expected Item Revision",
            "type": "integer"
          },
          "expected_item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Item Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_audit_revision",
          "expected_audit_revision_sha256",
          "expected_item_revision",
          "expected_item_revision_sha256",
          "reason"
        ],
        "title": "ItemAccessibilityGateRequest",
        "type": "object"
      },
      "ItemAccessibilityGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/ItemAccessibilityActor"
          },
          "content": {
            "$ref": "#/components/schemas/ItemAccessibilityGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^item-accessibility-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "draft_id",
          "tenant_id",
          "revision",
          "content",
          "content_sha256",
          "actor",
          "reason",
          "idempotency_key",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemAccessibilityGateResponse",
        "type": "object"
      },
      "ItemAccessibilityHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "audits": {
            "items": {
              "$ref": "#/components/schemas/ItemAccessibilityAuditResponse"
            },
            "title": "Audits",
            "type": "array"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/ItemAccessibilityGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "audits", "gates"],
        "title": "ItemAccessibilityHistoryResponse",
        "type": "object"
      },
      "ItemAccessibilityPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "applicable_requirements": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityChecklistRequirement"
            },
            "title": "Applicable Requirements",
            "type": "array"
          },
          "current_audit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemAccessibilityAuditResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemAccessibilityGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/ItemAccessibilityFreshness"
          },
          "registry": {
            "$ref": "#/components/schemas/AccessibilityChecklistRegistry"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ItemAccessibilitySourceSnapshot"
          }
        },
        "required": ["source", "registry", "applicable_requirements", "freshness"],
        "title": "ItemAccessibilityPreparationResponse",
        "type": "object"
      },
      "ItemAccessibilitySourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "authored_evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Authored Evidence",
            "type": "array"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "draft_revision": {
            "minimum": 1.0,
            "title": "Draft Revision",
            "type": "integer"
          },
          "draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Draft Revision Sha256",
            "type": "string"
          },
          "interaction_kinds": {
            "items": {
              "enum": [
                "choice",
                "ordering",
                "matching",
                "text_entry",
                "upload",
                "hotspot",
                "timeline",
                "drag_drop",
                "manipulation",
                "branch",
                "simulation_control"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Interaction Kinds",
            "type": "array"
          },
          "item_kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot",
              "assessment-kind:constructed-response",
              "assessment-kind:essay",
              "assessment-kind:math",
              "assessment-kind:code",
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction",
              "assessment-kind:portfolio",
              "assessment-kind:oral-performance",
              "assessment-kind:performance"
            ],
            "title": "Item Kind",
            "type": "string"
          },
          "item_revision": {
            "minimum": 1.0,
            "title": "Item Revision",
            "type": "integer"
          },
          "item_revision_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Item Revision Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "locale_directions": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityLocaleDirection"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Directions",
            "type": "array"
          },
          "locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "media_kinds": {
            "default": [],
            "items": {
              "enum": [
                "image",
                "math",
                "code",
                "table",
                "chart",
                "audio",
                "video",
                "model_3d",
                "stimulus"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "title": "Media Kinds",
            "type": "array"
          },
          "schema_version": {
            "const": "4.14.0",
            "default": "4.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "draft_revision",
          "draft_revision_sha256",
          "item_revision_id",
          "item_revision",
          "item_revision_sha256",
          "item_kind",
          "locales",
          "locale_directions",
          "interaction_kinds",
          "authored_evidence",
          "source_sha256"
        ],
        "title": "ItemAccessibilitySourceSnapshot",
        "type": "object"
      },
      "ItemAccessibilityState": {
        "enum": ["unknown", "in_review", "passed", "blocked", "stale"],
        "title": "ItemAccessibilityState",
        "type": "string"
      },
      "ItemAssemblyAlternative": {
        "additionalProperties": false,
        "properties": {
          "alternative_id": {
            "title": "Alternative Id",
            "type": "string"
          },
          "applied": {
            "const": false,
            "default": false,
            "title": "Applied",
            "type": "boolean"
          },
          "constraint_id": {
            "title": "Constraint Id",
            "type": "string"
          },
          "current_value": {
            "title": "Current Value",
            "type": "integer"
          },
          "operation": {
            "enum": ["lower_minimum", "raise_maximum", "reduce_count", "expand_pool"],
            "title": "Operation",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "section_id": {
            "title": "Section Id",
            "type": "string"
          },
          "suggested_value": {
            "title": "Suggested Value",
            "type": "integer"
          }
        },
        "required": [
          "alternative_id",
          "section_id",
          "constraint_id",
          "operation",
          "current_value",
          "suggested_value",
          "rationale"
        ],
        "title": "ItemAssemblyAlternative",
        "type": "object"
      },
      "ItemAssemblyBalance": {
        "additionalProperties": false,
        "properties": {
          "constraint_id": {
            "pattern": "^assembly-balance:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Constraint Id",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "objective",
              "standard",
              "content",
              "cognitive_level",
              "item_kind",
              "difficulty",
              "locale",
              "accessibility",
              "security",
              "exposure"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "maximum_delta": {
            "default": 1,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Maximum Delta",
            "type": "integer"
          },
          "values": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 2,
            "title": "Values",
            "type": "array"
          }
        },
        "required": ["constraint_id", "dimension", "values"],
        "title": "ItemAssemblyBalance",
        "type": "object"
      },
      "ItemAssemblyBlueprint": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Assessment Id",
            "type": "string"
          },
          "blueprint_id": {
            "pattern": "^assembly-blueprint:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Blueprint Id",
            "type": "string"
          },
          "exposure_policy": {
            "$ref": "#/components/schemas/ItemAssemblyExposurePolicy"
          },
          "policy": {
            "$ref": "#/components/schemas/ItemAssemblyPolicyRef"
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblySectionBlueprint"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sections",
            "type": "array"
          },
          "security_policy": {
            "$ref": "#/components/schemas/ItemAssemblySecurityPolicy"
          },
          "seed": {
            "maxLength": 255,
            "minLength": 8,
            "title": "Seed",
            "type": "string"
          },
          "solver_version": {
            "const": "item-assembly-solver:1.0.0",
            "default": "item-assembly-solver:1.0.0",
            "title": "Solver Version",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "blueprint_id",
          "assessment_id",
          "title",
          "seed",
          "policy",
          "exposure_policy",
          "security_policy",
          "sections"
        ],
        "title": "ItemAssemblyBlueprint",
        "type": "object"
      },
      "ItemAssemblyCandidate": {
        "additionalProperties": false,
        "properties": {
          "accessibility_state": {
            "enum": ["passed", "blocked", "stale", "unknown"],
            "title": "Accessibility State",
            "type": "string"
          },
          "calibration_state": {
            "enum": ["current", "stale", "unknown"],
            "title": "Calibration State",
            "type": "string"
          },
          "candidate_id": {
            "pattern": "^assembly-candidate:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "cognitive_level_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Cognitive Level Ids",
            "type": "array"
          },
          "content_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Content Ids",
            "type": "array"
          },
          "difficulty": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Difficulty",
            "type": "string"
          },
          "eligibility_witness_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Eligibility Witness Sha256",
            "type": "string"
          },
          "enemy_group_ids": {
            "items": {
              "type": "string"
            },
            "title": "Enemy Group Ids",
            "type": "array"
          },
          "estimate_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Revision Sha256",
            "type": "string"
          },
          "expected_time_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Expected Time Seconds",
            "type": "integer"
          },
          "exposure_band": {
            "enum": ["unknown", "unused", "low", "moderate", "high", "restricted"],
            "title": "Exposure Band",
            "type": "string"
          },
          "exposure_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exposure Basis Points"
          },
          "exposure_state": {
            "enum": ["current", "stale", "unknown"],
            "title": "Exposure State",
            "type": "string"
          },
          "gate_state": {
            "enum": ["passed", "blocked", "stale", "unknown"],
            "title": "Gate State",
            "type": "string"
          },
          "gate_witness_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Gate Witness Sha256S",
            "type": "array"
          },
          "group_ids": {
            "items": {
              "type": "string"
            },
            "title": "Group Ids",
            "type": "array"
          },
          "item": {
            "$ref": "#/components/schemas/ItemComparisonRevisionPin"
          },
          "item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "item_kind": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Item Kind",
            "type": "string"
          },
          "learning_link_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learning Link Revision Sha256",
            "type": "string"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "operational_evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Operational Evidence Sha256",
            "type": "string"
          },
          "operational_institution_id": {
            "format": "uuid",
            "title": "Operational Institution Id",
            "type": "string"
          },
          "operational_issuer_id": {
            "format": "uuid",
            "title": "Operational Issuer Id",
            "type": "string"
          },
          "operational_observed_at": {
            "format": "date-time",
            "title": "Operational Observed At",
            "type": "string"
          },
          "operational_valid_until": {
            "format": "date-time",
            "title": "Operational Valid Until",
            "type": "string"
          },
          "points_milli": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Points Milli",
            "type": "integer"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "prior_uses": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyUseRecord"
            },
            "title": "Prior Uses",
            "type": "array"
          },
          "rights_evidence_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rights Evidence Id",
            "type": "string"
          },
          "rights_evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rights Evidence Sha256",
            "type": "string"
          },
          "rights_state": {
            "enum": ["cleared", "restricted", "expired", "unknown"],
            "title": "Rights State",
            "type": "string"
          },
          "rubric": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemComparisonResolvedRubric"
              },
              {
                "type": "null"
              }
            ]
          },
          "security_level": {
            "enum": ["standard", "controlled", "secure"],
            "title": "Security Level",
            "type": "string"
          },
          "security_pool_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Security Pool Id",
            "type": "string"
          },
          "standard_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Standard Ids",
            "type": "array"
          },
          "stimuli": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonResolvedStimulus"
            },
            "title": "Stimuli",
            "type": "array"
          }
        },
        "required": [
          "candidate_id",
          "item",
          "item_id",
          "item_kind",
          "locales",
          "stimuli",
          "rubric",
          "objective_ids",
          "standard_ids",
          "content_ids",
          "cognitive_level_ids",
          "difficulty",
          "expected_time_seconds",
          "points_milli",
          "accessibility_state",
          "gate_state",
          "calibration_state",
          "rights_state",
          "operational_institution_id",
          "operational_issuer_id",
          "operational_observed_at",
          "operational_valid_until",
          "operational_evidence_sha256",
          "policy_sha256",
          "rights_evidence_id",
          "rights_evidence_sha256",
          "exposure_state",
          "exposure_band",
          "exposure_basis_points",
          "security_pool_id",
          "security_level",
          "group_ids",
          "enemy_group_ids",
          "prior_uses",
          "estimate_revision_sha256",
          "learning_link_revision_sha256",
          "gate_witness_sha256s",
          "eligibility_witness_sha256"
        ],
        "title": "ItemAssemblyCandidate",
        "type": "object"
      },
      "ItemAssemblyCandidateRequest": {
        "additionalProperties": false,
        "properties": {
          "candidate_id": {
            "pattern": "^assembly-candidate:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "content_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Content Ids",
            "type": "array"
          },
          "enemy_group_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Enemy Group Ids",
            "type": "array"
          },
          "expected_estimate_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Estimate Revision Sha256",
            "type": "string"
          },
          "expected_learning_link_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Learning Link Revision Sha256",
            "type": "string"
          },
          "group_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Group Ids",
            "type": "array"
          },
          "item": {
            "$ref": "#/components/schemas/ItemComparisonRevisionPin"
          },
          "operational": {
            "$ref": "#/components/schemas/ItemAssemblyOperationalReceipt"
          },
          "points_milli": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Points Milli",
            "type": "integer"
          }
        },
        "required": [
          "candidate_id",
          "item",
          "expected_estimate_revision_sha256",
          "expected_learning_link_revision_sha256",
          "points_milli",
          "content_ids",
          "operational"
        ],
        "title": "ItemAssemblyCandidateRequest",
        "type": "object"
      },
      "ItemAssemblyCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "assemblies": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyRunRecord"
            },
            "maxItems": 100,
            "title": "Assemblies",
            "type": "array"
          },
          "schema_version": {
            "const": "4.16.0",
            "default": "4.16.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["assemblies"],
        "title": "ItemAssemblyCatalogResponse",
        "type": "object"
      },
      "ItemAssemblyCoverage": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "minimum": 0.0,
            "title": "Count",
            "type": "integer"
          },
          "dimension": {
            "enum": [
              "objective",
              "standard",
              "content",
              "cognitive_level",
              "item_kind",
              "difficulty",
              "locale",
              "accessibility",
              "security",
              "exposure"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "maximum": {
            "minimum": 0.0,
            "title": "Maximum",
            "type": "integer"
          },
          "minimum": {
            "minimum": 0.0,
            "title": "Minimum",
            "type": "integer"
          },
          "satisfied": {
            "title": "Satisfied",
            "type": "boolean"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["dimension", "value", "count", "minimum", "maximum", "satisfied"],
        "title": "ItemAssemblyCoverage",
        "type": "object"
      },
      "ItemAssemblyDecisionEvidence": {
        "additionalProperties": false,
        "properties": {
          "evidence_id": {
            "pattern": "^assembly-decision-evidence:[A-Za-z0-9._:-]{3,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "note": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Note",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sha256",
            "type": "string"
          }
        },
        "required": ["evidence_id", "locator", "sha256", "note"],
        "title": "ItemAssemblyDecisionEvidence",
        "type": "object"
      },
      "ItemAssemblyDecisionRecord": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "reject", "request_changes"],
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "$ref": "#/components/schemas/ItemComparisonActor"
          },
          "assembly_id": {
            "title": "Assembly Id",
            "type": "string"
          },
          "assembly_record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Assembly Record Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^item-assembly-decision-[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyDecisionEvidence"
            },
            "title": "Evidence",
            "type": "array"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "previous_decision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Decision Sha256"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_changes": {
            "items": {
              "maxLength": 2000,
              "minLength": 8,
              "type": "string"
            },
            "title": "Requested Changes",
            "type": "array"
          },
          "schema_version": {
            "const": "4.16.0",
            "default": "4.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "solution_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Solution Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "assembly_id",
          "tenant_id",
          "action",
          "rationale",
          "evidence",
          "requested_changes",
          "assembly_record_sha256",
          "solution_sha256",
          "previous_decision_sha256",
          "actor",
          "idempotency_key",
          "request_sha256",
          "decision_sha256",
          "created_at"
        ],
        "title": "ItemAssemblyDecisionRecord",
        "type": "object"
      },
      "ItemAssemblyDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "reject", "request_changes"],
            "title": "Action",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyDecisionEvidence"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "expected_assembly_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Assembly Sha256",
            "type": "string"
          },
          "expected_latest_decision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Latest Decision Sha256"
          },
          "idempotency_key": {
            "pattern": "^item-assembly-decision:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "requested_changes": {
            "default": [],
            "items": {
              "maxLength": 2000,
              "minLength": 8,
              "type": "string"
            },
            "maxItems": 64,
            "title": "Requested Changes",
            "type": "array"
          },
          "schema_version": {
            "const": "4.16.0",
            "default": "4.16.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "action",
          "expected_assembly_sha256",
          "rationale",
          "evidence"
        ],
        "title": "ItemAssemblyDecisionRequest",
        "type": "object"
      },
      "ItemAssemblyDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "available": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available"
          },
          "candidate_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Candidate Ids",
            "type": "array"
          },
          "code": {
            "title": "Code",
            "type": "string"
          },
          "constraint_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Constraint Id"
          },
          "diagnostic_id": {
            "title": "Diagnostic Id",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "required": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required"
          },
          "section_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Section Id"
          },
          "severity": {
            "enum": ["blocker", "warning", "information"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["diagnostic_id", "severity", "code", "section_id", "constraint_id", "message"],
        "title": "ItemAssemblyDiagnostic",
        "type": "object"
      },
      "ItemAssemblyExposurePolicy": {
        "additionalProperties": false,
        "properties": {
          "current_form_item_revision_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Current Form Item Revision Sha256S",
            "type": "array"
          },
          "maximum_band": {
            "enum": ["unused", "low", "moderate", "high"],
            "title": "Maximum Band",
            "type": "string"
          },
          "maximum_overlap_per_prior_form": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Maximum Overlap Per Prior Form",
            "type": "integer"
          },
          "maximum_prior_uses": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Maximum Prior Uses",
            "type": "integer"
          },
          "prior_form_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Prior Form Ids",
            "type": "array"
          },
          "require_current_evidence": {
            "default": true,
            "title": "Require Current Evidence",
            "type": "boolean"
          },
          "reuse_window_days": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Reuse Window Days",
            "type": "integer"
          }
        },
        "required": [
          "maximum_band",
          "maximum_prior_uses",
          "reuse_window_days",
          "maximum_overlap_per_prior_form"
        ],
        "title": "ItemAssemblyExposurePolicy",
        "type": "object"
      },
      "ItemAssemblyFixedPosition": {
        "additionalProperties": false,
        "properties": {
          "candidate_id": {
            "pattern": "^assembly-candidate:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "position": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Position",
            "type": "integer"
          }
        },
        "required": ["candidate_id", "position"],
        "title": "ItemAssemblyFixedPosition",
        "type": "object"
      },
      "ItemAssemblyGroupRule": {
        "additionalProperties": false,
        "properties": {
          "all_or_none": {
            "default": false,
            "title": "All Or None",
            "type": "boolean"
          },
          "group_id": {
            "pattern": "^assembly-group:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Group Id",
            "type": "string"
          },
          "keep_adjacent": {
            "default": false,
            "title": "Keep Adjacent",
            "type": "boolean"
          },
          "maximum": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Maximum",
            "type": "integer"
          },
          "minimum": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum",
            "type": "integer"
          }
        },
        "required": ["group_id", "maximum"],
        "title": "ItemAssemblyGroupRule",
        "type": "object"
      },
      "ItemAssemblyOperationalReceipt": {
        "additionalProperties": false,
        "properties": {
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "exposure_band": {
            "enum": ["unknown", "unused", "low", "moderate", "high", "restricted"],
            "title": "Exposure Band",
            "type": "string"
          },
          "exposure_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exposure Basis Points"
          },
          "institution_id": {
            "format": "uuid",
            "title": "Institution Id",
            "type": "string"
          },
          "issuer_id": {
            "format": "uuid",
            "title": "Issuer Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "prior_uses": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyUseRecord"
            },
            "maxItems": 2000,
            "title": "Prior Uses",
            "type": "array"
          },
          "rights_evidence_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rights Evidence Id",
            "type": "string"
          },
          "rights_evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rights Evidence Sha256",
            "type": "string"
          },
          "rights_state": {
            "enum": ["cleared", "restricted", "expired", "unknown"],
            "title": "Rights State",
            "type": "string"
          },
          "security_level": {
            "enum": ["standard", "controlled", "secure"],
            "title": "Security Level",
            "type": "string"
          },
          "security_pool_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Security Pool Id",
            "type": "string"
          },
          "state": {
            "enum": ["current", "stale", "unknown"],
            "title": "State",
            "type": "string"
          },
          "valid_until": {
            "format": "date-time",
            "title": "Valid Until",
            "type": "string"
          }
        },
        "required": [
          "institution_id",
          "issuer_id",
          "item_revision_sha256",
          "policy_sha256",
          "observed_at",
          "valid_until",
          "state",
          "exposure_band",
          "rights_state",
          "rights_evidence_id",
          "rights_evidence_sha256",
          "security_pool_id",
          "security_level",
          "evidence_sha256"
        ],
        "title": "ItemAssemblyOperationalReceipt",
        "type": "object"
      },
      "ItemAssemblyOrderingRule": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": [
              "objective",
              "standard",
              "content",
              "cognitive_level",
              "item_kind",
              "difficulty",
              "locale",
              "accessibility",
              "security",
              "exposure"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "ordered_values": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 2,
            "title": "Ordered Values",
            "type": "array"
          },
          "rule_id": {
            "pattern": "^assembly-order:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          }
        },
        "required": ["rule_id", "dimension", "ordered_values"],
        "title": "ItemAssemblyOrderingRule",
        "type": "object"
      },
      "ItemAssemblyPolicyRef": {
        "additionalProperties": false,
        "properties": {
          "institution_id": {
            "format": "uuid",
            "title": "Institution Id",
            "type": "string"
          },
          "policy_id": {
            "pattern": "^assembly-policy:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "silent_relaxation_allowed": {
            "const": false,
            "default": false,
            "title": "Silent Relaxation Allowed",
            "type": "boolean"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["policy_id", "version", "policy_sha256", "institution_id"],
        "title": "ItemAssemblyPolicyRef",
        "type": "object"
      },
      "ItemAssemblyQuota": {
        "additionalProperties": false,
        "properties": {
          "constraint_id": {
            "pattern": "^assembly-quota:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Constraint Id",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "objective",
              "standard",
              "content",
              "cognitive_level",
              "item_kind",
              "difficulty",
              "locale",
              "accessibility",
              "security",
              "exposure"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "maximum": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Maximum",
            "type": "integer"
          },
          "minimum": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum",
            "type": "integer"
          },
          "value": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["constraint_id", "dimension", "value", "maximum"],
        "title": "ItemAssemblyQuota",
        "type": "object"
      },
      "ItemAssemblyRunRecord": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/ItemComparisonActor"
          },
          "assembly_id": {
            "pattern": "^item-assembly-[a-f0-9]{40}$",
            "title": "Assembly Id",
            "type": "string"
          },
          "blueprint": {
            "$ref": "#/components/schemas/ItemAssemblyBlueprint"
          },
          "candidate_pool": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyCandidate"
            },
            "title": "Candidate Pool",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.16.0",
            "default": "4.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "solution": {
            "$ref": "#/components/schemas/ItemAssemblySolution"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "assembly_id",
          "tenant_id",
          "blueprint",
          "candidate_pool",
          "solution",
          "actor",
          "reason",
          "idempotency_key",
          "request_sha256",
          "record_sha256",
          "created_at"
        ],
        "title": "ItemAssemblyRunRecord",
        "type": "object"
      },
      "ItemAssemblyRunRequest": {
        "additionalProperties": false,
        "properties": {
          "blueprint": {
            "$ref": "#/components/schemas/ItemAssemblyBlueprint"
          },
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyCandidateRequest"
            },
            "maxItems": 80,
            "minItems": 1,
            "title": "Candidates",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^item-assembly:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.16.0",
            "default": "4.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id"
          }
        },
        "required": ["idempotency_key", "blueprint", "candidates", "reason"],
        "title": "ItemAssemblyRunRequest",
        "type": "object"
      },
      "ItemAssemblySectionBlueprint": {
        "additionalProperties": false,
        "properties": {
          "balances": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyBalance"
            },
            "maxItems": 64,
            "title": "Balances",
            "type": "array"
          },
          "fixed_positions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyFixedPosition"
            },
            "maxItems": 100,
            "title": "Fixed Positions",
            "type": "array"
          },
          "group_rules": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyGroupRule"
            },
            "maxItems": 64,
            "title": "Group Rules",
            "type": "array"
          },
          "maximum_items_per_stimulus": {
            "default": 100,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Maximum Items Per Stimulus",
            "type": "integer"
          },
          "maximum_points_milli": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Maximum Points Milli",
            "type": "integer"
          },
          "maximum_time_seconds": {
            "maximum": 604800.0,
            "minimum": 0.0,
            "title": "Maximum Time Seconds",
            "type": "integer"
          },
          "minimum_points_milli": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Minimum Points Milli",
            "type": "integer"
          },
          "minimum_time_seconds": {
            "maximum": 604800.0,
            "minimum": 0.0,
            "title": "Minimum Time Seconds",
            "type": "integer"
          },
          "optional_candidate_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Optional Candidate Ids",
            "type": "array"
          },
          "ordering_rules": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyOrderingRule"
            },
            "maxItems": 16,
            "title": "Ordering Rules",
            "type": "array"
          },
          "quotas": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyQuota"
            },
            "maxItems": 256,
            "title": "Quotas",
            "type": "array"
          },
          "randomization": {
            "default": "seeded_items",
            "enum": ["none", "seeded_items", "seeded_groups"],
            "title": "Randomization",
            "type": "string"
          },
          "required_candidate_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Required Candidate Ids",
            "type": "array"
          },
          "required_count": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Required Count",
            "type": "integer"
          },
          "required_stimulus_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Required Stimulus Ids",
            "type": "array"
          },
          "section_id": {
            "pattern": "^assembly-section:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Section Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "section_id",
          "title",
          "required_count",
          "minimum_points_milli",
          "maximum_points_milli",
          "minimum_time_seconds",
          "maximum_time_seconds"
        ],
        "title": "ItemAssemblySectionBlueprint",
        "type": "object"
      },
      "ItemAssemblySectionSolution": {
        "additionalProperties": false,
        "properties": {
          "coverage": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyCoverage"
            },
            "title": "Coverage",
            "type": "array"
          },
          "prior_form_overlap": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "title": "Prior Form Overlap",
            "type": "array"
          },
          "section_id": {
            "title": "Section Id",
            "type": "string"
          },
          "section_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Section Sha256",
            "type": "string"
          },
          "selected": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblySelectedItem"
            },
            "title": "Selected",
            "type": "array"
          },
          "total_expected_time_seconds": {
            "title": "Total Expected Time Seconds",
            "type": "integer"
          },
          "total_points_milli": {
            "title": "Total Points Milli",
            "type": "integer"
          }
        },
        "required": [
          "section_id",
          "selected",
          "total_points_milli",
          "total_expected_time_seconds",
          "coverage",
          "prior_form_overlap",
          "section_sha256"
        ],
        "title": "ItemAssemblySectionSolution",
        "type": "object"
      },
      "ItemAssemblySecurityPolicy": {
        "additionalProperties": false,
        "properties": {
          "allowed_levels": {
            "items": {
              "enum": ["standard", "controlled", "secure"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Allowed Levels",
            "type": "array"
          },
          "allowed_pool_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Allowed Pool Ids",
            "type": "array"
          },
          "required_pool_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Required Pool Ids",
            "type": "array"
          }
        },
        "required": ["allowed_pool_ids", "allowed_levels"],
        "title": "ItemAssemblySecurityPolicy",
        "type": "object"
      },
      "ItemAssemblySelectedItem": {
        "additionalProperties": false,
        "properties": {
          "candidate_id": {
            "title": "Candidate Id",
            "type": "string"
          },
          "expected_time_seconds": {
            "title": "Expected Time Seconds",
            "type": "integer"
          },
          "exposure_band": {
            "title": "Exposure Band",
            "type": "string"
          },
          "family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Family",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_revision": {
            "title": "Item Revision",
            "type": "integer"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "points_milli": {
            "title": "Points Milli",
            "type": "integer"
          },
          "position": {
            "minimum": 1.0,
            "title": "Position",
            "type": "integer"
          },
          "rubric_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rubric Revision Sha256"
          },
          "security_pool_id": {
            "title": "Security Pool Id",
            "type": "string"
          },
          "stimulus_revision_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "title": "Stimulus Revision Sha256S",
            "type": "array"
          }
        },
        "required": [
          "candidate_id",
          "position",
          "item_id",
          "family",
          "item_revision",
          "item_revision_sha256",
          "stimulus_revision_sha256s",
          "rubric_revision_sha256",
          "points_milli",
          "expected_time_seconds",
          "security_pool_id",
          "exposure_band"
        ],
        "title": "ItemAssemblySelectedItem",
        "type": "object"
      },
      "ItemAssemblySolution": {
        "additionalProperties": false,
        "properties": {
          "alternatives": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyAlternative"
            },
            "title": "Alternatives",
            "type": "array"
          },
          "blueprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Blueprint Sha256",
            "type": "string"
          },
          "candidate_pool_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Pool Sha256",
            "type": "string"
          },
          "constraints_relaxed": {
            "const": false,
            "default": false,
            "title": "Constraints Relaxed",
            "type": "boolean"
          },
          "diagnostics": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyDiagnostic"
            },
            "title": "Diagnostics",
            "type": "array"
          },
          "prior_form_overlap": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "title": "Prior Form Overlap",
            "type": "array"
          },
          "schema_version": {
            "const": "4.16.0",
            "default": "4.16.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblySectionSolution"
            },
            "title": "Sections",
            "type": "array"
          },
          "seed": {
            "title": "Seed",
            "type": "string"
          },
          "solution_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Solution Sha256",
            "type": "string"
          },
          "solver_version": {
            "const": "item-assembly-solver:1.0.0",
            "title": "Solver Version",
            "type": "string"
          },
          "status": {
            "enum": ["complete", "infeasible"],
            "title": "Status",
            "type": "string"
          },
          "total_expected_time_seconds": {
            "minimum": 0.0,
            "title": "Total Expected Time Seconds",
            "type": "integer"
          },
          "total_points_milli": {
            "minimum": 0.0,
            "title": "Total Points Milli",
            "type": "integer"
          }
        },
        "required": [
          "status",
          "solver_version",
          "seed",
          "blueprint_sha256",
          "candidate_pool_sha256",
          "sections",
          "total_points_milli",
          "total_expected_time_seconds",
          "prior_form_overlap",
          "diagnostics",
          "alternatives",
          "solution_sha256"
        ],
        "title": "ItemAssemblySolution",
        "type": "object"
      },
      "ItemAssemblyUseRecord": {
        "additionalProperties": false,
        "properties": {
          "form_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Form Id",
            "type": "string"
          },
          "used_at": {
            "format": "date-time",
            "title": "Used At",
            "type": "string"
          }
        },
        "required": ["form_id", "used_at"],
        "title": "ItemAssemblyUseRecord",
        "type": "object"
      },
      "ItemAssemblyWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "assembly": {
            "$ref": "#/components/schemas/ItemAssemblyRunRecord"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/ItemAssemblyDecisionRecord"
            },
            "title": "Decisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.16.0",
            "default": "4.16.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["assembly", "decisions"],
        "title": "ItemAssemblyWorkspaceResponse",
        "type": "object"
      },
      "ItemBankFacet": {
        "additionalProperties": false,
        "properties": {
          "buckets": {
            "items": {
              "$ref": "#/components/schemas/ItemBankFacetBucket"
            },
            "title": "Buckets",
            "type": "array"
          },
          "name": {
            "$ref": "#/components/schemas/ItemBankFacetName"
          }
        },
        "required": ["name", "buckets"],
        "title": "ItemBankFacet",
        "type": "object"
      },
      "ItemBankFacetBucket": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "minimum": 1.0,
            "title": "Count",
            "type": "integer"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "label", "count"],
        "title": "ItemBankFacetBucket",
        "type": "object"
      },
      "ItemBankFacetName": {
        "enum": [
          "kind",
          "objective",
          "standard",
          "difficulty",
          "discrimination",
          "exposure",
          "locale",
          "status",
          "author",
          "gate",
          "usage",
          "rights",
          "accessibility"
        ],
        "title": "ItemBankFacetName",
        "type": "string"
      },
      "ItemBankFieldPolicy": {
        "additionalProperties": false,
        "properties": {
          "admin_only_items_visible": {
            "title": "Admin Only Items Visible",
            "type": "boolean"
          },
          "exact_discrimination_visible": {
            "title": "Exact Discrimination Visible",
            "type": "boolean"
          },
          "exact_exposure_visible": {
            "title": "Exact Exposure Visible",
            "type": "boolean"
          },
          "protected_answer_fields_visible": {
            "const": false,
            "default": false,
            "title": "Protected Answer Fields Visible",
            "type": "boolean"
          },
          "role": {
            "enum": ["instructor", "admin"],
            "title": "Role",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "role",
          "tenant_id",
          "exact_discrimination_visible",
          "exact_exposure_visible",
          "admin_only_items_visible"
        ],
        "title": "ItemBankFieldPolicy",
        "type": "object"
      },
      "ItemBankPreviewResponse": {
        "additionalProperties": false,
        "properties": {
          "field_policy": {
            "$ref": "#/components/schemas/ItemBankFieldPolicy"
          },
          "item": {
            "$ref": "#/components/schemas/ItemBankSearchHit"
          },
          "notice": {
            "default": "Author preview is answer-safe. Keys, rationales, option payloads, hints, and learner data are intentionally excluded.",
            "title": "Notice",
            "type": "string"
          },
          "schema_version": {
            "const": "4.1.0",
            "default": "4.1.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["item", "field_policy"],
        "title": "ItemBankPreviewResponse",
        "type": "object"
      },
      "ItemBankSearchFilters": {
        "additionalProperties": false,
        "properties": {
          "accessibility_states": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemAccessibilityState"
            },
            "maxItems": 5,
            "title": "Accessibility States",
            "type": "array"
          },
          "author_ids": {
            "default": [],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Author Ids",
            "type": "array"
          },
          "course_ids": {
            "default": [],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Course Ids",
            "type": "array"
          },
          "difficulties": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemDifficulty"
            },
            "maxItems": 4,
            "title": "Difficulties",
            "type": "array"
          },
          "discrimination_max": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": -1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discrimination Max"
          },
          "discrimination_min": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": -1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discrimination Min"
          },
          "discrimination_states": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PsychometricState"
            },
            "maxItems": 3,
            "title": "Discrimination States",
            "type": "array"
          },
          "exposure_bands": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExposureBand"
            },
            "maxItems": 6,
            "title": "Exposure Bands",
            "type": "array"
          },
          "exposure_states": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PsychometricState"
            },
            "maxItems": 3,
            "title": "Exposure States",
            "type": "array"
          },
          "gates": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemGateState"
            },
            "maxItems": 5,
            "title": "Gates",
            "type": "array"
          },
          "kinds": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemKind"
            },
            "maxItems": 10,
            "title": "Kinds",
            "type": "array"
          },
          "locales": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Locales",
            "type": "array"
          },
          "objective_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Objective Ids",
            "type": "array"
          },
          "rights_states": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemRightsState"
            },
            "maxItems": 4,
            "title": "Rights States",
            "type": "array"
          },
          "standard_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Standard Ids",
            "type": "array"
          },
          "statuses": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemLifecycleStatus"
            },
            "maxItems": 5,
            "title": "Statuses",
            "type": "array"
          },
          "usage_max": {
            "anyOf": [
              {
                "maximum": 1000000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usage Max"
          },
          "usage_min": {
            "anyOf": [
              {
                "maximum": 1000000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usage Min"
          }
        },
        "title": "ItemBankSearchFilters",
        "type": "object"
      },
      "ItemBankSearchHit": {
        "additionalProperties": false,
        "properties": {
          "accessibility_state": {
            "$ref": "#/components/schemas/ItemAccessibilityState"
          },
          "author_id": {
            "format": "uuid",
            "title": "Author Id",
            "type": "string"
          },
          "author_name": {
            "title": "Author Name",
            "type": "string"
          },
          "difficulty": {
            "$ref": "#/components/schemas/ItemDifficulty"
          },
          "discrimination_state": {
            "$ref": "#/components/schemas/PsychometricState"
          },
          "discrimination_value": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": -1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discrimination Value"
          },
          "exposure_band": {
            "$ref": "#/components/schemas/ExposureBand"
          },
          "exposure_state": {
            "$ref": "#/components/schemas/PsychometricState"
          },
          "exposure_value": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exposure Value"
          },
          "gate_state": {
            "$ref": "#/components/schemas/ItemGateState"
          },
          "item_id": {
            "format": "uuid",
            "title": "Item Id",
            "type": "string"
          },
          "kind": {
            "$ref": "#/components/schemas/ItemKind"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "objectives": {
            "items": {
              "type": "string"
            },
            "title": "Objectives",
            "type": "array"
          },
          "preview_path": {
            "title": "Preview Path",
            "type": "string"
          },
          "prompt_preview": {
            "title": "Prompt Preview",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rights_state": {
            "$ref": "#/components/schemas/ItemRightsState"
          },
          "source_updated_at": {
            "format": "date-time",
            "title": "Source Updated At",
            "type": "string"
          },
          "standards": {
            "items": {
              "type": "string"
            },
            "title": "Standards",
            "type": "array"
          },
          "status": {
            "$ref": "#/components/schemas/ItemLifecycleStatus"
          },
          "use": {
            "$ref": "#/components/schemas/ItemBankUseState"
          }
        },
        "required": [
          "item_id",
          "revision",
          "revision_sha256",
          "kind",
          "prompt_preview",
          "objectives",
          "standards",
          "difficulty",
          "discrimination_state",
          "exposure_state",
          "exposure_band",
          "locale",
          "status",
          "author_id",
          "author_name",
          "gate_state",
          "rights_state",
          "accessibility_state",
          "use",
          "source_updated_at",
          "preview_path"
        ],
        "title": "ItemBankSearchHit",
        "type": "object"
      },
      "ItemBankSearchRequest": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "anyOf": [
              {
                "maxLength": 2000,
                "minLength": 16,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cursor"
          },
          "facets": {
            "default": [
              "kind",
              "objective",
              "standard",
              "difficulty",
              "discrimination",
              "exposure",
              "locale",
              "status",
              "author",
              "gate",
              "usage",
              "rights",
              "accessibility"
            ],
            "items": {
              "$ref": "#/components/schemas/ItemBankFacetName"
            },
            "maxItems": 13,
            "title": "Facets",
            "type": "array"
          },
          "filters": {
            "$ref": "#/components/schemas/ItemBankSearchFilters"
          },
          "include_suggestions": {
            "default": true,
            "title": "Include Suggestions",
            "type": "boolean"
          },
          "page_size": {
            "default": 24,
            "maximum": 50.0,
            "minimum": 1.0,
            "title": "Page Size",
            "type": "integer"
          },
          "query": {
            "default": "",
            "maxLength": 120,
            "title": "Query",
            "type": "string"
          },
          "sort": {
            "$ref": "#/components/schemas/ItemBankSort",
            "default": "relevance"
          },
          "tenant_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id"
          }
        },
        "title": "ItemBankSearchRequest",
        "type": "object"
      },
      "ItemBankSearchResponse": {
        "additionalProperties": false,
        "properties": {
          "facets": {
            "items": {
              "$ref": "#/components/schemas/ItemBankFacet"
            },
            "title": "Facets",
            "type": "array"
          },
          "field_policy": {
            "$ref": "#/components/schemas/ItemBankFieldPolicy"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "query_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Query Sha256",
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/ItemBankSearchHit"
            },
            "title": "Results",
            "type": "array"
          },
          "returned_count": {
            "maximum": 50.0,
            "minimum": 0.0,
            "title": "Returned Count",
            "type": "integer"
          },
          "schema_version": {
            "const": "4.1.0",
            "default": "4.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Snapshot Sha256",
            "type": "string"
          },
          "suggestions": {
            "items": {
              "$ref": "#/components/schemas/ItemBankSuggestion"
            },
            "title": "Suggestions",
            "type": "array"
          },
          "total_count": {
            "minimum": 0.0,
            "title": "Total Count",
            "type": "integer"
          }
        },
        "required": [
          "query_sha256",
          "snapshot_sha256",
          "total_count",
          "returned_count",
          "results",
          "facets",
          "suggestions",
          "field_policy"
        ],
        "title": "ItemBankSearchResponse",
        "type": "object"
      },
      "ItemBankSort": {
        "enum": [
          "relevance",
          "updated_desc",
          "usage_desc",
          "difficulty_asc",
          "discrimination_desc",
          "exposure_asc"
        ],
        "title": "ItemBankSort",
        "type": "string"
      },
      "ItemBankSuggestion": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "minimum": 1.0,
            "title": "Count",
            "type": "integer"
          },
          "dimension": {
            "$ref": "#/components/schemas/ItemBankFacetName"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["dimension", "value", "label", "count"],
        "title": "ItemBankSuggestion",
        "type": "object"
      },
      "ItemBankUseState": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "format": "uuid",
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_title": {
            "title": "Assessment Title",
            "type": "string"
          },
          "course_id": {
            "format": "uuid",
            "title": "Course Id",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "usage_count": {
            "minimum": 0.0,
            "title": "Usage Count",
            "type": "integer"
          }
        },
        "required": [
          "course_id",
          "course_title",
          "assessment_id",
          "assessment_title",
          "usage_count"
        ],
        "title": "ItemBankUseState",
        "type": "object"
      },
      "ItemClarityAssistAttribution": {
        "additionalProperties": false,
        "properties": {
          "assist_kind": {
            "enum": ["model", "human_assist"],
            "title": "Assist Kind",
            "type": "string"
          },
          "config_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Config Id",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "model_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Id"
          },
          "model_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Sha256"
          },
          "model_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "provider_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Provider Id",
            "type": "string"
          }
        },
        "required": [
          "assist_kind",
          "provider_id",
          "method_id",
          "method_version",
          "method_sha256",
          "config_id",
          "config_version",
          "config_sha256"
        ],
        "title": "ItemClarityAssistAttribution",
        "type": "object"
      },
      "ItemClarityAssistFinding": {
        "additionalProperties": false,
        "properties": {
          "anchor": {
            "$ref": "#/components/schemas/ItemClarityTextAnchor"
          },
          "assist_finding_id": {
            "pattern": "^clarity-assist-finding:[a-f0-9]{40}$",
            "title": "Assist Finding Id",
            "type": "string"
          },
          "category": {
            "const": "semantic_ambiguity",
            "default": "semantic_ambiguity",
            "title": "Category",
            "type": "string"
          },
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "counterinterpretations": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 2,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "severity": {
            "enum": ["review", "block"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "assist_finding_id",
          "severity",
          "anchor",
          "statement",
          "uncertainty",
          "counterinterpretations",
          "confidence"
        ],
        "title": "ItemClarityAssistFinding",
        "type": "object"
      },
      "ItemClarityAssistSubmission": {
        "additionalProperties": false,
        "properties": {
          "assist_id": {
            "pattern": "^clarity-assist:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Assist Id",
            "type": "string"
          },
          "attribution": {
            "$ref": "#/components/schemas/ItemClarityAssistAttribution"
          },
          "configured_timeout_ms": {
            "maximum": 600000.0,
            "minimum": 1.0,
            "title": "Configured Timeout Ms",
            "type": "integer"
          },
          "detail": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "elapsed_ms": {
            "maximum": 600000.0,
            "minimum": 0.0,
            "title": "Elapsed Ms",
            "type": "integer"
          },
          "error_code": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemClarityAssistFinding"
            },
            "maxItems": 32,
            "title": "Findings",
            "type": "array"
          },
          "outcome": {
            "enum": ["pass", "finding", "uncertain", "timeout", "error", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "assist_id",
          "attribution",
          "outcome",
          "configured_timeout_ms",
          "elapsed_ms",
          "detail",
          "uncertainty"
        ],
        "title": "ItemClarityAssistSubmission",
        "type": "object"
      },
      "ItemClarityFinding": {
        "additionalProperties": false,
        "properties": {
          "anchor": {
            "$ref": "#/components/schemas/ItemClarityTextAnchor"
          },
          "attributed_to": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Attributed To",
            "type": "string"
          },
          "category": {
            "enum": [
              "incomplete_context",
              "unclear_referent",
              "unclear_instruction",
              "unclear_response_format",
              "negative_wording",
              "absolute_wording",
              "double_barreled_prompt",
              "answer_cue",
              "language_clarity",
              "construct_irrelevant_complexity",
              "semantic_ambiguity"
            ],
            "title": "Category",
            "type": "string"
          },
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^item-clarity-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "origin": {
            "enum": ["deterministic", "semantic_assist"],
            "title": "Origin",
            "type": "string"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "rule_version": {
            "title": "Rule Version",
            "type": "string"
          },
          "severity": {
            "enum": ["review", "block"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "uncertainty": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "origin",
          "rule_id",
          "rule_version",
          "category",
          "severity",
          "anchor",
          "statement",
          "evidence",
          "attributed_to"
        ],
        "title": "ItemClarityFinding",
        "type": "object"
      },
      "ItemClarityFindingDecision": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["confirm", "resolve", "dismiss"],
            "title": "Decision",
            "type": "string"
          },
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^item-clarity-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["finding_id", "decision", "rationale"],
        "title": "ItemClarityFindingDecision",
        "type": "object"
      },
      "ItemClarityFreshness": {
        "additionalProperties": false,
        "properties": {
          "current_source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Source Revision Sha256",
            "type": "string"
          },
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "scanned_source_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scanned Source Revision Sha256"
          },
          "stale_reasons": {
            "items": {
              "enum": [
                "scan_missing",
                "review_missing",
                "gate_missing",
                "item_revision_changed",
                "scan_changed",
                "review_changed"
              ],
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          }
        },
        "required": [
          "review_required",
          "stale_reasons",
          "current_source_revision_sha256",
          "scanned_source_revision_sha256"
        ],
        "title": "ItemClarityFreshness",
        "type": "object"
      },
      "ItemClarityGateContent": {
        "additionalProperties": false,
        "properties": {
          "blocking_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Blocking Reasons",
            "type": "array"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityFindingDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          },
          "review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Revision Sha256",
            "type": "string"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "unresolved_blocking_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Blocking Finding Ids",
            "type": "array"
          }
        },
        "required": [
          "scan_revision_sha256",
          "review_revision_sha256",
          "source_revision_sha256",
          "requested_action",
          "status",
          "release_allowed",
          "raw_findings",
          "decisions",
          "unresolved_blocking_finding_ids",
          "blocking_reasons"
        ],
        "title": "ItemClarityGateContent",
        "type": "object"
      },
      "ItemClarityGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_review_revision": {
            "minimum": 1.0,
            "title": "Expected Review Revision",
            "type": "integer"
          },
          "expected_review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Review Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_review_revision",
          "expected_review_revision_sha256",
          "requested_action",
          "reason"
        ],
        "title": "ItemClarityGateRequest",
        "type": "object"
      },
      "ItemClarityGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/ItemClarityGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^item-clarity-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.3.0",
            "default": "5.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemClarityGateResponse",
        "type": "object"
      },
      "ItemClarityHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityReviewResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "scans": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityScanResponse"
            },
            "title": "Scans",
            "type": "array"
          },
          "schema_version": {
            "const": "5.3.0",
            "default": "5.3.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "scans", "reviews", "gates"],
        "title": "ItemClarityHistoryResponse",
        "type": "object"
      },
      "ItemClarityPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemClarityGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemClarityReviewResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_scan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemClarityScanResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/ItemClarityFreshness"
          },
          "rule_profile": {
            "$ref": "#/components/schemas/ItemClarityRuleProfile"
          },
          "schema_version": {
            "const": "5.3.0",
            "default": "5.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ItemClaritySourceSnapshot"
          }
        },
        "required": [
          "source",
          "rule_profile",
          "current_scan",
          "current_review",
          "current_gate",
          "freshness"
        ],
        "title": "ItemClarityPreparationResponse",
        "type": "object"
      },
      "ItemClarityReviewContent": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityFindingDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "dismissed_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Dismissed Finding Ids",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "reviewer_verdict": {
            "enum": ["clear", "needs_revision"],
            "title": "Reviewer Verdict",
            "type": "string"
          },
          "scan_id": {
            "title": "Scan Id",
            "type": "string"
          },
          "scan_revision": {
            "minimum": 1.0,
            "title": "Scan Revision",
            "type": "integer"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "unresolved_blocking_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Blocking Finding Ids",
            "type": "array"
          }
        },
        "required": [
          "scan_id",
          "scan_revision",
          "scan_revision_sha256",
          "source_revision_sha256",
          "raw_findings",
          "decisions",
          "reviewer_verdict",
          "unresolved_blocking_finding_ids",
          "dismissed_finding_ids"
        ],
        "title": "ItemClarityReviewContent",
        "type": "object"
      },
      "ItemClarityReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityFindingDecision"
            },
            "maxItems": 200,
            "title": "Decisions",
            "type": "array"
          },
          "expected_review_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision"
          },
          "expected_review_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision Sha256"
          },
          "expected_scan_revision": {
            "minimum": 1.0,
            "title": "Expected Scan Revision",
            "type": "integer"
          },
          "expected_scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Scan Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reviewer_verdict": {
            "enum": ["clear", "needs_revision"],
            "title": "Reviewer Verdict",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_scan_revision",
          "expected_scan_revision_sha256",
          "reviewer_verdict",
          "reason",
          "decisions"
        ],
        "title": "ItemClarityReviewRequest",
        "type": "object"
      },
      "ItemClarityReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/ItemClarityReviewContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^item-clarity-review-[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.3.0",
            "default": "5.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemClarityReviewResponse",
        "type": "object"
      },
      "ItemClarityRuleApplication": {
        "additionalProperties": false,
        "properties": {
          "reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Reasons",
            "type": "array"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          },
          "rule_version": {
            "title": "Rule Version",
            "type": "string"
          },
          "status": {
            "enum": ["applied", "not_applicable"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["rule_id", "rule_version", "status", "reasons"],
        "title": "ItemClarityRuleApplication",
        "type": "object"
      },
      "ItemClarityRuleDefinition": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "incomplete_context",
              "unclear_referent",
              "unclear_instruction",
              "unclear_response_format",
              "negative_wording",
              "absolute_wording",
              "double_barreled_prompt",
              "answer_cue",
              "language_clarity",
              "construct_irrelevant_complexity",
              "semantic_ambiguity"
            ],
            "title": "Category",
            "type": "string"
          },
          "default_severity": {
            "enum": ["review", "block"],
            "title": "Default Severity",
            "type": "string"
          },
          "evaluator": {
            "enum": ["deterministic", "semantic_assist"],
            "title": "Evaluator",
            "type": "string"
          },
          "field_purposes": {
            "items": {
              "enum": ["prompt", "instructions", "context", "response_format", "option"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Field Purposes",
            "type": "array"
          },
          "item_kinds": {
            "items": {
              "enum": [
                "assessment-kind:single-choice",
                "assessment-kind:multiple-choice",
                "assessment-kind:ordering",
                "assessment-kind:matching",
                "assessment-kind:hotspot",
                "assessment-kind:constructed-response",
                "assessment-kind:essay",
                "assessment-kind:math",
                "assessment-kind:code",
                "assessment-kind:media",
                "assessment-kind:simulation",
                "assessment-kind:interaction",
                "assessment-kind:portfolio",
                "assessment-kind:oral-performance",
                "assessment-kind:performance"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Item Kinds",
            "type": "array"
          },
          "locales": {
            "items": {
              "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-[0-9]{3})?$",
              "type": "string"
            },
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "rule_id": {
            "pattern": "^clarity-rule:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Sha256",
            "type": "string"
          },
          "rule_version": {
            "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$",
            "title": "Rule Version",
            "type": "string"
          },
          "source_families": {
            "items": {
              "enum": [
                "selected-response",
                "written-response",
                "executable-response",
                "interactive-response",
                "performance-evidence"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Source Families",
            "type": "array"
          },
          "title": {
            "maxLength": 160,
            "minLength": 3,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "rule_id",
          "rule_version",
          "category",
          "title",
          "rationale",
          "evaluator",
          "default_severity",
          "source_families",
          "item_kinds",
          "locales",
          "field_purposes",
          "rule_sha256"
        ],
        "title": "ItemClarityRuleDefinition",
        "type": "object"
      },
      "ItemClarityRuleProfile": {
        "additionalProperties": false,
        "properties": {
          "profile_id": {
            "const": "metis.item-clarity-rules",
            "default": "metis.item-clarity-rules",
            "title": "Profile Id",
            "type": "string"
          },
          "profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Profile Sha256",
            "type": "string"
          },
          "profile_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Profile Version",
            "type": "string"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityRuleDefinition"
            },
            "minItems": 11,
            "title": "Rules",
            "type": "array"
          }
        },
        "required": ["profile_sha256", "rules"],
        "title": "ItemClarityRuleProfile",
        "type": "object"
      },
      "ItemClarityScanContent": {
        "additionalProperties": false,
        "properties": {
          "applications": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityRuleApplication"
            },
            "minItems": 11,
            "title": "Applications",
            "type": "array"
          },
          "automated_status": {
            "enum": ["clear", "review", "blocked"],
            "title": "Automated Status",
            "type": "string"
          },
          "human_resolution_required": {
            "title": "Human Resolution Required",
            "type": "boolean"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "rule_profile": {
            "$ref": "#/components/schemas/ItemClarityRuleProfile"
          },
          "semantic_assists": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemClarityAssistSubmission"
            },
            "maxItems": 16,
            "title": "Semantic Assists",
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/ItemClaritySourceSnapshot"
          }
        },
        "required": [
          "source",
          "rule_profile",
          "applications",
          "raw_findings",
          "automated_status",
          "human_resolution_required",
          "limitations"
        ],
        "title": "ItemClarityScanContent",
        "type": "object"
      },
      "ItemClarityScanRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_scan_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision"
          },
          "expected_scan_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision Sha256"
          },
          "expected_source_revision": {
            "minimum": 1.0,
            "title": "Expected Source Revision",
            "type": "integer"
          },
          "expected_source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-[0-9]{3})?$",
            "title": "Locale",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "semantic_assists": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemClarityAssistSubmission"
            },
            "maxItems": 16,
            "title": "Semantic Assists",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "expected_source_revision",
          "expected_source_revision_sha256",
          "locale",
          "reason"
        ],
        "title": "ItemClarityScanRequest",
        "type": "object"
      },
      "ItemClarityScanResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/ItemClarityScanContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "scan_id": {
            "pattern": "^item-clarity-scan-[a-f0-9]{40}$",
            "title": "Scan Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.3.0",
            "default": "5.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "scan_id",
          "tenant_id",
          "draft_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemClarityScanResponse",
        "type": "object"
      },
      "ItemClaritySourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/ItemClarityTextField"
            },
            "maxItems": 240,
            "minItems": 1,
            "title": "Fields",
            "type": "array"
          },
          "item_kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot",
              "assessment-kind:constructed-response",
              "assessment-kind:essay",
              "assessment-kind:math",
              "assessment-kind:code",
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction",
              "assessment-kind:portfolio",
              "assessment-kind:oral-performance",
              "assessment-kind:performance"
            ],
            "title": "Item Kind",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-[A-Z]{2}|-[0-9]{3})?$",
            "title": "Locale",
            "type": "string"
          },
          "source_family": {
            "enum": [
              "selected-response",
              "written-response",
              "executable-response",
              "interactive-response",
              "performance-evidence"
            ],
            "title": "Source Family",
            "type": "string"
          },
          "source_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_revision": {
            "minimum": 1.0,
            "title": "Source Revision",
            "type": "integer"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "source_family",
          "source_id",
          "source_revision",
          "source_revision_sha256",
          "item_kind",
          "locale",
          "fields",
          "source_sha256"
        ],
        "title": "ItemClaritySourceSnapshot",
        "type": "object"
      },
      "ItemClarityTextAnchor": {
        "additionalProperties": false,
        "properties": {
          "end_offset": {
            "minimum": 0.0,
            "title": "End Offset",
            "type": "integer"
          },
          "excerpt": {
            "maxLength": 2000,
            "title": "Excerpt",
            "type": "string"
          },
          "field_path": {
            "pattern": "^[a-z][a-z0-9_.\\[\\]-]{1,255}$",
            "title": "Field Path",
            "type": "string"
          },
          "field_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Field Sha256",
            "type": "string"
          },
          "start_offset": {
            "minimum": 0.0,
            "title": "Start Offset",
            "type": "integer"
          }
        },
        "required": ["field_path", "start_offset", "end_offset", "excerpt", "field_sha256"],
        "title": "ItemClarityTextAnchor",
        "type": "object"
      },
      "ItemClarityTextField": {
        "additionalProperties": false,
        "properties": {
          "field_path": {
            "pattern": "^[a-z][a-z0-9_.\\[\\]-]{1,255}$",
            "title": "Field Path",
            "type": "string"
          },
          "purpose": {
            "enum": ["prompt", "instructions", "context", "response_format", "option"],
            "title": "Purpose",
            "type": "string"
          },
          "text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": ["field_path", "purpose", "text", "text_sha256"],
        "title": "ItemClarityTextField",
        "type": "object"
      },
      "ItemComparisonActor": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "ItemComparisonActor",
        "type": "object"
      },
      "ItemComparisonCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "comparisons": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonRecord"
            },
            "maxItems": 100,
            "title": "Comparisons",
            "type": "array"
          },
          "schema_version": {
            "const": "4.15.0",
            "default": "4.15.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["comparisons"],
        "title": "ItemComparisonCatalogResponse",
        "type": "object"
      },
      "ItemComparisonCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "idempotency_key": {
            "pattern": "^item-comparison:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "left": {
            "$ref": "#/components/schemas/ItemComparisonRevisionPin"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "right": {
            "$ref": "#/components/schemas/ItemComparisonRevisionPin"
          },
          "schema_version": {
            "const": "4.15.0",
            "default": "4.15.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "left", "right", "reason"],
        "title": "ItemComparisonCreateRequest",
        "type": "object"
      },
      "ItemComparisonDecisionEvidence": {
        "additionalProperties": false,
        "properties": {
          "evidence_id": {
            "pattern": "^comparison-evidence:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": ["source", "review", "gate", "accessibility", "measurement", "impact"],
            "title": "Kind",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "note": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Note",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sha256",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "locator", "sha256", "note"],
        "title": "ItemComparisonDecisionEvidence",
        "type": "object"
      },
      "ItemComparisonDecisionProjection": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/ItemComparisonDecisionRecord"
          },
          "status": {
            "enum": ["current", "superseded"],
            "title": "Status",
            "type": "string"
          },
          "superseded_by_decision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Superseded By Decision Id"
          }
        },
        "required": ["decision", "status", "superseded_by_decision_id"],
        "title": "ItemComparisonDecisionProjection",
        "type": "object"
      },
      "ItemComparisonDecisionRecord": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["select", "reject", "request_changes", "merge", "supersede"],
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "$ref": "#/components/schemas/ItemComparisonActor"
          },
          "comparison_id": {
            "title": "Comparison Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^item-comparison-decision-[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonDecisionEvidence"
            },
            "title": "Evidence",
            "type": "array"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "immutable_source_revision_sha256s": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              }
            ],
            "title": "Immutable Source Revision Sha256S",
            "type": "array"
          },
          "merged_revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemComparisonMergedRevision"
              },
              {
                "type": "null"
              }
            ]
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_changes": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonRequestedChange"
            },
            "title": "Requested Changes",
            "type": "array"
          },
          "schema_version": {
            "const": "4.15.0",
            "default": "4.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject_side": {
            "anyOf": [
              {
                "enum": ["left", "right"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Side"
          },
          "supersedes_decision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Decision Id"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "comparison_id",
          "tenant_id",
          "action",
          "subject_side",
          "rationale",
          "evidence",
          "requested_changes",
          "immutable_source_revision_sha256s",
          "merged_revision",
          "supersedes_decision_id",
          "actor",
          "idempotency_key",
          "request_sha256",
          "decision_sha256",
          "created_at"
        ],
        "title": "ItemComparisonDecisionRecord",
        "type": "object"
      },
      "ItemComparisonDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["select", "reject", "request_changes", "merge", "supersede"],
            "title": "Action",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonDecisionEvidence"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "expected_comparison_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Comparison Sha256",
            "type": "string"
          },
          "expected_latest_decision_id": {
            "anyOf": [
              {
                "pattern": "^item-comparison-decision-[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Latest Decision Id"
          },
          "expected_latest_decision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Latest Decision Sha256"
          },
          "idempotency_key": {
            "pattern": "^item-comparison-decision:[A-Za-z0-9._:-]{8,120}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "merged_content": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SelectedResponseDraft"
              },
              {
                "$ref": "#/components/schemas/WrittenResponseDraft"
              },
              {
                "discriminator": {
                  "mapping": {
                    "assessment-kind:code": "#/components/schemas/CodeItemContent",
                    "assessment-kind:math": "#/components/schemas/MathItemContent"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/MathItemContent"
                  },
                  {
                    "$ref": "#/components/schemas/CodeItemContent"
                  }
                ]
              },
              {
                "$ref": "#/components/schemas/MediaInteractiveItemContent"
              },
              {
                "type": "null"
              }
            ],
            "title": "Merged Content"
          },
          "rationale": {
            "maxLength": 10000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "requested_changes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemComparisonRequestedChange"
            },
            "maxItems": 128,
            "title": "Requested Changes",
            "type": "array"
          },
          "schema_version": {
            "const": "4.15.0",
            "default": "4.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject_side": {
            "anyOf": [
              {
                "enum": ["left", "right"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Side"
          },
          "supersedes_decision_id": {
            "anyOf": [
              {
                "pattern": "^item-comparison-decision-[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Decision Id"
          }
        },
        "required": [
          "idempotency_key",
          "action",
          "expected_comparison_sha256",
          "rationale",
          "evidence"
        ],
        "title": "ItemComparisonDecisionRequest",
        "type": "object"
      },
      "ItemComparisonImpact": {
        "additionalProperties": false,
        "properties": {
          "impact_kind": {
            "enum": [
              "estimate",
              "psychometric",
              "accessibility",
              "answer_verification",
              "answer_leakage",
              "review",
              "gate",
              "usage",
              "exposure",
              "standard",
              "objective",
              "stimulus",
              "rubric"
            ],
            "title": "Impact Kind",
            "type": "string"
          },
          "state": {
            "enum": ["current", "stale", "passed", "blocked", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "witness_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Witness Sha256"
          }
        },
        "required": ["impact_kind", "state", "summary"],
        "title": "ItemComparisonImpact",
        "type": "object"
      },
      "ItemComparisonMergedRevision": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Family",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "family",
          "item_id",
          "draft_id",
          "revision",
          "revision_sha256",
          "content_sha256"
        ],
        "title": "ItemComparisonMergedRevision",
        "type": "object"
      },
      "ItemComparisonProvenance": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/ItemComparisonActor"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "actor",
          "reason",
          "created_at",
          "request_sha256",
          "content_sha256",
          "revision_sha256"
        ],
        "title": "ItemComparisonProvenance",
        "type": "object"
      },
      "ItemComparisonRecord": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/ItemComparisonActor"
          },
          "comparison_id": {
            "pattern": "^item-comparison-[a-f0-9]{40}$",
            "title": "Comparison Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.15.0",
            "default": "4.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "snapshot": {
            "$ref": "#/components/schemas/ItemComparisonSnapshot"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "comparison_id",
          "tenant_id",
          "snapshot",
          "actor",
          "reason",
          "idempotency_key",
          "request_sha256",
          "record_sha256",
          "created_at"
        ],
        "title": "ItemComparisonRecord",
        "type": "object"
      },
      "ItemComparisonRequestedChange": {
        "additionalProperties": false,
        "properties": {
          "change_id": {
            "pattern": "^comparison-change:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Change Id",
            "type": "string"
          },
          "field": {
            "enum": [
              "stem",
              "instructions",
              "sources",
              "objectives",
              "standards",
              "response",
              "options",
              "interaction",
              "scoring",
              "key",
              "rationales",
              "feedback",
              "hints",
              "exposure",
              "accessibility",
              "locales",
              "media",
              "estimates",
              "psychometrics",
              "gates_reviews",
              "use_impacts"
            ],
            "title": "Field",
            "type": "string"
          },
          "request": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Request",
            "type": "string"
          }
        },
        "required": ["change_id", "field", "request"],
        "title": "ItemComparisonRequestedChange",
        "type": "object"
      },
      "ItemComparisonResolvedRubric": {
        "additionalProperties": false,
        "properties": {
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "source": {
            "const": "embedded_exact_scoring_guide",
            "default": "embedded_exact_scoring_guide",
            "title": "Source",
            "type": "string"
          }
        },
        "required": ["rubric_id", "revision", "revision_sha256"],
        "title": "ItemComparisonResolvedRubric",
        "type": "object"
      },
      "ItemComparisonResolvedStimulus": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "lifecycle": {
            "enum": ["draft", "reviewed", "retired"],
            "title": "Lifecycle",
            "type": "string"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "title": "Locales",
            "type": "array"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "stimulus_id": {
            "title": "Stimulus Id",
            "type": "string"
          }
        },
        "required": [
          "stimulus_id",
          "revision",
          "revision_sha256",
          "content_sha256",
          "lifecycle",
          "locales"
        ],
        "title": "ItemComparisonResolvedStimulus",
        "type": "object"
      },
      "ItemComparisonRevisionPin": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Family",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "stimuli": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemComparisonStimulusPin"
            },
            "maxItems": 32,
            "title": "Stimuli",
            "type": "array"
          }
        },
        "required": ["draft_id", "family", "revision", "revision_sha256"],
        "title": "ItemComparisonRevisionPin",
        "type": "object"
      },
      "ItemComparisonSideSnapshot": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Family",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_kind": {
            "title": "Item Kind",
            "type": "string"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "title": "Locales",
            "type": "array"
          },
          "provenance": {
            "$ref": "#/components/schemas/ItemComparisonProvenance"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rubric": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemComparisonResolvedRubric"
              },
              {
                "type": "null"
              }
            ]
          },
          "side": {
            "enum": ["left", "right"],
            "title": "Side",
            "type": "string"
          },
          "stimuli": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonResolvedStimulus"
            },
            "title": "Stimuli",
            "type": "array"
          }
        },
        "required": [
          "side",
          "family",
          "item_id",
          "draft_id",
          "revision",
          "revision_sha256",
          "content_sha256",
          "item_kind",
          "locales",
          "provenance",
          "stimuli",
          "rubric"
        ],
        "title": "ItemComparisonSideSnapshot",
        "type": "object"
      },
      "ItemComparisonSnapshot": {
        "additionalProperties": false,
        "properties": {
          "changed_field_count": {
            "maximum": 21.0,
            "minimum": 0.0,
            "title": "Changed Field Count",
            "type": "integer"
          },
          "diffs": {
            "items": {
              "$ref": "#/components/schemas/ItemSemanticDiff"
            },
            "maxItems": 21,
            "minItems": 21,
            "title": "Diffs",
            "type": "array"
          },
          "learner_protected_values_visible": {
            "const": false,
            "default": false,
            "title": "Learner Protected Values Visible",
            "type": "boolean"
          },
          "left": {
            "$ref": "#/components/schemas/ItemComparisonSideSnapshot"
          },
          "left_impacts": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonImpact"
            },
            "title": "Left Impacts",
            "type": "array"
          },
          "protected_field_count": {
            "maximum": 21.0,
            "minimum": 0.0,
            "title": "Protected Field Count",
            "type": "integer"
          },
          "right": {
            "$ref": "#/components/schemas/ItemComparisonSideSnapshot"
          },
          "right_impacts": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonImpact"
            },
            "title": "Right Impacts",
            "type": "array"
          },
          "schema_version": {
            "const": "4.15.0",
            "default": "4.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Snapshot Sha256",
            "type": "string"
          }
        },
        "required": [
          "left",
          "right",
          "diffs",
          "left_impacts",
          "right_impacts",
          "changed_field_count",
          "protected_field_count",
          "snapshot_sha256"
        ],
        "title": "ItemComparisonSnapshot",
        "type": "object"
      },
      "ItemComparisonStimulusPin": {
        "additionalProperties": false,
        "properties": {
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "stimulus_id": {
            "pattern": "^stimulus-[a-f0-9]{40}$",
            "title": "Stimulus Id",
            "type": "string"
          }
        },
        "required": ["stimulus_id", "revision", "revision_sha256"],
        "title": "ItemComparisonStimulusPin",
        "type": "object"
      },
      "ItemComparisonValue": {
        "additionalProperties": false,
        "properties": {
          "item_count": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Item Count",
            "type": "integer"
          },
          "redacted": {
            "title": "Redacted",
            "type": "boolean"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "value_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Value Sha256",
            "type": "string"
          }
        },
        "required": ["summary", "value_sha256", "item_count", "redacted"],
        "title": "ItemComparisonValue",
        "type": "object"
      },
      "ItemComparisonWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "comparison": {
            "$ref": "#/components/schemas/ItemComparisonRecord"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/ItemComparisonDecisionProjection"
            },
            "title": "Decisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.15.0",
            "default": "4.15.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["comparison", "decisions"],
        "title": "ItemComparisonWorkspaceResponse",
        "type": "object"
      },
      "ItemDIFReviewResponse": {
        "description": "Differential item functioning review result.",
        "properties": {
          "action_reason": {
            "title": "Action Reason",
            "type": "string"
          },
          "cohort_dimension": {
            "title": "Cohort Dimension",
            "type": "string"
          },
          "comparison_group": {
            "title": "Comparison Group",
            "type": "string"
          },
          "discipline_id": {
            "title": "Discipline Id",
            "type": "string"
          },
          "flagged": {
            "title": "Flagged",
            "type": "boolean"
          },
          "matched_gap": {
            "title": "Matched Gap",
            "type": "number"
          },
          "matched_sample_size": {
            "minimum": 0.0,
            "title": "Matched Sample Size",
            "type": "integer"
          },
          "question_id": {
            "title": "Question Id",
            "type": "string"
          },
          "question_prompt_preview": {
            "title": "Question Prompt Preview",
            "type": "string"
          },
          "recalibration_threshold": {
            "minimum": 0.0,
            "title": "Recalibration Threshold",
            "type": "number"
          },
          "recommended_action": {
            "enum": ["monitor", "recalibrate", "retire"],
            "title": "Recommended Action",
            "type": "string"
          },
          "reference_group": {
            "title": "Reference Group",
            "type": "string"
          },
          "retirement_threshold": {
            "minimum": 0.0,
            "title": "Retirement Threshold",
            "type": "number"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "discipline_id",
          "question_id",
          "question_prompt_preview",
          "cohort_dimension",
          "reference_group",
          "comparison_group",
          "matched_sample_size",
          "matched_gap",
          "recalibration_threshold",
          "retirement_threshold",
          "severity",
          "flagged",
          "recommended_action",
          "action_reason"
        ],
        "title": "ItemDIFReviewResponse",
        "type": "object"
      },
      "ItemDifficulty": {
        "enum": ["easy", "medium", "hard", "unknown"],
        "title": "ItemDifficulty",
        "type": "string"
      },
      "ItemDifficultyCheckRequest": {
        "additionalProperties": false,
        "properties": {
          "estimate_revision": {
            "minimum": 1.0,
            "title": "Estimate Revision",
            "type": "integer"
          },
          "estimate_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Revision Sha256",
            "type": "string"
          },
          "estimate_set_id": {
            "pattern": "^item-estimate-set-[a-f0-9]{40}$",
            "title": "Estimate Set Id",
            "type": "string"
          },
          "policy_id": {
            "pattern": "^difficulty-policy:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "schema_version": {
            "const": "5.9.0",
            "default": "5.9.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "estimate_set_id",
          "estimate_revision",
          "estimate_revision_sha256",
          "policy_id",
          "policy_version"
        ],
        "title": "ItemDifficultyCheckRequest",
        "type": "object"
      },
      "ItemDifficultyCheckResponse": {
        "additionalProperties": false,
        "properties": {
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemDifficultyComparison"
              },
              {
                "type": "null"
              }
            ]
          },
          "declared": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemDifficultyDeclaredSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "empirical": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemDifficultyEmpiricalSnapshot"
              },
              {
                "type": "null"
              }
            ]
          },
          "estimate_revision": {
            "minimum": 1.0,
            "title": "Estimate Revision",
            "type": "integer"
          },
          "estimate_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Revision Sha256",
            "type": "string"
          },
          "estimate_set_id": {
            "title": "Estimate Set Id",
            "type": "string"
          },
          "evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evaluation Sha256",
            "type": "string"
          },
          "latest_estimate_revision": {
            "minimum": 1.0,
            "title": "Latest Estimate Revision",
            "type": "integer"
          },
          "latest_estimate_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Latest Estimate Revision Sha256",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/ItemDifficultyComparisonPolicy"
          },
          "raw_incomparable_subtraction_performed": {
            "const": false,
            "default": false,
            "title": "Raw Incomparable Subtraction Performed",
            "type": "boolean"
          },
          "review_routing": {
            "$ref": "#/components/schemas/ItemDifficultyReviewRouting"
          },
          "schema_version": {
            "const": "5.9.0",
            "default": "5.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "verdict": {
            "$ref": "#/components/schemas/ItemDifficultyVerdict"
          }
        },
        "required": [
          "estimate_set_id",
          "estimate_revision",
          "estimate_revision_sha256",
          "latest_estimate_revision",
          "latest_estimate_revision_sha256",
          "policy",
          "declared",
          "empirical",
          "comparison",
          "verdict",
          "review_routing",
          "evaluation_sha256"
        ],
        "title": "ItemDifficultyCheckResponse",
        "type": "object"
      },
      "ItemDifficultyCommonRange": {
        "additionalProperties": false,
        "properties": {
          "expected_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Expected Basis Points",
            "type": "integer"
          },
          "lower_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Lower Basis Points",
            "type": "integer"
          },
          "upper_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Upper Basis Points",
            "type": "integer"
          }
        },
        "required": ["lower_basis_points", "expected_basis_points", "upper_basis_points"],
        "title": "ItemDifficultyCommonRange",
        "type": "object"
      },
      "ItemDifficultyComparison": {
        "additionalProperties": false,
        "properties": {
          "common_scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          },
          "declared": {
            "$ref": "#/components/schemas/ItemDifficultyCommonRange"
          },
          "declared_acceptance_lower_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Declared Acceptance Lower Basis Points",
            "type": "integer"
          },
          "declared_acceptance_upper_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Declared Acceptance Upper Basis Points",
            "type": "integer"
          },
          "empirical": {
            "$ref": "#/components/schemas/ItemDifficultyCommonRange"
          },
          "mapping_applications": {
            "items": {
              "$ref": "#/components/schemas/ItemDifficultyMappingApplication"
            },
            "maxItems": 2,
            "minItems": 2,
            "title": "Mapping Applications",
            "type": "array"
          },
          "material_gap_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Material Gap Basis Points",
            "type": "integer"
          },
          "raw_incomparable_subtraction_performed": {
            "const": false,
            "default": false,
            "title": "Raw Incomparable Subtraction Performed",
            "type": "boolean"
          },
          "signed_center_difference_basis_points": {
            "maximum": 10000.0,
            "minimum": -10000.0,
            "title": "Signed Center Difference Basis Points",
            "type": "integer"
          },
          "tolerance_basis_points": {
            "maximum": 5000.0,
            "minimum": 0.0,
            "title": "Tolerance Basis Points",
            "type": "integer"
          },
          "uncertainty_intersects_acceptance": {
            "title": "Uncertainty Intersects Acceptance",
            "type": "boolean"
          }
        },
        "required": [
          "common_scale",
          "declared",
          "empirical",
          "mapping_applications",
          "tolerance_basis_points",
          "declared_acceptance_lower_basis_points",
          "declared_acceptance_upper_basis_points",
          "signed_center_difference_basis_points",
          "uncertainty_intersects_acceptance",
          "material_gap_basis_points"
        ],
        "title": "ItemDifficultyComparison",
        "type": "object"
      },
      "ItemDifficultyComparisonPolicy": {
        "additionalProperties": false,
        "properties": {
          "common_scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          },
          "declared_source_kind": {
            "const": "author",
            "default": "author",
            "title": "Declared Source Kind",
            "type": "string"
          },
          "empirical_source_kind": {
            "const": "empirical_calibration",
            "default": "empirical_calibration",
            "title": "Empirical Source Kind",
            "type": "string"
          },
          "mappings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemDifficultyScaleMapping"
            },
            "maxItems": 64,
            "title": "Mappings",
            "type": "array"
          },
          "minimum_empirical_sample_size": {
            "maximum": 100000000.0,
            "minimum": 30.0,
            "title": "Minimum Empirical Sample Size",
            "type": "integer"
          },
          "policy_id": {
            "pattern": "^difficulty-policy:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "tolerance_basis_points": {
            "maximum": 5000.0,
            "minimum": 0.0,
            "title": "Tolerance Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "policy_id",
          "policy_version",
          "policy_sha256",
          "common_scale",
          "tolerance_basis_points",
          "minimum_empirical_sample_size"
        ],
        "title": "ItemDifficultyComparisonPolicy",
        "type": "object"
      },
      "ItemDifficultyDeclaredSnapshot": {
        "additionalProperties": false,
        "properties": {
          "band_label": {
            "enum": ["easy", "medium", "hard", "very_hard", "not_available"],
            "title": "Band Label",
            "type": "string"
          },
          "band_lower_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Band Lower Basis Points",
            "type": "integer"
          },
          "band_upper_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Band Upper Basis Points",
            "type": "integer"
          },
          "interval_method": {
            "title": "Interval Method",
            "type": "string"
          },
          "method_id": {
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "title": "Method Version",
            "type": "string"
          },
          "scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          },
          "source": {
            "$ref": "#/components/schemas/ItemDifficultySourceIdentity"
          },
          "target_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Target Basis Points",
            "type": "integer"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "source",
          "target_basis_points",
          "band_lower_basis_points",
          "band_upper_basis_points",
          "band_label",
          "scale",
          "method_id",
          "method_version",
          "method_sha256",
          "interval_method",
          "uncertainty"
        ],
        "title": "ItemDifficultyDeclaredSnapshot",
        "type": "object"
      },
      "ItemDifficultyEmpiricalSnapshot": {
        "additionalProperties": false,
        "properties": {
          "calibration_status": {
            "const": "ratified",
            "title": "Calibration Status",
            "type": "string"
          },
          "collection_ended_at": {
            "format": "date-time",
            "title": "Collection Ended At",
            "type": "string"
          },
          "collection_started_at": {
            "format": "date-time",
            "title": "Collection Started At",
            "type": "string"
          },
          "evidence_id": {
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_revision": {
            "title": "Evidence Revision",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "method_id": {
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "title": "Method Version",
            "type": "string"
          },
          "population": {
            "title": "Population",
            "type": "string"
          },
          "sample_id": {
            "title": "Sample Id",
            "type": "string"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "sample_size": {
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Sample Size",
            "type": "integer"
          },
          "sample_version": {
            "title": "Sample Version",
            "type": "string"
          },
          "scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          },
          "source": {
            "$ref": "#/components/schemas/ItemDifficultySourceIdentity"
          },
          "statistic_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Statistic Basis Points",
            "type": "integer"
          },
          "uncertainty_lower_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Uncertainty Lower Basis Points",
            "type": "integer"
          },
          "uncertainty_method": {
            "title": "Uncertainty Method",
            "type": "string"
          },
          "uncertainty_upper_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Uncertainty Upper Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "source",
          "evidence_id",
          "evidence_revision",
          "evidence_sha256",
          "population",
          "sample_id",
          "sample_version",
          "sample_sha256",
          "sample_size",
          "method_id",
          "method_version",
          "method_sha256",
          "statistic_basis_points",
          "uncertainty_lower_basis_points",
          "uncertainty_upper_basis_points",
          "uncertainty_method",
          "scale",
          "calibration_status",
          "collection_started_at",
          "collection_ended_at"
        ],
        "title": "ItemDifficultyEmpiricalSnapshot",
        "type": "object"
      },
      "ItemDifficultyMappingApplication": {
        "additionalProperties": false,
        "properties": {
          "common_scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          },
          "mapping_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mapping Id"
          },
          "mapping_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mapping Sha256"
          },
          "mapping_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mapping Version"
          },
          "mode": {
            "enum": ["ratified_common_scale", "ratified_explicit_mapping"],
            "title": "Mode",
            "type": "string"
          },
          "side": {
            "enum": ["declared", "empirical"],
            "title": "Side",
            "type": "string"
          },
          "source_scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          }
        },
        "required": ["side", "mode", "source_scale", "common_scale"],
        "title": "ItemDifficultyMappingApplication",
        "type": "object"
      },
      "ItemDifficultyReviewDestination": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": ["item_review", "blueprint_review"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "reason_code": {
            "const": "declared_empirical_difficulty_mismatch",
            "title": "Reason Code",
            "type": "string"
          },
          "route": {
            "pattern": "^/create/[A-Za-z0-9/?#=&._:-]+$",
            "title": "Route",
            "type": "string"
          }
        },
        "required": ["kind", "label", "route", "reason_code"],
        "title": "ItemDifficultyReviewDestination",
        "type": "object"
      },
      "ItemDifficultyReviewRouting": {
        "additionalProperties": false,
        "properties": {
          "declared_value_overwritten": {
            "const": false,
            "default": false,
            "title": "Declared Value Overwritten",
            "type": "boolean"
          },
          "destinations": {
            "items": {
              "$ref": "#/components/schemas/ItemDifficultyReviewDestination"
            },
            "maxItems": 2,
            "title": "Destinations",
            "type": "array"
          },
          "empirical_value_overwritten": {
            "const": false,
            "default": false,
            "title": "Empirical Value Overwritten",
            "type": "boolean"
          },
          "evaluation_only": {
            "const": true,
            "default": true,
            "title": "Evaluation Only",
            "type": "boolean"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          }
        },
        "required": ["required", "destinations"],
        "title": "ItemDifficultyReviewRouting",
        "type": "object"
      },
      "ItemDifficultyScaleMapping": {
        "additionalProperties": false,
        "properties": {
          "common_scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          },
          "knots": {
            "items": {
              "$ref": "#/components/schemas/ItemDifficultyScaleMappingKnot"
            },
            "maxItems": 32,
            "minItems": 2,
            "title": "Knots",
            "type": "array"
          },
          "mapping_id": {
            "pattern": "^difficulty-mapping:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Mapping Id",
            "type": "string"
          },
          "mapping_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Mapping Sha256",
            "type": "string"
          },
          "mapping_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Mapping Version",
            "type": "string"
          },
          "method": {
            "const": "piecewise_linear",
            "default": "piecewise_linear",
            "title": "Method",
            "type": "string"
          },
          "ratification_status": {
            "const": "ratified",
            "default": "ratified",
            "title": "Ratification Status",
            "type": "string"
          },
          "ratified_by": {
            "items": {
              "enum": ["assessment-governance", "psychometrics"],
              "type": "string"
            },
            "maxItems": 2,
            "minItems": 2,
            "title": "Ratified By",
            "type": "array"
          },
          "source_scale": {
            "$ref": "#/components/schemas/ItemDifficultyScaleRef"
          }
        },
        "required": [
          "mapping_id",
          "mapping_version",
          "mapping_sha256",
          "source_scale",
          "common_scale",
          "knots",
          "ratified_by"
        ],
        "title": "ItemDifficultyScaleMapping",
        "type": "object"
      },
      "ItemDifficultyScaleMappingKnot": {
        "additionalProperties": false,
        "properties": {
          "common_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Common Basis Points",
            "type": "integer"
          },
          "source_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Source Basis Points",
            "type": "integer"
          }
        },
        "required": ["source_basis_points", "common_basis_points"],
        "title": "ItemDifficultyScaleMappingKnot",
        "type": "object"
      },
      "ItemDifficultyScaleRef": {
        "additionalProperties": false,
        "properties": {
          "orientation": {
            "const": "higher_is_harder",
            "default": "higher_is_harder",
            "title": "Orientation",
            "type": "string"
          },
          "scale_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scale Id",
            "type": "string"
          },
          "scale_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Scale Version",
            "type": "string"
          },
          "unit": {
            "const": "basis_point",
            "default": "basis_point",
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["scale_id", "scale_version"],
        "title": "ItemDifficultyScaleRef",
        "type": "object"
      },
      "ItemDifficultySourceIdentity": {
        "additionalProperties": false,
        "properties": {
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "estimate_id": {
            "title": "Estimate Id",
            "type": "string"
          },
          "estimate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Sha256",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "lifecycle": {
            "enum": ["current", "superseded", "stale"],
            "title": "Lifecycle",
            "type": "string"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "source_version": {
            "title": "Source Version",
            "type": "string"
          }
        },
        "required": [
          "estimate_id",
          "estimate_sha256",
          "source_id",
          "source_version",
          "lifecycle",
          "item_revision_sha256",
          "context_revision_sha256"
        ],
        "title": "ItemDifficultySourceIdentity",
        "type": "object"
      },
      "ItemDifficultyVerdict": {
        "additionalProperties": false,
        "properties": {
          "direction": {
            "enum": ["empirical_easier", "empirical_harder", "none", "not_available"],
            "title": "Direction",
            "type": "string"
          },
          "magnitude_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Magnitude Basis Points"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "state": {
            "enum": [
              "aligned",
              "material_mismatch",
              "insufficient",
              "stale",
              "not_applicable",
              "conflicting"
            ],
            "title": "State",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["state", "direction", "reason_codes", "statement"],
        "title": "ItemDifficultyVerdict",
        "type": "object"
      },
      "ItemDraftActorProvenance": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "ItemDraftActorProvenance",
        "type": "object"
      },
      "ItemDraftAiProvenance": {
        "additionalProperties": false,
        "properties": {
          "activity_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Activity Id",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "model": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "provider": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          }
        },
        "required": ["provider", "model", "activity_id", "generated_at", "receipt_sha256"],
        "title": "ItemDraftAiProvenance",
        "type": "object"
      },
      "ItemDraftCaptureRequest": {
        "additionalProperties": false,
        "description": "A zero-form capture: only the durable local identity is required.",
        "properties": {
          "ai_provenance": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemDraftAiProvenance"
            },
            "maxItems": 100,
            "title": "Ai Provenance",
            "type": "array"
          },
          "context": {
            "anyOf": [
              {
                "maxLength": 100000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          },
          "idea": {
            "anyOf": [
              {
                "maxLength": 100000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Idea"
          },
          "import_provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemDraftImportProvenance"
              },
              {
                "type": "null"
              }
            ]
          },
          "item_kind_hint": {
            "anyOf": [
              {
                "enum": [
                  "assessment-kind:single-choice",
                  "assessment-kind:multiple-choice",
                  "assessment-kind:ordering",
                  "assessment-kind:matching",
                  "assessment-kind:hotspot",
                  "assessment-kind:constructed-response",
                  "assessment-kind:essay",
                  "assessment-kind:math",
                  "assessment-kind:code",
                  "assessment-kind:media",
                  "assessment-kind:simulation",
                  "assessment-kind:interaction",
                  "assessment-kind:portfolio",
                  "assessment-kind:oral-performance",
                  "assessment-kind:performance"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Kind Hint"
          },
          "local_draft_id": {
            "pattern": "^local-item-draft:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Local Draft Id",
            "type": "string"
          },
          "objective_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Objective Ids",
            "type": "array"
          },
          "prompt": {
            "anyOf": [
              {
                "maxLength": 100000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prompt"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          }
        },
        "required": ["local_draft_id"],
        "title": "ItemDraftCaptureRequest",
        "type": "object"
      },
      "ItemDraftCompletionCheck": {
        "additionalProperties": false,
        "properties": {
          "field": {
            "enum": [
              "stem",
              "response",
              "key",
              "scoring",
              "rationale",
              "objective",
              "accessibility",
              "source",
              "review",
              "gates"
            ],
            "title": "Field",
            "type": "string"
          },
          "guidance": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Guidance",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "state": {
            "enum": ["complete", "missing", "blocked", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["field", "state", "required", "guidance"],
        "title": "ItemDraftCompletionCheck",
        "type": "object"
      },
      "ItemDraftImportProvenance": {
        "additionalProperties": false,
        "properties": {
          "external_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "External Id",
            "type": "string"
          },
          "imported_at": {
            "format": "date-time",
            "title": "Imported At",
            "type": "string"
          },
          "provider": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          }
        },
        "required": ["provider", "external_id", "imported_at", "receipt_sha256"],
        "title": "ItemDraftImportProvenance",
        "type": "object"
      },
      "ItemDraftProvenance": {
        "additionalProperties": false,
        "properties": {
          "ai_provenance": {
            "items": {
              "$ref": "#/components/schemas/ItemDraftAiProvenance"
            },
            "title": "Ai Provenance",
            "type": "array"
          },
          "author": {
            "$ref": "#/components/schemas/ItemDraftActorProvenance"
          },
          "import_provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemDraftImportProvenance"
              },
              {
                "type": "null"
              }
            ]
          },
          "original_capture_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Original Capture Sha256",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "title": "Source References",
            "type": "array"
          }
        },
        "required": [
          "author",
          "source_references",
          "import_provenance",
          "ai_provenance",
          "original_capture_sha256"
        ],
        "title": "ItemDraftProvenance",
        "type": "object"
      },
      "ItemDraftResponse": {
        "additionalProperties": false,
        "properties": {
          "author": {
            "$ref": "#/components/schemas/ItemDraftActorProvenance"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current": {
            "$ref": "#/components/schemas/ItemDraftRevisionResponse"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "local_draft_id": {
            "pattern": "^local-item-draft:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Local Draft Id",
            "type": "string"
          },
          "original_capture": {
            "$ref": "#/components/schemas/ItemDraftCaptureRequest"
          },
          "original_capture_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Original Capture Sha256",
            "type": "string"
          },
          "provenance": {
            "$ref": "#/components/schemas/ItemDraftProvenance"
          },
          "revision_history": {
            "items": {
              "$ref": "#/components/schemas/ItemDraftRevisionResponse"
            },
            "title": "Revision History",
            "type": "array"
          },
          "schema_version": {
            "const": "4.2.0",
            "default": "4.2.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "local_draft_id",
          "tenant_id",
          "author",
          "original_capture",
          "original_capture_sha256",
          "provenance",
          "current",
          "revision_history",
          "created_at"
        ],
        "title": "ItemDraftResponse",
        "type": "object"
      },
      "ItemDraftRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/ItemDraftActorProvenance"
          },
          "completion_checklist": {
            "items": {
              "$ref": "#/components/schemas/ItemDraftCompletionCheck"
            },
            "title": "Completion Checklist",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "edit_reason": {
            "title": "Edit Reason",
            "type": "string"
          },
          "event": {
            "enum": ["capture", "structured_edit", "validation"],
            "title": "Event",
            "type": "string"
          },
          "item_kind_hint": {
            "anyOf": [
              {
                "enum": [
                  "assessment-kind:single-choice",
                  "assessment-kind:multiple-choice",
                  "assessment-kind:ordering",
                  "assessment-kind:matching",
                  "assessment-kind:hotspot",
                  "assessment-kind:constructed-response",
                  "assessment-kind:essay",
                  "assessment-kind:math",
                  "assessment-kind:code",
                  "assessment-kind:media",
                  "assessment-kind:simulation",
                  "assessment-kind:interaction",
                  "assessment-kind:portfolio",
                  "assessment-kind:oral-performance",
                  "assessment-kind:performance"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Kind Hint"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "routing": {
            "$ref": "#/components/schemas/ItemDraftRouting"
          },
          "status": {
            "const": "incomplete",
            "default": "incomplete",
            "title": "Status",
            "type": "string"
          },
          "structured": {
            "$ref": "#/components/schemas/ItemDraftStructuredState"
          },
          "validation_results": {
            "items": {
              "$ref": "#/components/schemas/ItemDraftValidationResult"
            },
            "title": "Validation Results",
            "type": "array"
          },
          "validation_state": {
            "enum": ["unvalidated", "invalid", "valid"],
            "title": "Validation State",
            "type": "string"
          }
        },
        "required": [
          "revision",
          "event",
          "actor",
          "item_kind_hint",
          "structured",
          "routing",
          "validation_state",
          "validation_results",
          "completion_checklist",
          "edit_reason",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemDraftRevisionResponse",
        "type": "object"
      },
      "ItemDraftRouting": {
        "additionalProperties": false,
        "properties": {
          "family": {
            "enum": [
              "unrouted",
              "selected-response",
              "written-response",
              "executable-response",
              "interactive-response",
              "performance-evidence"
            ],
            "title": "Family",
            "type": "string"
          },
          "guidance": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Guidance",
            "type": "string"
          },
          "inference_used": {
            "const": false,
            "default": false,
            "title": "Inference Used",
            "type": "boolean"
          },
          "kind_id": {
            "anyOf": [
              {
                "enum": [
                  "assessment-kind:single-choice",
                  "assessment-kind:multiple-choice",
                  "assessment-kind:ordering",
                  "assessment-kind:matching",
                  "assessment-kind:hotspot",
                  "assessment-kind:constructed-response",
                  "assessment-kind:essay",
                  "assessment-kind:math",
                  "assessment-kind:code",
                  "assessment-kind:media",
                  "assessment-kind:simulation",
                  "assessment-kind:interaction",
                  "assessment-kind:portfolio",
                  "assessment-kind:oral-performance",
                  "assessment-kind:performance"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind Id"
          },
          "protected_key_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Protected Key Required"
          },
          "required_sections": {
            "items": {
              "enum": [
                "stem",
                "response",
                "key",
                "scoring",
                "rationale",
                "objective",
                "accessibility",
                "source",
                "review",
                "gates"
              ],
              "type": "string"
            },
            "title": "Required Sections",
            "type": "array"
          },
          "route": {
            "pattern": "^item-draft:[a-z-]+$",
            "title": "Route",
            "type": "string"
          }
        },
        "required": [
          "kind_id",
          "family",
          "route",
          "required_sections",
          "protected_key_required",
          "guidance"
        ],
        "title": "ItemDraftRouting",
        "type": "object"
      },
      "ItemDraftStructuredEditRequest": {
        "additionalProperties": false,
        "properties": {
          "edit_reason": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Edit Reason",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "item_kind_hint": {
            "anyOf": [
              {
                "enum": [
                  "assessment-kind:single-choice",
                  "assessment-kind:multiple-choice",
                  "assessment-kind:ordering",
                  "assessment-kind:matching",
                  "assessment-kind:hotspot",
                  "assessment-kind:constructed-response",
                  "assessment-kind:essay",
                  "assessment-kind:math",
                  "assessment-kind:code",
                  "assessment-kind:media",
                  "assessment-kind:simulation",
                  "assessment-kind:interaction",
                  "assessment-kind:portfolio",
                  "assessment-kind:oral-performance",
                  "assessment-kind:performance"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Kind Hint"
          },
          "structured": {
            "$ref": "#/components/schemas/ItemDraftStructuredState"
          }
        },
        "required": [
          "idempotency_key",
          "expected_revision",
          "expected_revision_sha256",
          "structured",
          "edit_reason"
        ],
        "title": "ItemDraftStructuredEditRequest",
        "type": "object"
      },
      "ItemDraftStructuredState": {
        "additionalProperties": false,
        "description": "Answer-safe structured fields shared by every item-kind workbench.",
        "properties": {
          "accessibility_notes": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accessibility Notes"
          },
          "gate_evidence_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Gate Evidence References",
            "type": "array"
          },
          "objective_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Objective Ids",
            "type": "array"
          },
          "response_specification": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Specification"
          },
          "review_notes": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Notes"
          },
          "scoring_specification": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scoring Specification"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "stem": {
            "anyOf": [
              {
                "maxLength": 100000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stem"
          }
        },
        "title": "ItemDraftStructuredState",
        "type": "object"
      },
      "ItemDraftValidationRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_revision", "expected_revision_sha256"],
        "title": "ItemDraftValidationRequest",
        "type": "object"
      },
      "ItemDraftValidationResult": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "pattern": "^item-draft\\.[a-z0-9-]+$",
            "title": "Code",
            "type": "string"
          },
          "field": {
            "anyOf": [
              {
                "enum": [
                  "stem",
                  "response",
                  "key",
                  "scoring",
                  "rationale",
                  "objective",
                  "accessibility",
                  "source",
                  "review",
                  "gates"
                ],
                "type": "string"
              },
              {
                "const": "kind",
                "type": "string"
              }
            ],
            "title": "Field"
          },
          "message": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "severity": {
            "enum": ["error", "warning"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "field", "severity", "message"],
        "title": "ItemDraftValidationResult",
        "type": "object"
      },
      "ItemEstimateAuditEvent": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "audit_id": {
            "format": "uuid",
            "title": "Audit Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Revision Sha256",
            "type": "string"
          },
          "estimate_set_id": {
            "title": "Estimate Set Id",
            "type": "string"
          },
          "event_type": {
            "enum": ["created", "recomputed", "source_added", "calibrated"],
            "title": "Event Type",
            "type": "string"
          },
          "manual_review_required": {
            "title": "Manual Review Required",
            "type": "boolean"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "source_kinds": {
            "items": {
              "enum": ["author", "rule_model", "expert_review", "pilot", "empirical_calibration"],
              "type": "string"
            },
            "title": "Source Kinds",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "trigger": {
            "enum": [
              "initial",
              "human_change",
              "item_revision",
              "context_revision",
              "model_revision",
              "data_revision"
            ],
            "title": "Trigger",
            "type": "string"
          }
        },
        "required": [
          "audit_id",
          "tenant_id",
          "estimate_set_id",
          "revision",
          "event_type",
          "trigger",
          "actor_id",
          "actor_role",
          "request_sha256",
          "previous_revision_sha256",
          "current_revision_sha256",
          "source_kinds",
          "manual_review_required",
          "created_at"
        ],
        "title": "ItemEstimateAuditEvent",
        "type": "object"
      },
      "ItemEstimateAuditResponse": {
        "additionalProperties": false,
        "properties": {
          "estimate_set_id": {
            "title": "Estimate Set Id",
            "type": "string"
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateAuditEvent"
            },
            "title": "Events",
            "type": "array"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["estimate_set_id", "events"],
        "title": "ItemEstimateAuditResponse",
        "type": "object"
      },
      "ItemEstimateCalibrationEvidence": {
        "additionalProperties": false,
        "properties": {
          "collection_ended_at": {
            "format": "date-time",
            "title": "Collection Ended At",
            "type": "string"
          },
          "collection_started_at": {
            "format": "date-time",
            "title": "Collection Started At",
            "type": "string"
          },
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "data_snapshot_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Data Snapshot Id",
            "type": "string"
          },
          "data_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Data Snapshot Sha256",
            "type": "string"
          },
          "data_snapshot_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Data Snapshot Version",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^calibration-evidence:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_revision": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Evidence Revision",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "population": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Population",
            "type": "string"
          },
          "promotion_receipt": {
            "$ref": "#/components/schemas/CalibrationPromotionReceipt"
          },
          "ratification_status": {
            "const": "ratified",
            "default": "ratified",
            "title": "Ratification Status",
            "type": "string"
          },
          "ratifiers": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateRatifier"
            },
            "maxItems": 16,
            "minItems": 2,
            "title": "Ratifiers",
            "type": "array"
          },
          "sample_size": {
            "maximum": 100000000.0,
            "minimum": 30.0,
            "title": "Sample Size",
            "type": "integer"
          },
          "uncertainty_method": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Uncertainty Method",
            "type": "string"
          }
        },
        "required": [
          "evidence_id",
          "evidence_revision",
          "evidence_sha256",
          "item_revision_sha256",
          "context_revision_sha256",
          "data_snapshot_id",
          "data_snapshot_version",
          "data_snapshot_sha256",
          "sample_size",
          "population",
          "method_id",
          "method_version",
          "method_sha256",
          "uncertainty_method",
          "promotion_receipt",
          "collection_started_at",
          "collection_ended_at",
          "ratifiers"
        ],
        "title": "ItemEstimateCalibrationEvidence",
        "type": "object"
      },
      "ItemEstimateCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "estimate_sets": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateRevisionResponse"
            },
            "title": "Estimate Sets",
            "type": "array"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["estimate_sets"],
        "title": "ItemEstimateCatalogResponse",
        "type": "object"
      },
      "ItemEstimateCognitiveLevel": {
        "additionalProperties": false,
        "properties": {
          "level_id": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Level Id",
            "type": "string"
          },
          "measurable_verb": {
            "maxLength": 100,
            "minLength": 2,
            "pattern": "^[A-Za-z][A-Za-z -]*$",
            "title": "Measurable Verb",
            "type": "string"
          },
          "ordinal": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "taxonomy_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Taxonomy Id",
            "type": "string"
          },
          "taxonomy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Taxonomy Version",
            "type": "string"
          }
        },
        "required": ["taxonomy_id", "taxonomy_version", "level_id", "ordinal", "measurable_verb"],
        "title": "ItemEstimateCognitiveLevel",
        "type": "object"
      },
      "ItemEstimateConfidence": {
        "additionalProperties": false,
        "properties": {
          "interval_method": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Interval Method",
            "type": "string"
          },
          "level": {
            "enum": ["high", "medium", "low", "not_available"],
            "title": "Level",
            "type": "string"
          },
          "score_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Score Basis Points",
            "type": "integer"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": ["level", "score_basis_points", "uncertainty", "interval_method"],
        "title": "ItemEstimateConfidence",
        "type": "object"
      },
      "ItemEstimateContextCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "contexts": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateContextSnapshot"
            },
            "title": "Contexts",
            "type": "array"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "course_id", "contexts"],
        "title": "ItemEstimateContextCatalogResponse",
        "type": "object"
      },
      "ItemEstimateContextSnapshot": {
        "additionalProperties": false,
        "description": "One authorized planning-ready course context revision.",
        "properties": {
          "authorized": {
            "title": "Authorized",
            "type": "boolean"
          },
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 4000,
            "title": "Concept Ids",
            "type": "array"
          },
          "context_id": {
            "pattern": "^currmap_[a-f0-9]{40}$",
            "title": "Context Id",
            "type": "string"
          },
          "context_revision_id": {
            "pattern": "^currmaprev_[a-f0-9]{40}$",
            "title": "Context Revision Id",
            "type": "string"
          },
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "lifecycle_state": {
            "enum": ["current", "superseded", "archived"],
            "title": "Lifecycle State",
            "type": "string"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "title": "Objective Ids",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "course_id",
          "context_id",
          "context_revision_id",
          "context_revision_sha256",
          "title",
          "locales",
          "lifecycle_state",
          "authorized",
          "locator"
        ],
        "title": "ItemEstimateContextSnapshot",
        "type": "object"
      },
      "ItemEstimateCorpusProvenance": {
        "additionalProperties": false,
        "properties": {
          "corpus_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corpus Id"
          },
          "corpus_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corpus Sha256"
          },
          "corpus_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Corpus Version"
          },
          "sample_size": {
            "anyOf": [
              {
                "maximum": 100000000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sample Size"
          },
          "use_status": {
            "enum": ["not_used", "reference_only", "fit", "evaluation", "empirical_sample"],
            "title": "Use Status",
            "type": "string"
          }
        },
        "required": ["use_status"],
        "title": "ItemEstimateCorpusProvenance",
        "type": "object"
      },
      "ItemEstimateDifficulty": {
        "additionalProperties": false,
        "properties": {
          "expected_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Expected Basis Points",
            "type": "integer"
          },
          "label": {
            "enum": ["easy", "medium", "hard", "very_hard", "not_available"],
            "title": "Label",
            "type": "string"
          },
          "lower_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Lower Basis Points",
            "type": "integer"
          },
          "scale_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scale Id",
            "type": "string"
          },
          "scale_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Scale Version",
            "type": "string"
          },
          "upper_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Upper Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "lower_basis_points",
          "expected_basis_points",
          "upper_basis_points",
          "label",
          "scale_id",
          "scale_version"
        ],
        "title": "ItemEstimateDifficulty",
        "type": "object"
      },
      "ItemEstimateDisagreementSignal": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": ["difficulty", "cognitive", "response_time"],
            "title": "Dimension",
            "type": "string"
          },
          "estimate_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "minItems": 2,
            "title": "Estimate Ids",
            "type": "array"
          },
          "severity": {
            "enum": ["note", "review"],
            "title": "Severity",
            "type": "string"
          },
          "signal_id": {
            "pattern": "^estimate-disagreement:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["signal_id", "dimension", "severity", "estimate_ids", "statement"],
        "title": "ItemEstimateDisagreementSignal",
        "type": "object"
      },
      "ItemEstimateDisagreementSummary": {
        "additionalProperties": false,
        "properties": {
          "current_source_count": {
            "maximum": 128.0,
            "minimum": 1.0,
            "title": "Current Source Count",
            "type": "integer"
          },
          "manual_review_required": {
            "title": "Manual Review Required",
            "type": "boolean"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateDisagreementSignal"
            },
            "title": "Signals",
            "type": "array"
          }
        },
        "required": ["signals", "manual_review_required", "current_source_count"],
        "title": "ItemEstimateDisagreementSummary",
        "type": "object"
      },
      "ItemEstimateFeatureEvidence": {
        "additionalProperties": false,
        "properties": {
          "feature_id": {
            "pattern": "^estimate-feature:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Feature Id",
            "type": "string"
          },
          "source_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Locator",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "value": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          },
          "value_kind": {
            "enum": ["count", "ratio", "category", "boolean", "hash"],
            "title": "Value Kind",
            "type": "string"
          }
        },
        "required": ["feature_id", "value", "value_kind", "source_locator", "source_sha256"],
        "title": "ItemEstimateFeatureEvidence",
        "type": "object"
      },
      "ItemEstimateHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "estimate_set_id": {
            "title": "Estimate Set Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["estimate_set_id", "revisions"],
        "title": "ItemEstimateHistoryResponse",
        "type": "object"
      },
      "ItemEstimateHumanChange": {
        "additionalProperties": false,
        "properties": {
          "baseline_estimate_id": {
            "pattern": "^item-estimate:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Baseline Estimate Id",
            "type": "string"
          },
          "baseline_estimate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Baseline Estimate Sha256",
            "type": "string"
          },
          "changed_fields": {
            "items": {
              "enum": ["difficulty", "cognitive", "response_time", "confidence", "provenance"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Changed Fields",
            "type": "array"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "baseline_estimate_id",
          "baseline_estimate_sha256",
          "changed_fields",
          "rationale"
        ],
        "title": "ItemEstimateHumanChange",
        "type": "object"
      },
      "ItemEstimatePilotEvidence": {
        "additionalProperties": false,
        "properties": {
          "collection_ended_at": {
            "format": "date-time",
            "title": "Collection Ended At",
            "type": "string"
          },
          "collection_started_at": {
            "format": "date-time",
            "title": "Collection Started At",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "population": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Population",
            "type": "string"
          },
          "ratified": {
            "const": false,
            "default": false,
            "title": "Ratified",
            "type": "boolean"
          },
          "sample_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sample Id",
            "type": "string"
          },
          "sample_revision": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Sample Revision",
            "type": "string"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "sample_size": {
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Sample Size",
            "type": "integer"
          },
          "uncertainty_method": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Uncertainty Method",
            "type": "string"
          }
        },
        "required": [
          "sample_id",
          "sample_revision",
          "sample_sha256",
          "sample_size",
          "population",
          "method_id",
          "method_version",
          "uncertainty_method",
          "collection_started_at",
          "collection_ended_at"
        ],
        "title": "ItemEstimatePilotEvidence",
        "type": "object"
      },
      "ItemEstimatePredictionRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/ItemEstimateContextSnapshot"
          },
          "item": {
            "$ref": "#/components/schemas/ExactLinkedItemRevision"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["item", "context"],
        "title": "ItemEstimatePredictionRequest",
        "type": "object"
      },
      "ItemEstimatePredictionResponse": {
        "additionalProperties": false,
        "properties": {
          "calibrated": {
            "const": false,
            "default": false,
            "title": "Calibrated",
            "type": "boolean"
          },
          "context": {
            "$ref": "#/components/schemas/ItemEstimateContextSnapshot"
          },
          "estimate": {
            "$ref": "#/components/schemas/ItemEstimateSource"
          },
          "item": {
            "$ref": "#/components/schemas/ExactLinkedItemRevision"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["item", "context", "estimate"],
        "title": "ItemEstimatePredictionResponse",
        "type": "object"
      },
      "ItemEstimateProvenance": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Applicability",
            "type": "array"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Assumptions",
            "type": "array"
          },
          "config_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Config Id",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "corpus": {
            "$ref": "#/components/schemas/ItemEstimateCorpusProvenance"
          },
          "features": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateFeatureEvidence"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Features",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "model_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model Id",
            "type": "string"
          },
          "model_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Model Sha256",
            "type": "string"
          },
          "model_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Model Version",
            "type": "string"
          }
        },
        "required": [
          "method_id",
          "method_version",
          "method_sha256",
          "model_id",
          "model_version",
          "model_sha256",
          "config_id",
          "config_version",
          "config_sha256",
          "corpus",
          "features",
          "assumptions",
          "applicability",
          "limitations"
        ],
        "title": "ItemEstimateProvenance",
        "type": "object"
      },
      "ItemEstimateRatifier": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin", "psychometrician"],
            "title": "Actor Role",
            "type": "string"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decision": {
            "const": "ratify",
            "default": "ratify",
            "title": "Decision",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role", "decided_at", "evidence_sha256"],
        "title": "ItemEstimateRatifier",
        "type": "object"
      },
      "ItemEstimateRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/ItemEstimateContextSnapshot"
          },
          "estimate_set_id": {
            "anyOf": [
              {
                "pattern": "^item-estimate-set-[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimate Set Id"
          },
          "expected_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision"
          },
          "expected_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExactLinkedItemRevision"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "submission": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimateSubmission"
              },
              {
                "type": "null"
              }
            ]
          },
          "trigger": {
            "enum": [
              "initial",
              "human_change",
              "item_revision",
              "context_revision",
              "model_revision",
              "data_revision"
            ],
            "title": "Trigger",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "trigger", "reason", "item", "context"],
        "title": "ItemEstimateRevisionRequest",
        "type": "object"
      },
      "ItemEstimateRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/ItemEstimateContextSnapshot"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "disagreement": {
            "$ref": "#/components/schemas/ItemEstimateDisagreementSummary"
          },
          "estimate_set_id": {
            "title": "Estimate Set Id",
            "type": "string"
          },
          "estimates": {
            "items": {
              "$ref": "#/components/schemas/ItemEstimateSource"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Estimates",
            "type": "array"
          },
          "item": {
            "$ref": "#/components/schemas/ExactLinkedItemRevision"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.10.0",
            "default": "4.10.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "trigger": {
            "enum": [
              "initial",
              "human_change",
              "item_revision",
              "context_revision",
              "model_revision",
              "data_revision"
            ],
            "title": "Trigger",
            "type": "string"
          }
        },
        "required": [
          "estimate_set_id",
          "tenant_id",
          "revision",
          "item",
          "context",
          "trigger",
          "reason",
          "estimates",
          "disagreement",
          "actor_id",
          "actor_role",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemEstimateRevisionResponse",
        "type": "object"
      },
      "ItemEstimateSource": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin", "system"],
            "title": "Actor Role",
            "type": "string"
          },
          "calibration_evidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimateCalibrationEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "context_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Revision Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "estimate_id": {
            "pattern": "^item-estimate:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Estimate Id",
            "type": "string"
          },
          "estimate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Sha256",
            "type": "string"
          },
          "human_change": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimateHumanChange"
              },
              {
                "type": "null"
              }
            ]
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "lifecycle": {
            "enum": ["current", "superseded", "stale"],
            "title": "Lifecycle",
            "type": "string"
          },
          "pilot_evidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimatePilotEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "provenance": {
            "$ref": "#/components/schemas/ItemEstimateProvenance"
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_kind": {
            "enum": ["author", "rule_model", "expert_review", "pilot", "empirical_calibration"],
            "title": "Source Kind",
            "type": "string"
          },
          "source_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Source Version",
            "type": "string"
          },
          "status": {
            "enum": ["authored", "predicted", "reviewed", "pilot_observed", "calibrated"],
            "title": "Status",
            "type": "string"
          },
          "values": {
            "$ref": "#/components/schemas/ItemEstimateValues"
          }
        },
        "required": [
          "estimate_id",
          "source_kind",
          "status",
          "lifecycle",
          "source_id",
          "source_version",
          "item_revision_sha256",
          "context_revision_sha256",
          "values",
          "provenance",
          "actor_id",
          "actor_role",
          "estimate_sha256",
          "created_at"
        ],
        "title": "ItemEstimateSource",
        "type": "object"
      },
      "ItemEstimateSubmission": {
        "additionalProperties": false,
        "properties": {
          "calibration_evidence_id": {
            "anyOf": [
              {
                "maxLength": 180,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Calibration Evidence Id"
          },
          "human_change": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimateHumanChange"
              },
              {
                "type": "null"
              }
            ]
          },
          "pilot_evidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimatePilotEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimateProvenance"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_kind": {
            "enum": ["author", "expert_review", "pilot", "empirical_calibration"],
            "title": "Source Kind",
            "type": "string"
          },
          "source_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Source Version",
            "type": "string"
          },
          "values": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemEstimateValues"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["source_kind", "source_id", "source_version"],
        "title": "ItemEstimateSubmission",
        "type": "object"
      },
      "ItemEstimateTimeRange": {
        "additionalProperties": false,
        "properties": {
          "expected_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Expected Seconds",
            "type": "integer"
          },
          "lower_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Lower Seconds",
            "type": "integer"
          },
          "unit": {
            "const": "second",
            "default": "second",
            "title": "Unit",
            "type": "string"
          },
          "upper_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Upper Seconds",
            "type": "integer"
          }
        },
        "required": ["lower_seconds", "expected_seconds", "upper_seconds"],
        "title": "ItemEstimateTimeRange",
        "type": "object"
      },
      "ItemEstimateValues": {
        "additionalProperties": false,
        "properties": {
          "cognitive": {
            "$ref": "#/components/schemas/ItemEstimateCognitiveLevel"
          },
          "confidence": {
            "$ref": "#/components/schemas/ItemEstimateConfidence"
          },
          "difficulty": {
            "$ref": "#/components/schemas/ItemEstimateDifficulty"
          },
          "response_time": {
            "$ref": "#/components/schemas/ItemEstimateTimeRange"
          }
        },
        "required": ["difficulty", "cognitive", "response_time", "confidence"],
        "title": "ItemEstimateValues",
        "type": "object"
      },
      "ItemGateState": {
        "enum": ["unknown", "pending", "passed", "blocked", "stale"],
        "title": "ItemGateState",
        "type": "string"
      },
      "ItemImportAccessibility": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "default": [],
            "items": {
              "enum": [
                "keyboard",
                "screen_reader",
                "captions",
                "transcript",
                "audio_description",
                "high_contrast",
                "reduced_motion"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "title": "Accommodations",
            "type": "array"
          },
          "keyboard_operable": {
            "title": "Keyboard Operable",
            "type": "boolean"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "screen_reader_text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Screen Reader Text",
            "type": "string"
          }
        },
        "required": ["locale", "screen_reader_text", "keyboard_operable"],
        "title": "ItemImportAccessibility",
        "type": "object"
      },
      "ItemImportAssetReconciliation": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "diagnostic_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Diagnostic Ids",
            "type": "array"
          },
          "disposition": {
            "enum": ["resolved", "unreferenced", "rejected"],
            "title": "Disposition",
            "type": "string"
          },
          "path": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          },
          "referenced_by": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Referenced By",
            "type": "array"
          }
        },
        "required": ["path", "content_sha256", "disposition"],
        "title": "ItemImportAssetReconciliation",
        "type": "object"
      },
      "ItemImportCatalog": {
        "additionalProperties": false,
        "properties": {
          "authorization_scope": {
            "const": "item-import:commit-authorized",
            "default": "item-import:commit-authorized",
            "title": "Authorization Scope",
            "type": "string"
          },
          "commit_dispositions": {
            "items": {
              "enum": ["imported", "updated", "skipped", "rejected"],
              "type": "string"
            },
            "title": "Commit Dispositions",
            "type": "array"
          },
          "duplicate_policies": {
            "items": {
              "enum": ["reject", "skip_identical", "update_existing"],
              "type": "string"
            },
            "title": "Duplicate Policies",
            "type": "array"
          },
          "field_categories": {
            "items": {
              "enum": [
                "item",
                "stimulus",
                "rubric",
                "media",
                "source",
                "answer",
                "accessibility",
                "standard"
              ],
              "type": "string"
            },
            "title": "Field Categories",
            "type": "array"
          },
          "limits": {
            "$ref": "#/components/schemas/ItemImportLimits"
          },
          "preview_outcomes": {
            "items": {
              "enum": ["create", "update", "skip", "reject", "conflict", "loss", "substitution"],
              "type": "string"
            },
            "title": "Preview Outcomes",
            "type": "array"
          },
          "profiles": {
            "items": {
              "$ref": "#/components/schemas/ItemImportSupportedProfile"
            },
            "title": "Profiles",
            "type": "array"
          },
          "schema_version": {
            "const": "4.18.0",
            "default": "4.18.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "profiles",
          "limits",
          "duplicate_policies",
          "preview_outcomes",
          "commit_dispositions",
          "field_categories"
        ],
        "title": "ItemImportCatalog",
        "type": "object"
      },
      "ItemImportCommit": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "authorization_scope": {
            "const": "item-import:commit-authorized",
            "title": "Authorization Scope",
            "type": "string"
          },
          "batch_id": {
            "pattern": "^item-import-batch-[a-f0-9]{40}$",
            "title": "Batch Id",
            "type": "string"
          },
          "commit_id": {
            "pattern": "^item-import-commit-[a-f0-9]{40}$",
            "title": "Commit Id",
            "type": "string"
          },
          "commit_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Commit Sha256",
            "type": "string"
          },
          "counts": {
            "$ref": "#/components/schemas/ItemImportCommitCounts"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "diagnostics_retained": {
            "const": true,
            "default": true,
            "title": "Diagnostics Retained",
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ItemImportCommitItem"
            },
            "maxItems": 1000,
            "title": "Items",
            "type": "array"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "rejected_inputs_retained": {
            "const": true,
            "default": true,
            "title": "Rejected Inputs Retained",
            "type": "boolean"
          },
          "schema_version": {
            "const": "4.18.0",
            "default": "4.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_retained": {
            "const": true,
            "default": true,
            "title": "Source Retained",
            "type": "boolean"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "commit_id",
          "batch_id",
          "tenant_id",
          "actor_id",
          "actor_role",
          "authorization_scope",
          "reason",
          "items",
          "counts",
          "commit_sha256",
          "created_at"
        ],
        "title": "ItemImportCommit",
        "type": "object"
      },
      "ItemImportCommitCounts": {
        "additionalProperties": false,
        "properties": {
          "accounted": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Accounted",
            "type": "integer"
          },
          "discovered": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Discovered",
            "type": "integer"
          },
          "imported": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Imported",
            "type": "integer"
          },
          "rejected": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Rejected",
            "type": "integer"
          },
          "skipped": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Skipped",
            "type": "integer"
          },
          "updated": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Updated",
            "type": "integer"
          }
        },
        "required": ["discovered", "imported", "updated", "skipped", "rejected", "accounted"],
        "title": "ItemImportCommitCounts",
        "type": "object"
      },
      "ItemImportCommitItem": {
        "additionalProperties": false,
        "properties": {
          "binding_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Binding Sha256"
          },
          "diagnostics_retained": {
            "const": true,
            "default": true,
            "title": "Diagnostics Retained",
            "type": "boolean"
          },
          "disposition": {
            "enum": ["imported", "updated", "skipped", "rejected"],
            "title": "Disposition",
            "type": "string"
          },
          "draft_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Draft Id"
          },
          "draft_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Draft Revision"
          },
          "draft_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Draft Revision Sha256"
          },
          "import_item_id": {
            "title": "Import Item Id",
            "type": "string"
          },
          "preview_outcome": {
            "enum": ["create", "update", "skip", "reject", "conflict", "loss", "substitution"],
            "title": "Preview Outcome",
            "type": "string"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          }
        },
        "required": ["import_item_id", "source_item_id", "preview_outcome", "disposition"],
        "title": "ItemImportCommitItem",
        "type": "object"
      },
      "ItemImportCommitRequest": {
        "additionalProperties": false,
        "properties": {
          "authorization_scope": {
            "const": "item-import:commit-authorized",
            "title": "Authorization Scope",
            "type": "string"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/ItemImportDecision"
            },
            "maxItems": 1000,
            "title": "Decisions",
            "type": "array"
          },
          "expected_preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Preview Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^item-import-commit:[A-Za-z0-9._:-]{8,131}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.18.0",
            "default": "4.18.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_preview_sha256",
          "authorization_scope",
          "decisions",
          "reason"
        ],
        "title": "ItemImportCommitRequest",
        "type": "object"
      },
      "ItemImportDecision": {
        "additionalProperties": false,
        "properties": {
          "accept_substitution": {
            "default": false,
            "title": "Accept Substitution",
            "type": "boolean"
          },
          "action": {
            "enum": ["accept", "skip", "acknowledge"],
            "title": "Action",
            "type": "string"
          },
          "expected_preview_item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Preview Item Sha256",
            "type": "string"
          },
          "import_item_id": {
            "pattern": "^item-import-entry-[a-f0-9]{40}$",
            "title": "Import Item Id",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["import_item_id", "expected_preview_item_sha256", "action", "reason"],
        "title": "ItemImportDecision",
        "type": "object"
      },
      "ItemImportDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "item",
              "stimulus",
              "rubric",
              "media",
              "source",
              "answer",
              "accessibility",
              "standard"
            ],
            "title": "Category",
            "type": "string"
          },
          "code": {
            "pattern": "^item-import\\.[a-z0-9-]+$",
            "title": "Code",
            "type": "string"
          },
          "diagnostic_id": {
            "pattern": "^item-import-diagnostic-[a-f0-9]{40}$",
            "title": "Diagnostic Id",
            "type": "string"
          },
          "locator": {
            "$ref": "#/components/schemas/ItemImportLocator"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "severity": {
            "enum": ["info", "warning", "error"],
            "title": "Severity",
            "type": "string"
          },
          "source_value_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Value Sha256"
          }
        },
        "required": ["diagnostic_id", "severity", "code", "category", "locator", "message"],
        "title": "ItemImportDiagnostic",
        "type": "object"
      },
      "ItemImportExistingBinding": {
        "additionalProperties": false,
        "properties": {
          "binding_id": {
            "pattern": "^item-import-binding-[a-f0-9]{40}$",
            "title": "Binding Id",
            "type": "string"
          },
          "binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Binding Sha256",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "draft_revision": {
            "minimum": 1.0,
            "title": "Draft Revision",
            "type": "integer"
          },
          "draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Draft Revision Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "source_item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Item Sha256",
            "type": "string"
          }
        },
        "required": [
          "binding_id",
          "revision",
          "source_item_sha256",
          "draft_id",
          "draft_revision",
          "draft_revision_sha256",
          "binding_sha256"
        ],
        "title": "ItemImportExistingBinding",
        "type": "object"
      },
      "ItemImportFieldResult": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "item",
              "stimulus",
              "rubric",
              "media",
              "source",
              "answer",
              "accessibility",
              "standard"
            ],
            "title": "Category",
            "type": "string"
          },
          "diagnostic_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Diagnostic Ids",
            "type": "array"
          },
          "status": {
            "enum": ["valid", "migrated", "missing", "invalid", "not_applicable"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["category", "status"],
        "title": "ItemImportFieldResult",
        "type": "object"
      },
      "ItemImportImmutableSource": {
        "additionalProperties": false,
        "properties": {
          "batch_id": {
            "title": "Batch Id",
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/ItemImportSourceFile"
            },
            "title": "Files",
            "type": "array"
          },
          "retained_immutable": {
            "const": true,
            "default": true,
            "title": "Retained Immutable",
            "type": "boolean"
          },
          "schema_version": {
            "const": "4.18.0",
            "default": "4.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["batch_id", "tenant_id", "files", "source_sha256"],
        "title": "ItemImportImmutableSource",
        "type": "object"
      },
      "ItemImportLimits": {
        "additionalProperties": false,
        "properties": {
          "max_archive_entries": {
            "default": 500,
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Max Archive Entries",
            "type": "integer"
          },
          "max_cell_characters": {
            "default": 100000,
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Max Cell Characters",
            "type": "integer"
          },
          "max_compression_ratio": {
            "default": 100,
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Max Compression Ratio",
            "type": "integer"
          },
          "max_document_depth": {
            "default": 32,
            "maximum": 32.0,
            "minimum": 1.0,
            "title": "Max Document Depth",
            "type": "integer"
          },
          "max_document_nodes": {
            "default": 50000,
            "maximum": 50000.0,
            "minimum": 1.0,
            "title": "Max Document Nodes",
            "type": "integer"
          },
          "max_entry_bytes": {
            "default": 5242880,
            "maximum": 5242880.0,
            "minimum": 1.0,
            "title": "Max Entry Bytes",
            "type": "integer"
          },
          "max_items": {
            "default": 1000,
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Max Items",
            "type": "integer"
          },
          "max_path_depth": {
            "default": 8,
            "maximum": 8.0,
            "minimum": 1.0,
            "title": "Max Path Depth",
            "type": "integer"
          },
          "max_rows": {
            "default": 1000,
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Max Rows",
            "type": "integer"
          },
          "max_source_bytes": {
            "default": 12582912,
            "maximum": 12582912.0,
            "minimum": 1.0,
            "title": "Max Source Bytes",
            "type": "integer"
          },
          "max_source_files": {
            "default": 20,
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Max Source Files",
            "type": "integer"
          },
          "max_total_uncompressed_bytes": {
            "default": 52428800,
            "maximum": 52428800.0,
            "minimum": 1.0,
            "title": "Max Total Uncompressed Bytes",
            "type": "integer"
          }
        },
        "title": "ItemImportLimits",
        "type": "object"
      },
      "ItemImportLocator": {
        "additionalProperties": false,
        "properties": {
          "archive_entry": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Archive Entry"
          },
          "field": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Field",
            "type": "string"
          },
          "json_pointer": {
            "maxLength": 2048,
            "pattern": "^(?:/[^\\x00-\\x1f~]*(?:~[01][^\\x00-\\x1f~]*)*)*$",
            "title": "Json Pointer",
            "type": "string"
          },
          "row": {
            "anyOf": [
              {
                "maximum": 1000001.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Row"
          },
          "source_file": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Source File",
            "type": "string"
          }
        },
        "required": ["source_file", "json_pointer", "field"],
        "title": "ItemImportLocator",
        "type": "object"
      },
      "ItemImportMedia": {
        "additionalProperties": false,
        "properties": {
          "alternative_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Alternative Text",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "media_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Media Id",
            "type": "string"
          },
          "media_type": {
            "enum": [
              "image/png",
              "image/jpeg",
              "image/gif",
              "image/webp",
              "audio/mpeg",
              "audio/wav",
              "video/mp4",
              "text/vtt",
              "application/pdf"
            ],
            "title": "Media Type",
            "type": "string"
          },
          "path": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          }
        },
        "required": ["media_id", "path", "media_type", "content_sha256", "alternative_text"],
        "title": "ItemImportMedia",
        "type": "object"
      },
      "ItemImportMetadataEntry": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "pattern": "^[a-z][a-z0-9._-]{0,127}$",
            "title": "Key",
            "type": "string"
          },
          "value": {
            "maxLength": 20000,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["key", "value"],
        "title": "ItemImportMetadataEntry",
        "type": "object"
      },
      "ItemImportNormalizedItem": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemImportAccessibility"
              },
              {
                "type": "null"
              }
            ]
          },
          "answer": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Answer",
            "type": "array"
          },
          "item_kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot",
              "assessment-kind:constructed-response",
              "assessment-kind:essay",
              "assessment-kind:math",
              "assessment-kind:code",
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction",
              "assessment-kind:portfolio",
              "assessment-kind:oral-performance",
              "assessment-kind:performance"
            ],
            "title": "Item Kind",
            "type": "string"
          },
          "maximum_points": {
            "pattern": "^(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,2})?$",
            "title": "Maximum Points",
            "type": "string"
          },
          "media": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemImportMedia"
            },
            "maxItems": 100,
            "title": "Media",
            "type": "array"
          },
          "metadata": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemImportMetadataEntry"
            },
            "maxItems": 100,
            "title": "Metadata",
            "type": "array"
          },
          "options": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemImportOption"
            },
            "maxItems": 100,
            "title": "Options",
            "type": "array"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 100000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "response_type": {
            "enum": [
              "single",
              "multiple",
              "ordered",
              "matching",
              "constructed",
              "essay",
              "math",
              "code",
              "media"
            ],
            "title": "Response Type",
            "type": "string"
          },
          "rubric": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemImportRubric"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_item_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Source Item Id",
            "type": "string"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "source_schema_version": {
            "const": "1.0",
            "default": "1.0",
            "title": "Source Schema Version",
            "type": "string"
          },
          "standards": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Standards",
            "type": "array"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          },
          "stimulus": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemImportStimulus"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "source_item_id",
          "item_kind",
          "title",
          "stem",
          "response_type",
          "answer",
          "maximum_points"
        ],
        "title": "ItemImportNormalizedItem",
        "type": "object"
      },
      "ItemImportOption": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "option_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Option Id",
            "type": "string"
          },
          "target_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Id"
          }
        },
        "required": ["option_id", "content"],
        "title": "ItemImportOption",
        "type": "object"
      },
      "ItemImportOptions": {
        "additionalProperties": false,
        "properties": {
          "allowed_https_hosts": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Allowed Https Hosts",
            "type": "array"
          },
          "duplicate_policy": {
            "default": "skip_identical",
            "enum": ["reject", "skip_identical", "update_existing"],
            "title": "Duplicate Policy",
            "type": "string"
          },
          "external_reference_policy": {
            "default": "reject",
            "enum": ["reject", "allowlisted_https"],
            "title": "External Reference Policy",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/ItemImportLimits",
            "default": {
              "max_archive_entries": 500,
              "max_cell_characters": 100000,
              "max_compression_ratio": 100,
              "max_document_depth": 32,
              "max_document_nodes": 50000,
              "max_entry_bytes": 5242880,
              "max_items": 1000,
              "max_path_depth": 8,
              "max_rows": 1000,
              "max_source_bytes": 12582912,
              "max_source_files": 20,
              "max_total_uncompressed_bytes": 52428800
            }
          },
          "substitution_policy": {
            "default": "preview_and_authorize",
            "enum": ["forbid", "preview_and_authorize"],
            "title": "Substitution Policy",
            "type": "string"
          },
          "unknown_field_policy": {
            "default": "reject",
            "enum": ["reject", "record_loss"],
            "title": "Unknown Field Policy",
            "type": "string"
          }
        },
        "title": "ItemImportOptions",
        "type": "object"
      },
      "ItemImportPreview": {
        "additionalProperties": false,
        "properties": {
          "all_discovered_items_accounted": {
            "const": true,
            "default": true,
            "title": "All Discovered Items Accounted",
            "type": "boolean"
          },
          "assets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemImportAssetReconciliation"
            },
            "maxItems": 500,
            "title": "Assets",
            "type": "array"
          },
          "batch_id": {
            "pattern": "^item-import-batch-[a-f0-9]{40}$",
            "title": "Batch Id",
            "type": "string"
          },
          "counts": {
            "$ref": "#/components/schemas/ItemImportPreviewCounts"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ItemImportPreviewItem"
            },
            "maxItems": 1000,
            "title": "Items",
            "type": "array"
          },
          "nested_assets_reconciled": {
            "const": true,
            "default": true,
            "title": "Nested Assets Reconciled",
            "type": "boolean"
          },
          "nested_stimuli_reconciled": {
            "const": true,
            "default": true,
            "title": "Nested Stimuli Reconciled",
            "type": "boolean"
          },
          "options": {
            "$ref": "#/components/schemas/ItemImportOptions"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.18.0",
            "default": "4.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ItemImportSourceReceipt"
          },
          "source_diagnostics": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemImportDiagnostic"
            },
            "maxItems": 500,
            "title": "Source Diagnostics",
            "type": "array"
          },
          "stimuli": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemImportStimulusReconciliation"
            },
            "maxItems": 1000,
            "title": "Stimuli",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "batch_id",
          "tenant_id",
          "source",
          "options",
          "items",
          "counts",
          "preview_sha256",
          "created_at"
        ],
        "title": "ItemImportPreview",
        "type": "object"
      },
      "ItemImportPreviewCounts": {
        "additionalProperties": false,
        "properties": {
          "accounted": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Accounted",
            "type": "integer"
          },
          "conflict": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Conflict",
            "type": "integer"
          },
          "create": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Create",
            "type": "integer"
          },
          "discovered": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Discovered",
            "type": "integer"
          },
          "loss": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Loss",
            "type": "integer"
          },
          "reject": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Reject",
            "type": "integer"
          },
          "skip": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Skip",
            "type": "integer"
          },
          "substitution": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Substitution",
            "type": "integer"
          },
          "update": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Update",
            "type": "integer"
          }
        },
        "required": [
          "discovered",
          "create",
          "update",
          "skip",
          "reject",
          "conflict",
          "loss",
          "substitution",
          "accounted"
        ],
        "title": "ItemImportPreviewCounts",
        "type": "object"
      },
      "ItemImportPreviewItem": {
        "additionalProperties": false,
        "properties": {
          "committable": {
            "title": "Committable",
            "type": "boolean"
          },
          "diagnostics": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemImportDiagnostic"
            },
            "maxItems": 500,
            "title": "Diagnostics",
            "type": "array"
          },
          "existing_binding": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemImportExistingBinding"
              },
              {
                "type": "null"
              }
            ]
          },
          "field_results": {
            "items": {
              "$ref": "#/components/schemas/ItemImportFieldResult"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Field Results",
            "type": "array"
          },
          "import_item_id": {
            "pattern": "^item-import-entry-[a-f0-9]{40}$",
            "title": "Import Item Id",
            "type": "string"
          },
          "intended_commit_action": {
            "anyOf": [
              {
                "enum": ["create", "update"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Intended Commit Action"
          },
          "locator": {
            "$ref": "#/components/schemas/ItemImportLocator"
          },
          "normalized_item": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemImportNormalizedItem"
              },
              {
                "type": "null"
              }
            ]
          },
          "normalized_item_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalized Item Sha256"
          },
          "ordinal": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "outcome": {
            "enum": ["create", "update", "skip", "reject", "conflict", "loss", "substitution"],
            "title": "Outcome",
            "type": "string"
          },
          "preview_item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Item Sha256",
            "type": "string"
          },
          "raw_item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Raw Item Sha256",
            "type": "string"
          },
          "requires_authorization": {
            "title": "Requires Authorization",
            "type": "boolean"
          },
          "source_item_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Source Item Id",
            "type": "string"
          }
        },
        "required": [
          "import_item_id",
          "ordinal",
          "source_item_id",
          "locator",
          "raw_item_sha256",
          "normalized_item",
          "normalized_item_sha256",
          "field_results",
          "outcome",
          "intended_commit_action",
          "committable",
          "requires_authorization",
          "preview_item_sha256"
        ],
        "title": "ItemImportPreviewItem",
        "type": "object"
      },
      "ItemImportPreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "idempotency_key": {
            "pattern": "^item-import-preview:[A-Za-z0-9._:-]{8,130}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "options": {
            "$ref": "#/components/schemas/ItemImportOptions",
            "default": {
              "allowed_https_hosts": [],
              "duplicate_policy": "skip_identical",
              "external_reference_policy": "reject",
              "limits": {
                "max_archive_entries": 500,
                "max_cell_characters": 100000,
                "max_compression_ratio": 100,
                "max_document_depth": 32,
                "max_document_nodes": 50000,
                "max_entry_bytes": 5242880,
                "max_items": 1000,
                "max_path_depth": 8,
                "max_rows": 1000,
                "max_source_bytes": 12582912,
                "max_source_files": 20,
                "max_total_uncompressed_bytes": 52428800
              },
              "substitution_policy": "preview_and_authorize",
              "unknown_field_policy": "reject"
            }
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.18.0",
            "default": "4.18.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ItemImportSourceEnvelope"
          }
        },
        "required": ["idempotency_key", "source", "reason"],
        "title": "ItemImportPreviewRequest",
        "type": "object"
      },
      "ItemImportRubric": {
        "additionalProperties": false,
        "properties": {
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/ItemImportRubricCriterion"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "rubric_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          }
        },
        "required": ["rubric_id", "criteria"],
        "title": "ItemImportRubric",
        "type": "object"
      },
      "ItemImportRubricCriterion": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "description": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "points": {
            "pattern": "^(?:0|[1-9][0-9]{0,5})(?:\\.[0-9]{1,2})?$",
            "title": "Points",
            "type": "string"
          }
        },
        "required": ["criterion_id", "description", "points"],
        "title": "ItemImportRubricCriterion",
        "type": "object"
      },
      "ItemImportSourceEnvelope": {
        "additionalProperties": false,
        "properties": {
          "external_batch_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "External Batch Id",
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/ItemImportSourceFile"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Files",
            "type": "array"
          },
          "manifest_path": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Manifest Path",
            "type": "string"
          },
          "provider": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "source_format": {
            "enum": ["oshun_json", "csv", "qti_3_package"],
            "title": "Source Format",
            "type": "string"
          },
          "source_profile": {
            "enum": [
              "oshun-item-bank:1.0",
              "oshun-item-bank:legacy-0.9",
              "oshun-item-csv:1.0",
              "ims-qti:3.0-subset"
            ],
            "title": "Source Profile",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "external_batch_id",
          "source_format",
          "source_profile",
          "manifest_path",
          "files"
        ],
        "title": "ItemImportSourceEnvelope",
        "type": "object"
      },
      "ItemImportSourceFile": {
        "additionalProperties": false,
        "properties": {
          "byte_length": {
            "maximum": 12582912.0,
            "minimum": 0.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "content_base64": {
            "maxLength": 17000000,
            "pattern": "^[A-Za-z0-9+/]*={0,2}$",
            "title": "Content Base64",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "file_id": {
            "pattern": "^item-import-file:[a-z0-9][a-z0-9._:-]{2,127}$",
            "title": "File Id",
            "type": "string"
          },
          "media_type": {
            "enum": [
              "application/vnd.oshun.item-bank+json",
              "text/csv",
              "application/zip",
              "application/xml",
              "text/xml",
              "image/png",
              "image/jpeg",
              "image/gif",
              "image/webp",
              "audio/mpeg",
              "audio/wav",
              "video/mp4",
              "text/vtt",
              "application/pdf"
            ],
            "title": "Media Type",
            "type": "string"
          },
          "path": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          }
        },
        "required": [
          "file_id",
          "path",
          "media_type",
          "byte_length",
          "content_sha256",
          "content_base64"
        ],
        "title": "ItemImportSourceFile",
        "type": "object"
      },
      "ItemImportSourceReceipt": {
        "additionalProperties": false,
        "properties": {
          "byte_count": {
            "maximum": 52428800.0,
            "minimum": 0.0,
            "title": "Byte Count",
            "type": "integer"
          },
          "external_batch_id": {
            "title": "External Batch Id",
            "type": "string"
          },
          "file_count": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "File Count",
            "type": "integer"
          },
          "manifest_path": {
            "title": "Manifest Path",
            "type": "string"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "retained_immutable": {
            "const": true,
            "default": true,
            "title": "Retained Immutable",
            "type": "boolean"
          },
          "source_format": {
            "enum": ["oshun_json", "csv", "qti_3_package"],
            "title": "Source Format",
            "type": "string"
          },
          "source_profile": {
            "enum": [
              "oshun-item-bank:1.0",
              "oshun-item-bank:legacy-0.9",
              "oshun-item-csv:1.0",
              "ims-qti:3.0-subset"
            ],
            "title": "Source Profile",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "external_batch_id",
          "source_format",
          "source_profile",
          "manifest_path",
          "file_count",
          "byte_count",
          "source_sha256"
        ],
        "title": "ItemImportSourceReceipt",
        "type": "object"
      },
      "ItemImportStimulus": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "media_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Media Ids",
            "type": "array"
          },
          "stimulus_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Stimulus Id",
            "type": "string"
          },
          "title": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["stimulus_id", "title", "body"],
        "title": "ItemImportStimulus",
        "type": "object"
      },
      "ItemImportStimulusReconciliation": {
        "additionalProperties": false,
        "properties": {
          "diagnostic_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Diagnostic Ids",
            "type": "array"
          },
          "disposition": {
            "enum": ["resolved", "rejected"],
            "title": "Disposition",
            "type": "string"
          },
          "referenced_by": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Referenced By",
            "type": "array"
          },
          "stimulus_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Stimulus Id",
            "type": "string"
          }
        },
        "required": ["stimulus_id", "referenced_by", "disposition"],
        "title": "ItemImportStimulusReconciliation",
        "type": "object"
      },
      "ItemImportSupportedProfile": {
        "additionalProperties": false,
        "properties": {
          "archive_required": {
            "title": "Archive Required",
            "type": "boolean"
          },
          "manifest_media_type": {
            "title": "Manifest Media Type",
            "type": "string"
          },
          "source_format": {
            "enum": ["oshun_json", "csv", "qti_3_package"],
            "title": "Source Format",
            "type": "string"
          },
          "source_profile": {
            "enum": [
              "oshun-item-bank:1.0",
              "oshun-item-bank:legacy-0.9",
              "oshun-item-csv:1.0",
              "ims-qti:3.0-subset"
            ],
            "title": "Source Profile",
            "type": "string"
          }
        },
        "required": ["source_format", "source_profile", "archive_required", "manifest_media_type"],
        "title": "ItemImportSupportedProfile",
        "type": "object"
      },
      "ItemImportWorkspace": {
        "additionalProperties": false,
        "properties": {
          "commit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemImportCommit"
              },
              {
                "type": "null"
              }
            ]
          },
          "preview": {
            "$ref": "#/components/schemas/ItemImportPreview"
          },
          "schema_version": {
            "const": "4.18.0",
            "default": "4.18.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["preview"],
        "title": "ItemImportWorkspace",
        "type": "object"
      },
      "ItemKind": {
        "enum": [
          "multiple_choice",
          "true_false",
          "short_answer",
          "essay",
          "code",
          "math",
          "media",
          "interactive",
          "unknown"
        ],
        "title": "ItemKind",
        "type": "string"
      },
      "ItemLearningLink": {
        "additionalProperties": false,
        "properties": {
          "cognitive": {
            "$ref": "#/components/schemas/LearningLinkCognitiveClassification"
          },
          "coverage_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Coverage Basis Points",
            "type": "integer"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/LearningLinkEvidence"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "link_id": {
            "pattern": "^item-link:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Link Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "supporting", "prerequisite", "evidence"],
            "title": "Role",
            "type": "string"
          },
          "strength": {
            "enum": ["exact", "strong", "moderate", "weak"],
            "title": "Strength",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/LearningTargetRegistryEntry"
          }
        },
        "required": [
          "link_id",
          "role",
          "strength",
          "coverage_basis_points",
          "cognitive",
          "rationale",
          "evidence",
          "target"
        ],
        "title": "ItemLearningLink",
        "type": "object"
      },
      "ItemLearningLinkAuditEvent": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "audit_id": {
            "format": "uuid",
            "title": "Audit Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Revision Sha256",
            "type": "string"
          },
          "event_type": {
            "enum": ["created", "revised"],
            "title": "Event Type",
            "type": "string"
          },
          "link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Link Ids",
            "type": "array"
          },
          "link_set_id": {
            "title": "Link Set Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "audit_id",
          "tenant_id",
          "link_set_id",
          "event_type",
          "actor_id",
          "actor_role",
          "request_sha256",
          "previous_revision_sha256",
          "current_revision_sha256",
          "link_ids",
          "created_at"
        ],
        "title": "ItemLearningLinkAuditEvent",
        "type": "object"
      },
      "ItemLearningLinkAuditResponse": {
        "additionalProperties": false,
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/ItemLearningLinkAuditEvent"
            },
            "title": "Events",
            "type": "array"
          },
          "link_set_id": {
            "title": "Link Set Id",
            "type": "string"
          },
          "schema_version": {
            "const": "4.9.0",
            "default": "4.9.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["link_set_id", "events"],
        "title": "ItemLearningLinkAuditResponse",
        "type": "object"
      },
      "ItemLearningLinkCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "link_sets": {
            "items": {
              "$ref": "#/components/schemas/ItemLearningLinkRevisionResponse"
            },
            "title": "Link Sets",
            "type": "array"
          },
          "schema_version": {
            "const": "4.9.0",
            "default": "4.9.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["link_sets"],
        "title": "ItemLearningLinkCatalogResponse",
        "type": "object"
      },
      "ItemLearningLinkContent": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExactLinkedItemRevision"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/ItemLearningLink"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Links",
            "type": "array"
          }
        },
        "required": ["item", "course_id", "links"],
        "title": "ItemLearningLinkContent",
        "type": "object"
      },
      "ItemLearningLinkHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "link_set_id": {
            "title": "Link Set Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/ItemLearningLinkRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.9.0",
            "default": "4.9.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["link_set_id", "revisions"],
        "title": "ItemLearningLinkHistoryResponse",
        "type": "object"
      },
      "ItemLearningLinkProjectionResponse": {
        "additionalProperties": false,
        "properties": {
          "consistent_semantics": {
            "const": true,
            "default": true,
            "title": "Consistent Semantics",
            "type": "boolean"
          },
          "link_set_id": {
            "title": "Link Set Id",
            "type": "string"
          },
          "projections": {
            "items": {
              "$ref": "#/components/schemas/LearningLinkSurfaceProjection"
            },
            "title": "Projections",
            "type": "array"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.9.0",
            "default": "4.9.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["link_set_id", "revision", "revision_sha256", "projections"],
        "title": "ItemLearningLinkProjectionResponse",
        "type": "object"
      },
      "ItemLearningLinkRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/ItemLearningLinkContent"
          },
          "expected_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision"
          },
          "expected_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "link_set_id": {
            "anyOf": [
              {
                "pattern": "^item-learning-links-[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Link Set Id"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.9.0",
            "default": "4.9.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "reason", "content"],
        "title": "ItemLearningLinkRevisionRequest",
        "type": "object"
      },
      "ItemLearningLinkRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExactLinkedItemRevision"
          },
          "link_set_id": {
            "title": "Link Set Id",
            "type": "string"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/ItemLearningLink"
            },
            "title": "Links",
            "type": "array"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.9.0",
            "default": "4.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "link_set_id",
          "tenant_id",
          "revision",
          "item",
          "course_id",
          "links",
          "reason",
          "actor_id",
          "actor_role",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemLearningLinkRevisionResponse",
        "type": "object"
      },
      "ItemLifecycleStatus": {
        "enum": ["draft", "in_review", "approved", "published", "retired"],
        "title": "ItemLifecycleStatus",
        "type": "string"
      },
      "ItemOptionAnchor": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "item_option",
            "default": "item_option",
            "title": "Kind",
            "type": "string"
          },
          "option_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Option Id",
            "type": "string"
          }
        },
        "required": ["option_id"],
        "title": "ItemOptionAnchor",
        "type": "object"
      },
      "ItemPerformance": {
        "additionalProperties": false,
        "properties": {
          "exposure_rate": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "facility": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "mean_seconds": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "option_selection": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/OptionSelection"
            },
            "maxItems": 20,
            "title": "Option Selection",
            "type": "array"
          },
          "responses": {
            "minimum": 0.0,
            "title": "Responses",
            "type": "integer"
          }
        },
        "required": ["item_id", "responses", "facility", "mean_seconds", "exposure_rate"],
        "title": "ItemPerformance",
        "type": "object"
      },
      "ItemPreviewAuthorAccess": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "authorization_scope": {
            "const": "item-preview:protected-author-mode",
            "title": "Authorization Scope",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role", "authorization_scope", "reason"],
        "title": "ItemPreviewAuthorAccess",
        "type": "object"
      },
      "ItemPreviewAuthorOverlay": {
        "additionalProperties": false,
        "properties": {
          "access": {
            "$ref": "#/components/schemas/ItemPreviewAuthorAccess"
          },
          "build": {
            "$ref": "#/components/schemas/ItemPreviewBuildWitness"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/ItemPreviewProtectedEntry"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Entries",
            "type": "array"
          },
          "expected_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Document Sha256",
            "type": "string"
          },
          "learner_surface_included": {
            "const": false,
            "default": false,
            "title": "Learner Surface Included",
            "type": "boolean"
          },
          "overlay_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Overlay Sha256",
            "type": "string"
          },
          "protected_material_visible": {
            "const": true,
            "default": true,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "side_effects": {
            "$ref": "#/components/schemas/ItemPreviewSideEffectReceipt"
          }
        },
        "required": [
          "build",
          "expected_document_sha256",
          "access",
          "entries",
          "side_effects",
          "overlay_sha256"
        ],
        "title": "ItemPreviewAuthorOverlay",
        "type": "object"
      },
      "ItemPreviewAuthorOverlayRequest": {
        "additionalProperties": false,
        "properties": {
          "authorization_scope": {
            "const": "item-preview:protected-author-mode",
            "title": "Authorization Scope",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/ItemPreviewContext"
          },
          "expected_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Document Sha256",
            "type": "string"
          },
          "pin": {
            "$ref": "#/components/schemas/ItemPreviewRevisionPin"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["pin", "context", "expected_document_sha256", "authorization_scope", "reason"],
        "title": "ItemPreviewAuthorOverlayRequest",
        "type": "object"
      },
      "ItemPreviewBuildWitness": {
        "additionalProperties": false,
        "properties": {
          "build_id": {
            "pattern": "^item-preview-build-[a-f0-9]{24}$",
            "title": "Build Id",
            "type": "string"
          },
          "build_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Build Sha256",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "exact_revision": {
            "const": true,
            "default": true,
            "title": "Exact Revision",
            "type": "boolean"
          },
          "family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Family",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "seed": {
            "title": "Seed",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "unpublished_draft_allowed": {
            "const": true,
            "default": true,
            "title": "Unpublished Draft Allowed",
            "type": "boolean"
          }
        },
        "required": [
          "build_id",
          "build_sha256",
          "tenant_id",
          "family",
          "item_id",
          "draft_id",
          "revision",
          "revision_sha256",
          "content_sha256",
          "locale",
          "seed"
        ],
        "title": "ItemPreviewBuildWitness",
        "type": "object"
      },
      "ItemPreviewChoiceResponse": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "choice",
            "default": "choice",
            "title": "Kind",
            "type": "string"
          },
          "selected_option_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Selected Option Ids",
            "type": "array"
          }
        },
        "required": ["selected_option_ids"],
        "title": "ItemPreviewChoiceResponse",
        "type": "object"
      },
      "ItemPreviewContext": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "default": [],
            "items": {
              "enum": [
                "captions",
                "transcript",
                "audio_description",
                "plain_language",
                "keyboard_only",
                "extended_time",
                "reduced_motion",
                "high_contrast"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "title": "Accommodations",
            "type": "array"
          },
          "bandwidth": {
            "default": "online",
            "enum": ["online", "low", "offline"],
            "title": "Bandwidth",
            "type": "string"
          },
          "contrast": {
            "default": "standard",
            "enum": ["standard", "high"],
            "title": "Contrast",
            "type": "string"
          },
          "device": {
            "default": "desktop",
            "enum": ["desktop", "tablet", "mobile"],
            "title": "Device",
            "type": "string"
          },
          "input_mode": {
            "default": "keyboard",
            "enum": ["keyboard", "pointer", "touch", "switch"],
            "title": "Input Mode",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_mode": {
            "default": "default",
            "enum": ["default", "captions", "transcript", "audio_description", "sign_language"],
            "title": "Media Mode",
            "type": "string"
          },
          "motion": {
            "default": "full",
            "enum": ["full", "reduced"],
            "title": "Motion",
            "type": "string"
          },
          "seed": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Seed",
            "type": "string"
          },
          "session_minutes": {
            "default": 15,
            "maximum": 30.0,
            "minimum": 5.0,
            "title": "Session Minutes",
            "type": "integer"
          }
        },
        "required": ["locale", "seed"],
        "title": "ItemPreviewContext",
        "type": "object"
      },
      "ItemPreviewContract": {
        "additionalProperties": false,
        "properties": {
          "contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Contract Sha256",
            "type": "string"
          },
          "document": {
            "$ref": "#/components/schemas/ItemPreviewLearnerDocument"
          },
          "identity": {
            "$ref": "#/components/schemas/ItemPreviewSyntheticIdentity",
            "default": {
              "attempt_authority": false,
              "calibration_authority": false,
              "display_name": "Synthetic preview participant",
              "enrollment_authority": false,
              "event_authority": false,
              "exposure_authority": false,
              "grade_authority": false,
              "identity_source": "generated_nonoperational",
              "learner": false,
              "operational": false,
              "role": "preview_nonlearner",
              "subject_id": "preview-participant-00000000"
            }
          },
          "parity": {
            "$ref": "#/components/schemas/ItemPreviewParityEvidence"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session": {
            "$ref": "#/components/schemas/ItemPreviewSession"
          },
          "side_effects": {
            "$ref": "#/components/schemas/ItemPreviewSideEffectReceipt"
          },
          "write_isolation": {
            "$ref": "#/components/schemas/ItemPreviewWriteIsolation",
            "default": {
              "browser_state": "bounded_parent_memory_only",
              "cookie_policy": "none",
              "crash_policy": "discard",
              "database_policy": "read_only_no_flush",
              "denied_sinks": [
                "attempts",
                "submissions",
                "grades",
                "gradebook",
                "events",
                "xapi",
                "caliper",
                "analytics",
                "integrity",
                "calibration",
                "exposure",
                "credentials",
                "lti",
                "notifications",
                "cookies",
                "local_storage",
                "indexed_db",
                "file_storage"
              ],
              "event_storage": "memory_only",
              "file_storage": "metadata_only_no_upload",
              "integration_hooks": "none",
              "mutation_transport": "preview_endpoints_only",
              "refresh_policy": "discard",
              "response_storage": "memory_only",
              "timer_storage": "memory_only"
            }
          }
        },
        "required": ["session", "parity", "document", "side_effects", "contract_sha256"],
        "title": "ItemPreviewContract",
        "type": "object"
      },
      "ItemPreviewDisposableState": {
        "additionalProperties": false,
        "properties": {
          "build_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Build Sha256",
            "type": "string"
          },
          "completed": {
            "default": false,
            "title": "Completed",
            "type": "boolean"
          },
          "crashed": {
            "default": false,
            "title": "Crashed",
            "type": "boolean"
          },
          "elapsed_seconds": {
            "maximum": 1800.0,
            "minimum": 0.0,
            "title": "Elapsed Seconds",
            "type": "integer"
          },
          "local_events": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemPreviewLocalEvent"
            },
            "maxItems": 64,
            "title": "Local Events",
            "type": "array"
          },
          "online": {
            "default": true,
            "title": "Online",
            "type": "boolean"
          },
          "response": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "choice": "#/components/schemas/ItemPreviewChoiceResponse",
                    "matching": "#/components/schemas/ItemPreviewMatchingResponse",
                    "media_event": "#/components/schemas/ItemPreviewMediaResponse",
                    "ordered": "#/components/schemas/ItemPreviewOrderedResponse",
                    "text": "#/components/schemas/ItemPreviewTextResponse"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ItemPreviewChoiceResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewOrderedResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewMatchingResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewTextResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewMediaResponse"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Response"
          },
          "screen": {
            "default": "item",
            "enum": ["item", "review", "complete"],
            "title": "Screen",
            "type": "string"
          },
          "sequence": {
            "maximum": 64.0,
            "minimum": 0.0,
            "title": "Sequence",
            "type": "integer"
          },
          "session_id": {
            "pattern": "^item-preview-[a-f0-9]{24}$",
            "title": "Session Id",
            "type": "string"
          },
          "state_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "State Sha256",
            "type": "string"
          }
        },
        "required": ["session_id", "build_sha256", "sequence", "elapsed_seconds", "state_sha256"],
        "title": "ItemPreviewDisposableState",
        "type": "object"
      },
      "ItemPreviewLearnerDocument": {
        "additionalProperties": false,
        "properties": {
          "build": {
            "$ref": "#/components/schemas/ItemPreviewBuildWitness"
          },
          "content": {
            "discriminator": {
              "mapping": {
                "math_code": "#/components/schemas/ItemPreviewMathCodeDocument",
                "media_interactive": "#/components/schemas/ItemPreviewMediaInteractiveDocument",
                "selected_response": "#/components/schemas/ItemPreviewSelectedResponseDocument",
                "written_response": "#/components/schemas/ItemPreviewWrittenResponseDocument"
              },
              "propertyName": "family"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/ItemPreviewSelectedResponseDocument"
              },
              {
                "$ref": "#/components/schemas/ItemPreviewWrittenResponseDocument"
              },
              {
                "$ref": "#/components/schemas/ItemPreviewMathCodeDocument"
              },
              {
                "$ref": "#/components/schemas/ItemPreviewMediaInteractiveDocument"
              }
            ],
            "title": "Content"
          },
          "learner_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Document Sha256",
            "type": "string"
          },
          "protected_material_visible": {
            "const": false,
            "default": false,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "renderer": {
            "$ref": "#/components/schemas/ItemPreviewRendererContract"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["build", "renderer", "content", "learner_document_sha256"],
        "title": "ItemPreviewLearnerDocument",
        "type": "object"
      },
      "ItemPreviewLocalEvent": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "respond",
              "navigate_review",
              "navigate_item",
              "tick",
              "toggle_offline",
              "complete",
              "refresh",
              "crash",
              "reset"
            ],
            "title": "Action",
            "type": "string"
          },
          "input_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Sha256",
            "type": "string"
          },
          "outcome": {
            "enum": ["applied", "blocked", "discarded"],
            "title": "Outcome",
            "type": "string"
          },
          "sequence": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          }
        },
        "required": ["sequence", "action", "input_sha256", "outcome"],
        "title": "ItemPreviewLocalEvent",
        "type": "object"
      },
      "ItemPreviewLocalFile": {
        "additionalProperties": false,
        "properties": {
          "byte_length": {
            "maximum": 104857600.0,
            "minimum": 0.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "content_included": {
            "const": false,
            "default": false,
            "title": "Content Included",
            "type": "boolean"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "file_id": {
            "pattern": "^preview-file:[a-z0-9][a-z0-9._:-]{2,127}$",
            "title": "File Id",
            "type": "string"
          },
          "filename": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Filename",
            "type": "string"
          },
          "media_type": {
            "maxLength": 127,
            "minLength": 3,
            "title": "Media Type",
            "type": "string"
          },
          "storage": {
            "const": "browser_memory_metadata_only",
            "default": "browser_memory_metadata_only",
            "title": "Storage",
            "type": "string"
          }
        },
        "required": ["file_id", "filename", "media_type", "byte_length", "content_sha256"],
        "title": "ItemPreviewLocalFile",
        "type": "object"
      },
      "ItemPreviewMatchingResponse": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "matching",
            "default": "matching",
            "title": "Kind",
            "type": "string"
          },
          "matching_pairs": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseMatchingPair"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Matching Pairs",
            "type": "array"
          }
        },
        "required": ["matching_pairs"],
        "title": "ItemPreviewMatchingResponse",
        "type": "object"
      },
      "ItemPreviewMathCodeDocument": {
        "additionalProperties": false,
        "properties": {
          "family": {
            "const": "math_code",
            "default": "math_code",
            "title": "Family",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/MathCodePreview"
          }
        },
        "required": ["payload"],
        "title": "ItemPreviewMathCodeDocument",
        "type": "object"
      },
      "ItemPreviewMediaInteractiveDocument": {
        "additionalProperties": false,
        "properties": {
          "family": {
            "const": "media_interactive",
            "default": "media_interactive",
            "title": "Family",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/MediaInteractivePreview"
          }
        },
        "required": ["payload"],
        "title": "ItemPreviewMediaInteractiveDocument",
        "type": "object"
      },
      "ItemPreviewMediaResponse": {
        "additionalProperties": false,
        "properties": {
          "event_name": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Event Name",
            "type": "string"
          },
          "kind": {
            "const": "media_event",
            "default": "media_event",
            "title": "Kind",
            "type": "string"
          },
          "payload": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "title": "Payload",
            "type": "object"
          }
        },
        "required": ["event_name", "payload"],
        "title": "ItemPreviewMediaResponse",
        "type": "object"
      },
      "ItemPreviewOrderedResponse": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "ordered",
            "default": "ordered",
            "title": "Kind",
            "type": "string"
          },
          "ordered_option_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Ordered Option Ids",
            "type": "array"
          }
        },
        "required": ["ordered_option_ids"],
        "title": "ItemPreviewOrderedResponse",
        "type": "object"
      },
      "ItemPreviewParityEvidence": {
        "additionalProperties": false,
        "properties": {
          "build_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Build Sha256",
            "type": "string"
          },
          "learner_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Document Sha256",
            "type": "string"
          },
          "preview_chrome_outside_renderer": {
            "const": true,
            "default": true,
            "title": "Preview Chrome Outside Renderer",
            "type": "boolean"
          },
          "preview_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Document Sha256",
            "type": "string"
          },
          "renderer_contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Renderer Contract Sha256",
            "type": "string"
          },
          "same_document_required": {
            "const": true,
            "default": true,
            "title": "Same Document Required",
            "type": "boolean"
          },
          "same_renderer_required": {
            "const": true,
            "default": true,
            "title": "Same Renderer Required",
            "type": "boolean"
          }
        },
        "required": [
          "preview_document_sha256",
          "learner_document_sha256",
          "build_sha256",
          "renderer_contract_sha256"
        ],
        "title": "ItemPreviewParityEvidence",
        "type": "object"
      },
      "ItemPreviewPreparation": {
        "additionalProperties": false,
        "properties": {
          "contract": {
            "$ref": "#/components/schemas/ItemPreviewContract"
          },
          "initial_state": {
            "$ref": "#/components/schemas/ItemPreviewDisposableState"
          },
          "preparation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preparation Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["contract", "initial_state", "preparation_sha256"],
        "title": "ItemPreviewPreparation",
        "type": "object"
      },
      "ItemPreviewPrepareRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/ItemPreviewContext"
          },
          "pin": {
            "$ref": "#/components/schemas/ItemPreviewRevisionPin"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["pin", "context", "reason"],
        "title": "ItemPreviewPrepareRequest",
        "type": "object"
      },
      "ItemPreviewProtectedEntry": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": [
              "answer",
              "scoring",
              "feedback",
              "rationale",
              "misconception",
              "hidden_test",
              "expected_value",
              "moderation"
            ],
            "title": "Kind",
            "type": "string"
          },
          "path": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          },
          "value": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          },
          "value_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Value Sha256",
            "type": "string"
          }
        },
        "required": ["path", "kind", "value", "value_sha256"],
        "title": "ItemPreviewProtectedEntry",
        "type": "object"
      },
      "ItemPreviewRendererContract": {
        "additionalProperties": false,
        "properties": {
          "component": {
            "const": "AssessmentQuestion",
            "default": "AssessmentQuestion",
            "title": "Component",
            "type": "string"
          },
          "live_delivery_import_path": {
            "const": "@/components/AssessmentQuestion",
            "default": "@/components/AssessmentQuestion",
            "title": "Live Delivery Import Path",
            "type": "string"
          },
          "renderer_contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Renderer Contract Sha256",
            "type": "string"
          },
          "renderer_id": {
            "const": "metis.assessment-question-react",
            "default": "metis.assessment-question-react",
            "title": "Renderer Id",
            "type": "string"
          },
          "renderer_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Renderer Version",
            "type": "string"
          },
          "target": {
            "const": "learner-web",
            "default": "learner-web",
            "title": "Target",
            "type": "string"
          },
          "used_by_live_assessment": {
            "const": true,
            "default": true,
            "title": "Used By Live Assessment",
            "type": "boolean"
          }
        },
        "required": ["renderer_contract_sha256"],
        "title": "ItemPreviewRendererContract",
        "type": "object"
      },
      "ItemPreviewRevisionPin": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "expected_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Content Sha256",
            "type": "string"
          },
          "family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Family",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "stimuli": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemComparisonStimulusPin"
            },
            "maxItems": 32,
            "title": "Stimuli",
            "type": "array"
          }
        },
        "required": [
          "draft_id",
          "family",
          "revision",
          "revision_sha256",
          "expected_content_sha256"
        ],
        "title": "ItemPreviewRevisionPin",
        "type": "object"
      },
      "ItemPreviewSelectedResponseDocument": {
        "additionalProperties": false,
        "properties": {
          "family": {
            "const": "selected_response",
            "default": "selected_response",
            "title": "Family",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/SelectedResponseLearnerPreview"
          }
        },
        "required": ["payload"],
        "title": "ItemPreviewSelectedResponseDocument",
        "type": "object"
      },
      "ItemPreviewSession": {
        "additionalProperties": false,
        "properties": {
          "bearer_token": {
            "title": "Bearer Token",
            "type": "null"
          },
          "duration_seconds": {
            "maximum": 1800.0,
            "minimum": 300.0,
            "title": "Duration Seconds",
            "type": "integer"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "learner_token_issued": {
            "const": false,
            "default": false,
            "title": "Learner Token Issued",
            "type": "boolean"
          },
          "max_local_events": {
            "default": 64,
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Max Local Events",
            "type": "integer"
          },
          "resumable": {
            "const": false,
            "default": false,
            "title": "Resumable",
            "type": "boolean"
          },
          "server_persistence": {
            "const": false,
            "default": false,
            "title": "Server Persistence",
            "type": "boolean"
          },
          "session_id": {
            "pattern": "^item-preview-[a-f0-9]{24}$",
            "title": "Session Id",
            "type": "string"
          },
          "state_location": {
            "const": "browser_parent_memory",
            "default": "browser_parent_memory",
            "title": "State Location",
            "type": "string"
          }
        },
        "required": ["session_id", "issued_at", "expires_at", "duration_seconds"],
        "title": "ItemPreviewSession",
        "type": "object"
      },
      "ItemPreviewSideEffectReceipt": {
        "additionalProperties": false,
        "properties": {
          "attempt_count_delta": {
            "const": 0,
            "default": 0,
            "title": "Attempt Count Delta",
            "type": "integer"
          },
          "calibration_count_delta": {
            "const": 0,
            "default": 0,
            "title": "Calibration Count Delta",
            "type": "integer"
          },
          "database_deleted": {
            "const": 0,
            "default": 0,
            "title": "Database Deleted",
            "type": "integer"
          },
          "database_dirty": {
            "const": 0,
            "default": 0,
            "title": "Database Dirty",
            "type": "integer"
          },
          "database_new": {
            "const": 0,
            "default": 0,
            "title": "Database New",
            "type": "integer"
          },
          "denied_sinks": {
            "items": {
              "enum": [
                "attempts",
                "submissions",
                "grades",
                "gradebook",
                "events",
                "xapi",
                "caliper",
                "analytics",
                "integrity",
                "calibration",
                "exposure",
                "credentials",
                "lti",
                "notifications",
                "cookies",
                "local_storage",
                "indexed_db",
                "file_storage"
              ],
              "type": "string"
            },
            "title": "Denied Sinks",
            "type": "array"
          },
          "event_count_delta": {
            "const": 0,
            "default": 0,
            "title": "Event Count Delta",
            "type": "integer"
          },
          "exposure_count_delta": {
            "const": 0,
            "default": 0,
            "title": "Exposure Count Delta",
            "type": "integer"
          },
          "grade_count_delta": {
            "const": 0,
            "default": 0,
            "title": "Grade Count Delta",
            "type": "integer"
          },
          "operational_mutations": {
            "const": 0,
            "default": 0,
            "title": "Operational Mutations",
            "type": "integer"
          },
          "outbound_integration_calls": {
            "const": 0,
            "default": 0,
            "title": "Outbound Integration Calls",
            "type": "integer"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          }
        },
        "required": ["denied_sinks", "receipt_sha256"],
        "title": "ItemPreviewSideEffectReceipt",
        "type": "object"
      },
      "ItemPreviewSimulationRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "respond",
              "navigate_review",
              "navigate_item",
              "tick",
              "toggle_offline",
              "complete",
              "refresh",
              "crash",
              "reset"
            ],
            "title": "Action",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/ItemPreviewContext"
          },
          "elapsed_seconds": {
            "anyOf": [
              {
                "maximum": 1800.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Elapsed Seconds"
          },
          "expected_contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Contract Sha256",
            "type": "string"
          },
          "expected_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Document Sha256",
            "type": "string"
          },
          "expected_state_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected State Sha256",
            "type": "string"
          },
          "pin": {
            "$ref": "#/components/schemas/ItemPreviewRevisionPin"
          },
          "response": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "choice": "#/components/schemas/ItemPreviewChoiceResponse",
                    "matching": "#/components/schemas/ItemPreviewMatchingResponse",
                    "media_event": "#/components/schemas/ItemPreviewMediaResponse",
                    "ordered": "#/components/schemas/ItemPreviewOrderedResponse",
                    "text": "#/components/schemas/ItemPreviewTextResponse"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ItemPreviewChoiceResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewOrderedResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewMatchingResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewTextResponse"
                  },
                  {
                    "$ref": "#/components/schemas/ItemPreviewMediaResponse"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Response"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session": {
            "$ref": "#/components/schemas/ItemPreviewSession"
          },
          "state": {
            "$ref": "#/components/schemas/ItemPreviewDisposableState"
          }
        },
        "required": [
          "pin",
          "context",
          "session",
          "expected_contract_sha256",
          "expected_document_sha256",
          "state",
          "expected_state_sha256",
          "action"
        ],
        "title": "ItemPreviewSimulationRequest",
        "type": "object"
      },
      "ItemPreviewSimulationResult": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "items": {
              "enum": [
                "captions",
                "transcript",
                "audio_description",
                "plain_language",
                "keyboard_only",
                "extended_time",
                "reduced_motion",
                "high_contrast"
              ],
              "type": "string"
            },
            "title": "Accommodations",
            "type": "array"
          },
          "action": {
            "enum": [
              "respond",
              "navigate_review",
              "navigate_item",
              "tick",
              "toggle_offline",
              "complete",
              "refresh",
              "crash",
              "reset"
            ],
            "title": "Action",
            "type": "string"
          },
          "awarded_points": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Awarded Points"
          },
          "correct": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Correct"
          },
          "feedback": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Feedback",
            "type": "array"
          },
          "maximum_points": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Points"
          },
          "navigation": {
            "enum": ["item", "review", "complete"],
            "title": "Navigation",
            "type": "string"
          },
          "offline": {
            "enum": ["online", "available", "blocked"],
            "title": "Offline",
            "type": "string"
          },
          "outcome": {
            "enum": ["applied", "blocked", "discarded"],
            "title": "Outcome",
            "type": "string"
          },
          "schema_version": {
            "const": "4.17.0",
            "default": "4.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scoring": {
            "enum": ["not_scored", "scored", "pending_human_review", "blocked"],
            "title": "Scoring",
            "type": "string"
          },
          "side_effects": {
            "$ref": "#/components/schemas/ItemPreviewSideEffectReceipt"
          },
          "simulation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Simulation Sha256",
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/ItemPreviewDisposableState"
          }
        },
        "required": [
          "action",
          "outcome",
          "state",
          "scoring",
          "navigation",
          "accommodations",
          "offline",
          "side_effects",
          "simulation_sha256"
        ],
        "title": "ItemPreviewSimulationResult",
        "type": "object"
      },
      "ItemPreviewSyntheticIdentity": {
        "additionalProperties": false,
        "properties": {
          "attempt_authority": {
            "const": false,
            "default": false,
            "title": "Attempt Authority",
            "type": "boolean"
          },
          "calibration_authority": {
            "const": false,
            "default": false,
            "title": "Calibration Authority",
            "type": "boolean"
          },
          "display_name": {
            "const": "Synthetic preview participant",
            "default": "Synthetic preview participant",
            "title": "Display Name",
            "type": "string"
          },
          "enrollment_authority": {
            "const": false,
            "default": false,
            "title": "Enrollment Authority",
            "type": "boolean"
          },
          "event_authority": {
            "const": false,
            "default": false,
            "title": "Event Authority",
            "type": "boolean"
          },
          "exposure_authority": {
            "const": false,
            "default": false,
            "title": "Exposure Authority",
            "type": "boolean"
          },
          "grade_authority": {
            "const": false,
            "default": false,
            "title": "Grade Authority",
            "type": "boolean"
          },
          "identity_source": {
            "const": "generated_nonoperational",
            "default": "generated_nonoperational",
            "title": "Identity Source",
            "type": "string"
          },
          "learner": {
            "const": false,
            "default": false,
            "title": "Learner",
            "type": "boolean"
          },
          "operational": {
            "const": false,
            "default": false,
            "title": "Operational",
            "type": "boolean"
          },
          "role": {
            "const": "preview_nonlearner",
            "default": "preview_nonlearner",
            "title": "Role",
            "type": "string"
          },
          "subject_id": {
            "const": "preview-participant-00000000",
            "default": "preview-participant-00000000",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "title": "ItemPreviewSyntheticIdentity",
        "type": "object"
      },
      "ItemPreviewTextResponse": {
        "additionalProperties": false,
        "properties": {
          "files": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemPreviewLocalFile"
            },
            "maxItems": 20,
            "title": "Files",
            "type": "array"
          },
          "kind": {
            "const": "text",
            "default": "text",
            "title": "Kind",
            "type": "string"
          },
          "text": {
            "maxLength": 200000,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["text"],
        "title": "ItemPreviewTextResponse",
        "type": "object"
      },
      "ItemPreviewWriteIsolation": {
        "additionalProperties": false,
        "properties": {
          "browser_state": {
            "const": "bounded_parent_memory_only",
            "default": "bounded_parent_memory_only",
            "title": "Browser State",
            "type": "string"
          },
          "cookie_policy": {
            "const": "none",
            "default": "none",
            "title": "Cookie Policy",
            "type": "string"
          },
          "crash_policy": {
            "const": "discard",
            "default": "discard",
            "title": "Crash Policy",
            "type": "string"
          },
          "database_policy": {
            "const": "read_only_no_flush",
            "default": "read_only_no_flush",
            "title": "Database Policy",
            "type": "string"
          },
          "denied_sinks": {
            "default": [
              "attempts",
              "submissions",
              "grades",
              "gradebook",
              "events",
              "xapi",
              "caliper",
              "analytics",
              "integrity",
              "calibration",
              "exposure",
              "credentials",
              "lti",
              "notifications",
              "cookies",
              "local_storage",
              "indexed_db",
              "file_storage"
            ],
            "items": {
              "enum": [
                "attempts",
                "submissions",
                "grades",
                "gradebook",
                "events",
                "xapi",
                "caliper",
                "analytics",
                "integrity",
                "calibration",
                "exposure",
                "credentials",
                "lti",
                "notifications",
                "cookies",
                "local_storage",
                "indexed_db",
                "file_storage"
              ],
              "type": "string"
            },
            "title": "Denied Sinks",
            "type": "array"
          },
          "event_storage": {
            "const": "memory_only",
            "default": "memory_only",
            "title": "Event Storage",
            "type": "string"
          },
          "file_storage": {
            "const": "metadata_only_no_upload",
            "default": "metadata_only_no_upload",
            "title": "File Storage",
            "type": "string"
          },
          "integration_hooks": {
            "const": "none",
            "default": "none",
            "title": "Integration Hooks",
            "type": "string"
          },
          "mutation_transport": {
            "const": "preview_endpoints_only",
            "default": "preview_endpoints_only",
            "title": "Mutation Transport",
            "type": "string"
          },
          "refresh_policy": {
            "const": "discard",
            "default": "discard",
            "title": "Refresh Policy",
            "type": "string"
          },
          "response_storage": {
            "const": "memory_only",
            "default": "memory_only",
            "title": "Response Storage",
            "type": "string"
          },
          "timer_storage": {
            "const": "memory_only",
            "default": "memory_only",
            "title": "Timer Storage",
            "type": "string"
          }
        },
        "title": "ItemPreviewWriteIsolation",
        "type": "object"
      },
      "ItemPreviewWrittenResponseDocument": {
        "additionalProperties": false,
        "properties": {
          "family": {
            "const": "written_response",
            "default": "written_response",
            "title": "Family",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/WrittenResponseLearnerPreview"
          }
        },
        "required": ["payload"],
        "title": "ItemPreviewWrittenResponseDocument",
        "type": "object"
      },
      "ItemResponse": {
        "additionalProperties": false,
        "properties": {
          "is_correct": {
            "title": "Is Correct",
            "type": "boolean"
          },
          "is_key": {
            "title": "Is Key",
            "type": "boolean"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "option_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Option Id",
            "type": "string"
          },
          "seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Seconds",
            "type": "number"
          }
        },
        "required": ["item_id", "option_id", "is_key", "is_correct", "seconds"],
        "title": "ItemResponse",
        "type": "object"
      },
      "ItemRightsState": {
        "enum": ["unknown", "cleared", "restricted", "expired"],
        "title": "ItemRightsState",
        "type": "string"
      },
      "ItemSemanticDiff": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "content",
              "response",
              "protected",
              "accessibility",
              "measurement",
              "governance"
            ],
            "title": "Category",
            "type": "string"
          },
          "change": {
            "enum": ["unchanged", "added", "removed", "changed"],
            "title": "Change",
            "type": "string"
          },
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "field": {
            "enum": [
              "stem",
              "instructions",
              "sources",
              "objectives",
              "standards",
              "response",
              "options",
              "interaction",
              "scoring",
              "key",
              "rationales",
              "feedback",
              "hints",
              "exposure",
              "accessibility",
              "locales",
              "media",
              "estimates",
              "psychometrics",
              "gates_reviews",
              "use_impacts"
            ],
            "title": "Field",
            "type": "string"
          },
          "left": {
            "$ref": "#/components/schemas/ItemComparisonValue"
          },
          "right": {
            "$ref": "#/components/schemas/ItemComparisonValue"
          },
          "visibility": {
            "enum": ["author_visible", "protected_redacted", "operational"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": ["field", "category", "visibility", "change", "left", "right", "explanation"],
        "title": "ItemSemanticDiff",
        "type": "object"
      },
      "ItemVariantAcceptedRevision": {
        "additionalProperties": false,
        "properties": {
          "accepted_by": {
            "format": "uuid",
            "title": "Accepted By",
            "type": "string"
          },
          "attributed_model": {
            "title": "Attributed Model",
            "type": "string"
          },
          "attributed_provider": {
            "title": "Attributed Provider",
            "type": "string"
          },
          "bank_admission_state": {
            "const": "not_admitted",
            "default": "not_admitted",
            "title": "Bank Admission State",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/ItemVariantContent"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "human_edited": {
            "title": "Human Edited",
            "type": "boolean"
          },
          "item_id": {
            "format": "uuid",
            "title": "Item Id",
            "type": "string"
          },
          "revision": {
            "const": 1,
            "default": 1,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "source_draft_id": {
            "format": "uuid",
            "title": "Source Draft Id",
            "type": "string"
          },
          "source_proposal_id": {
            "title": "Source Proposal Id",
            "type": "string"
          },
          "source_revision": {
            "minimum": 1.0,
            "title": "Source Revision",
            "type": "integer"
          }
        },
        "required": [
          "item_id",
          "source_draft_id",
          "source_revision",
          "source_proposal_id",
          "attributed_provider",
          "attributed_model",
          "accepted_by",
          "human_edited",
          "content",
          "revision_sha256",
          "created_at"
        ],
        "title": "ItemVariantAcceptedRevision",
        "type": "object"
      },
      "ItemVariantAllowedKeyContext": {
        "additionalProperties": false,
        "description": "Server-authorized protected context; never accepted as a loose prompt field.",
        "properties": {
          "authorization_scope": {
            "const": "item-variant-generation",
            "title": "Authorization Scope",
            "type": "string"
          },
          "key": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "rationale": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "source_property_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Property Sha256",
            "type": "string"
          }
        },
        "required": ["key", "rationale", "authorization_scope", "source_property_sha256"],
        "title": "ItemVariantAllowedKeyContext",
        "type": "object"
      },
      "ItemVariantBudget": {
        "additionalProperties": false,
        "properties": {
          "confirmed": {
            "const": true,
            "title": "Confirmed",
            "type": "boolean"
          },
          "currency": {
            "const": "USD",
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "estimated_cost_minor_units": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Estimated Cost Minor Units",
            "type": "integer"
          },
          "maximum_cost_minor_units": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Maximum Cost Minor Units",
            "type": "integer"
          },
          "pricing_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Pricing Version",
            "type": "string"
          }
        },
        "required": [
          "estimated_cost_minor_units",
          "maximum_cost_minor_units",
          "pricing_version",
          "confirmed"
        ],
        "title": "ItemVariantBudget",
        "type": "object"
      },
      "ItemVariantContent": {
        "additionalProperties": false,
        "properties": {
          "accessibility_notes": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Accessibility Notes",
            "type": "string"
          },
          "difficulty": {
            "enum": ["easy", "medium", "hard", "unknown"],
            "title": "Difficulty",
            "type": "string"
          },
          "key": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Key"
          },
          "kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot",
              "assessment-kind:constructed-response",
              "assessment-kind:essay",
              "assessment-kind:math",
              "assessment-kind:code",
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction",
              "assessment-kind:portfolio",
              "assessment-kind:oral-performance",
              "assessment-kind:performance"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "response_specification": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Specification"
          },
          "scoring_specification": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scoring Specification"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "stem",
          "objective_ids",
          "difficulty",
          "locale",
          "accessibility_notes"
        ],
        "title": "ItemVariantContent",
        "type": "object"
      },
      "ItemVariantDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "edit", "reject"],
            "title": "Action",
            "type": "string"
          },
          "edited_content": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemVariantContent"
              },
              {
                "type": "null"
              }
            ]
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "action", "reason"],
        "title": "ItemVariantDecisionRequest",
        "type": "object"
      },
      "ItemVariantDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "accepted_revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemVariantAcceptedRevision"
              },
              {
                "type": "null"
              }
            ]
          },
          "decision": {
            "$ref": "#/components/schemas/ItemVariantDecisionSummary"
          },
          "proposal": {
            "$ref": "#/components/schemas/ItemVariantProposalResponse"
          },
          "schema_version": {
            "const": "4.3.0",
            "default": "4.3.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["proposal", "decision"],
        "title": "ItemVariantDecisionResponse",
        "type": "object"
      },
      "ItemVariantDecisionSummary": {
        "additionalProperties": false,
        "properties": {
          "accepted_item_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted Item Id"
          },
          "accepted_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted Revision"
          },
          "accepted_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted Revision Sha256"
          },
          "action": {
            "enum": ["accept", "edit", "reject"],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "bank_admission_state": {
            "anyOf": [
              {
                "const": "not_admitted",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Admission State"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^item-variant-decision-[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "human_edited": {
            "title": "Human Edited",
            "type": "boolean"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "action",
          "actor_id",
          "actor_role",
          "reason",
          "human_edited",
          "created_at",
          "decision_sha256"
        ],
        "title": "ItemVariantDecisionSummary",
        "type": "object"
      },
      "ItemVariantDiversitySpec": {
        "additionalProperties": false,
        "properties": {
          "guidance": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Guidance",
            "type": "string"
          },
          "label": {
            "maxLength": 160,
            "minLength": 3,
            "title": "Label",
            "type": "string"
          }
        },
        "required": ["label", "guidance"],
        "title": "ItemVariantDiversitySpec",
        "type": "object"
      },
      "ItemVariantInvariants": {
        "additionalProperties": false,
        "properties": {
          "preserve_key_semantics": {
            "const": true,
            "default": true,
            "title": "Preserve Key Semantics",
            "type": "boolean"
          },
          "preserve_kind": {
            "const": true,
            "default": true,
            "title": "Preserve Kind",
            "type": "boolean"
          },
          "preserve_objectives": {
            "const": true,
            "default": true,
            "title": "Preserve Objectives",
            "type": "boolean"
          },
          "preserve_scoring_model": {
            "default": true,
            "title": "Preserve Scoring Model",
            "type": "boolean"
          },
          "preserve_sources": {
            "default": true,
            "title": "Preserve Sources",
            "type": "boolean"
          }
        },
        "title": "ItemVariantInvariants",
        "type": "object"
      },
      "ItemVariantPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "estimated_cost_minor_units": {
            "minimum": 0.0,
            "title": "Estimated Cost Minor Units",
            "type": "integer"
          },
          "estimated_cost_minor_units_per_variant": {
            "minimum": 0.0,
            "title": "Estimated Cost Minor Units Per Variant",
            "type": "integer"
          },
          "estimated_input_tokens": {
            "minimum": 0.0,
            "title": "Estimated Input Tokens",
            "type": "integer"
          },
          "estimated_output_tokens_per_variant": {
            "minimum": 1.0,
            "title": "Estimated Output Tokens Per Variant",
            "type": "integer"
          },
          "estimated_variant_count": {
            "maximum": 6.0,
            "minimum": 1.0,
            "title": "Estimated Variant Count",
            "type": "integer"
          },
          "pricing_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Pricing Version",
            "type": "string"
          },
          "provider_configured": {
            "title": "Provider Configured",
            "type": "boolean"
          },
          "schema_version": {
            "const": "4.3.0",
            "default": "4.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ItemVariantSourceSnapshot"
          }
        },
        "required": [
          "source",
          "estimated_variant_count",
          "estimated_input_tokens",
          "estimated_output_tokens_per_variant",
          "estimated_cost_minor_units",
          "estimated_cost_minor_units_per_variant",
          "pricing_version",
          "provider_configured"
        ],
        "title": "ItemVariantPreparationResponse",
        "type": "object"
      },
      "ItemVariantProposalResponse": {
        "additionalProperties": false,
        "properties": {
          "candidate": {
            "$ref": "#/components/schemas/ItemVariantProviderCandidate"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemVariantDecisionSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "maximum_source_similarity": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Maximum Source Similarity",
            "type": "number"
          },
          "ordinal": {
            "maximum": 6.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "proposal_id": {
            "pattern": "^item-variant-proposal-[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Proposal Sha256",
            "type": "string"
          },
          "review_status": {
            "enum": [
              "proposed",
              "not_configured",
              "unavailable",
              "refused",
              "malformed",
              "timeout",
              "partial",
              "moderation_blocked",
              "budget_exceeded",
              "accepted",
              "edited",
              "rejected"
            ],
            "title": "Review Status",
            "type": "string"
          },
          "source_similarity": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Source Similarity",
            "type": "number"
          }
        },
        "required": [
          "proposal_id",
          "ordinal",
          "review_status",
          "candidate",
          "source_similarity",
          "maximum_source_similarity",
          "proposal_sha256",
          "created_at"
        ],
        "title": "ItemVariantProposalResponse",
        "type": "object"
      },
      "ItemVariantProviderCandidate": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/ItemVariantContent"
          },
          "diversity_label": {
            "maxLength": 160,
            "minLength": 3,
            "title": "Diversity Label",
            "type": "string"
          },
          "moderation_message": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Moderation Message"
          },
          "moderation_state": {
            "enum": ["passed", "blocked"],
            "title": "Moderation State",
            "type": "string"
          },
          "rationale_for_change": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale For Change",
            "type": "string"
          },
          "transformations": {
            "items": {
              "enum": [
                "parallel_form",
                "difficulty_shift",
                "locale_adaptation",
                "accessibility_alternative",
                "context_shift"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Transformations",
            "type": "array"
          }
        },
        "required": [
          "diversity_label",
          "transformations",
          "content",
          "rationale_for_change",
          "moderation_state"
        ],
        "title": "ItemVariantProviderCandidate",
        "type": "object"
      },
      "ItemVariantProviderInvocation": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "cost_minor_units": {
            "default": 0,
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "currency": {
            "const": "USD",
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "invocation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Invocation Sha256",
            "type": "string"
          },
          "max_output_tokens": {
            "maximum": 32000.0,
            "minimum": 1.0,
            "title": "Max Output Tokens",
            "type": "integer"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "outcome": {
            "enum": [
              "completed",
              "not_configured",
              "unavailable",
              "refused",
              "malformed",
              "timeout",
              "partial",
              "moderation_blocked",
              "budget_exceeded"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "outcome_message": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome Message"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "pricing_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Pricing Version",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "provider_sort": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Sort"
          },
          "reasoning": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reasoning"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "response_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Sha256"
          },
          "served_model": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Model"
          },
          "served_provider": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Provider"
          },
          "tool_access": {
            "const": false,
            "default": false,
            "title": "Tool Access",
            "type": "boolean"
          },
          "trust_labels": {
            "items": {
              "$ref": "#/components/schemas/ItemVariantTrustLabel"
            },
            "title": "Trust Labels",
            "type": "array"
          },
          "trust_renderer_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Trust Renderer Version",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "config_sha256",
          "trust_renderer_version",
          "prompt_sha256",
          "request_sha256",
          "outcome",
          "pricing_version",
          "max_output_tokens",
          "trust_labels",
          "invocation_sha256"
        ],
        "title": "ItemVariantProviderInvocation",
        "type": "object"
      },
      "ItemVariantSetRequest": {
        "additionalProperties": false,
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/ItemVariantBudget"
          },
          "count": {
            "maximum": 6.0,
            "minimum": 1.0,
            "title": "Count",
            "type": "integer"
          },
          "diversity": {
            "items": {
              "$ref": "#/components/schemas/ItemVariantDiversitySpec"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Diversity",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "instructions": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instructions"
          },
          "invariants": {
            "$ref": "#/components/schemas/ItemVariantInvariants"
          },
          "maximum_pairwise_similarity": {
            "default": 0.82,
            "maximum": 0.98,
            "minimum": 0.2,
            "title": "Maximum Pairwise Similarity",
            "type": "number"
          },
          "maximum_source_similarity": {
            "default": 0.88,
            "maximum": 0.98,
            "minimum": 0.2,
            "title": "Maximum Source Similarity",
            "type": "number"
          },
          "schema_version": {
            "const": "4.3.0",
            "default": "4.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ItemVariantSourceSnapshot"
          },
          "target_difficulty": {
            "anyOf": [
              {
                "enum": ["easy", "medium", "hard", "unknown"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Difficulty"
          },
          "target_locales": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "title": "Target Locales",
            "type": "array"
          },
          "transformations": {
            "items": {
              "enum": [
                "parallel_form",
                "difficulty_shift",
                "locale_adaptation",
                "accessibility_alternative",
                "context_shift"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Transformations",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "source",
          "transformations",
          "count",
          "diversity",
          "budget"
        ],
        "title": "ItemVariantSetRequest",
        "type": "object"
      },
      "ItemVariantSetResponse": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "invocation": {
            "$ref": "#/components/schemas/ItemVariantProviderInvocation"
          },
          "proposals": {
            "items": {
              "$ref": "#/components/schemas/ItemVariantProposalResponse"
            },
            "title": "Proposals",
            "type": "array"
          },
          "request": {
            "$ref": "#/components/schemas/ItemVariantSetRequest"
          },
          "review_status": {
            "enum": [
              "proposed",
              "not_configured",
              "unavailable",
              "refused",
              "malformed",
              "timeout",
              "partial",
              "moderation_blocked",
              "budget_exceeded",
              "accepted",
              "edited",
              "rejected"
            ],
            "title": "Review Status",
            "type": "string"
          },
          "schema_version": {
            "const": "4.3.0",
            "default": "4.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "set_id": {
            "pattern": "^item-variant-set-[a-f0-9]{40}$",
            "title": "Set Id",
            "type": "string"
          },
          "set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Set Sha256",
            "type": "string"
          }
        },
        "required": [
          "set_id",
          "draft_id",
          "request",
          "invocation",
          "review_status",
          "proposals",
          "set_sha256",
          "created_at"
        ],
        "title": "ItemVariantSetResponse",
        "type": "object"
      },
      "ItemVariantSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "accessibility_notes": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accessibility Notes"
          },
          "allowed_key_context": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ItemVariantAllowedKeyContext"
              },
              {
                "type": "null"
              }
            ]
          },
          "difficulty": {
            "enum": ["easy", "medium", "hard", "unknown"],
            "title": "Difficulty",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "excluded_context": {
            "items": {
              "enum": [
                "learner_data",
                "integrity_telemetry",
                "unrelated_item_bank",
                "credentials",
                "tools"
              ],
              "type": "string"
            },
            "title": "Excluded Context",
            "type": "array"
          },
          "kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot",
              "assessment-kind:constructed-response",
              "assessment-kind:essay",
              "assessment-kind:math",
              "assessment-kind:code",
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction",
              "assessment-kind:portfolio",
              "assessment-kind:oral-performance",
              "assessment-kind:performance"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "response_specification": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Specification"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.3.0",
            "default": "4.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scoring_specification": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scoring Specification"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "revision",
          "revision_sha256",
          "kind",
          "stem",
          "objective_ids",
          "difficulty",
          "locale",
          "excluded_context",
          "source_sha256"
        ],
        "title": "ItemVariantSourceSnapshot",
        "type": "object"
      },
      "ItemVariantTrustLabel": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "instruction_semantics": {
            "const": "non-instruction",
            "default": "non-instruction",
            "title": "Instruction Semantics",
            "type": "string"
          },
          "label_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Label Id",
            "type": "string"
          },
          "origin": {
            "enum": ["source_item", "constraints", "educator_instructions"],
            "title": "Origin",
            "type": "string"
          },
          "original_chars": {
            "minimum": 0.0,
            "title": "Original Chars",
            "type": "integer"
          },
          "rendered_chars": {
            "minimum": 0.0,
            "title": "Rendered Chars",
            "type": "integer"
          },
          "rendered_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendered Content Sha256",
            "type": "string"
          },
          "truncated": {
            "title": "Truncated",
            "type": "boolean"
          },
          "trust": {
            "const": "untrusted",
            "default": "untrusted",
            "title": "Trust",
            "type": "string"
          }
        },
        "required": [
          "label_id",
          "origin",
          "content_sha256",
          "rendered_content_sha256",
          "original_chars",
          "rendered_chars",
          "truncated"
        ],
        "title": "ItemVariantTrustLabel",
        "type": "object"
      },
      "JobQueueStatusResponse": {
        "properties": {
          "completed": {
            "minimum": 0.0,
            "title": "Completed",
            "type": "integer"
          },
          "failed": {
            "minimum": 0.0,
            "title": "Failed",
            "type": "integer"
          },
          "pending": {
            "minimum": 0.0,
            "title": "Pending",
            "type": "integer"
          },
          "processing": {
            "minimum": 0.0,
            "title": "Processing",
            "type": "integer"
          },
          "processing_rate": {
            "minimum": 0.0,
            "title": "Processing Rate",
            "type": "integer"
          }
        },
        "required": ["pending", "processing", "completed", "failed", "processing_rate"],
        "title": "JobQueueStatusResponse",
        "type": "object"
      },
      "JourneyResult": {
        "additionalProperties": false,
        "properties": {
          "consequence_fields_present": {
            "minimum": 0.0,
            "title": "Consequence Fields Present",
            "type": "integer"
          },
          "final_state": {
            "anyOf": [
              {
                "enum": [
                  "new",
                  "under_review",
                  "evidence_requested",
                  "dismissed",
                  "escalated",
                  "case_opened"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Final State"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "scenario": {
            "enum": [
              "positive",
              "false_positive",
              "conflicting",
              "insufficient",
              "appealed",
              "cross_tenant"
            ],
            "title": "Scenario",
            "type": "string"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/JourneyStep"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Steps",
            "type": "array"
          }
        },
        "required": ["scenario", "steps", "final_state", "refused", "consequence_fields_present"],
        "title": "JourneyResult",
        "type": "object"
      },
      "JourneyStep": {
        "additionalProperties": false,
        "properties": {
          "outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Outcome",
            "type": "string"
          },
          "state_after": {
            "anyOf": [
              {
                "enum": [
                  "new",
                  "under_review",
                  "evidence_requested",
                  "dismissed",
                  "escalated",
                  "case_opened"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State After"
          },
          "step": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Step",
            "type": "string"
          }
        },
        "required": ["step", "outcome"],
        "title": "JourneyStep",
        "type": "object"
      },
      "JsonValue": {},
      "KeyDesign": {
        "additionalProperties": false,
        "description": "The tenant-scoped key, and how sure the deriver is about it.",
        "properties": {
          "alternatives": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Alternatives",
            "type": "array"
          },
          "confidence": {
            "enum": ["unambiguous", "ambiguous", "ratified"],
            "title": "Confidence",
            "type": "string"
          },
          "logical_id_column": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Logical Id Column",
            "type": "string"
          },
          "revision_column": {
            "anyOf": [
              {
                "const": "revision",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revision Column"
          },
          "tenant_column": {
            "const": "tenant_id",
            "default": "tenant_id",
            "title": "Tenant Column",
            "type": "string"
          }
        },
        "required": ["logical_id_column", "confidence"],
        "title": "KeyDesign",
        "type": "object"
      },
      "KillOrder": {
        "additionalProperties": false,
        "description": "An order to stop using a model. Immediate, scoped, and never silent.",
        "properties": {
          "blast_radius": {
            "$ref": "#/components/schemas/BlastRadius"
          },
          "fallback": {
            "const": "not_configured",
            "default": "not_configured",
            "title": "Fallback",
            "type": "string"
          },
          "in_flight": {
            "enum": ["drain", "abort"],
            "title": "In Flight",
            "type": "string"
          },
          "order_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Order Id",
            "type": "string"
          },
          "ordered_at": {
            "format": "date-time",
            "title": "Ordered At",
            "type": "string"
          },
          "ordered_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Ordered By Digest",
            "type": "string"
          },
          "ordered_by_role": {
            "enum": ["operator", "security", "safety"],
            "title": "Ordered By Role",
            "type": "string"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "revoke_credential": {
            "title": "Revoke Credential",
            "type": "boolean"
          },
          "scope": {
            "enum": ["candidate", "tenant", "provider", "platform"],
            "title": "Scope",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": [
          "order_id",
          "scope",
          "target_id",
          "ordered_by_digest",
          "ordered_by_role",
          "ordered_at",
          "reason",
          "in_flight",
          "revoke_credential",
          "blast_radius"
        ],
        "title": "KillOrder",
        "type": "object"
      },
      "LabDataRecord": {
        "additionalProperties": false,
        "properties": {
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          },
          "variable": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Variable",
            "type": "string"
          }
        },
        "required": ["variable", "value", "unit"],
        "title": "LabDataRecord",
        "type": "object"
      },
      "LabFieldEvidenceArtifact": {
        "additionalProperties": false,
        "properties": {
          "analysis": {
            "maxLength": 12000,
            "minLength": 1,
            "title": "Analysis",
            "type": "string"
          },
          "artifact_kind": {
            "const": "lab_field_evidence",
            "default": "lab_field_evidence",
            "title": "Artifact Kind",
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/LabDataRecord"
            },
            "minItems": 1,
            "title": "Data",
            "type": "array"
          },
          "ethics_controls": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Ethics Controls",
            "type": "array"
          },
          "materials": {
            "items": {
              "$ref": "#/components/schemas/LabMaterial"
            },
            "minItems": 1,
            "title": "Materials",
            "type": "array"
          },
          "method": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Method",
            "type": "array"
          },
          "observations": {
            "items": {
              "$ref": "#/components/schemas/LabObservation"
            },
            "minItems": 1,
            "title": "Observations",
            "type": "array"
          },
          "question": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Question",
            "type": "string"
          },
          "reproducibility": {
            "$ref": "#/components/schemas/ReproducibilityEvidence"
          },
          "safety_controls": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Safety Controls",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "question",
          "method",
          "materials",
          "safety_controls",
          "ethics_controls",
          "observations",
          "data",
          "uncertainty",
          "analysis",
          "reproducibility"
        ],
        "title": "LabFieldEvidenceArtifact",
        "type": "object"
      },
      "LabMaterial": {
        "additionalProperties": false,
        "properties": {
          "hazard_notes": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Hazard Notes",
            "type": "string"
          },
          "name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "quantity": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Quantity",
            "type": "string"
          }
        },
        "required": ["name", "quantity", "hazard_notes"],
        "title": "LabMaterial",
        "type": "object"
      },
      "LabObservation": {
        "additionalProperties": false,
        "properties": {
          "observation": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Observation",
            "type": "string"
          },
          "observed_at": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Observed At",
            "type": "string"
          },
          "observer": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observer",
            "type": "string"
          }
        },
        "required": ["observed_at", "observer", "observation"],
        "title": "LabObservation",
        "type": "object"
      },
      "Label": {
        "additionalProperties": false,
        "description": "What this entry is called in one locale.",
        "properties": {
          "locale": {
            "maxLength": 16,
            "minLength": 2,
            "pattern": "^[a-z]{2}(-[A-Za-z0-9]{2,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "text": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["locale", "text"],
        "title": "Label",
        "type": "object"
      },
      "LabelWeight": {
        "additionalProperties": false,
        "properties": {
          "evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Evaluator Ids",
            "type": "array"
          },
          "label": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["label", "weight_basis_points", "evaluator_ids"],
        "title": "LabelWeight",
        "type": "object"
      },
      "LanguageAccessibilityEvidence": {
        "additionalProperties": false,
        "properties": {
          "accommodation_notes": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Accommodation Notes",
            "type": "array"
          },
          "captions_reviewed": {
            "title": "Captions Reviewed",
            "type": "boolean"
          },
          "non_audio_alternative": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Non Audio Alternative",
            "type": "string"
          },
          "transcript_reviewed": {
            "title": "Transcript Reviewed",
            "type": "boolean"
          }
        },
        "required": [
          "transcript_reviewed",
          "captions_reviewed",
          "non_audio_alternative",
          "accommodation_notes"
        ],
        "title": "LanguageAccessibilityEvidence",
        "type": "object"
      },
      "LanguageAssessorEvidence": {
        "additionalProperties": false,
        "properties": {
          "assessor_role": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Assessor Role",
            "type": "string"
          },
          "calibration_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Calibration Version",
            "type": "string"
          },
          "moderation_required": {
            "title": "Moderation Required",
            "type": "boolean"
          }
        },
        "required": ["assessor_role", "calibration_version", "moderation_required"],
        "title": "LanguageAssessorEvidence",
        "type": "object"
      },
      "LanguageConsentEvidence": {
        "additionalProperties": false,
        "properties": {
          "consent_status": {
            "enum": ["granted", "withdrawn", "not_required"],
            "title": "Consent Status",
            "type": "string"
          },
          "evidence_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Uri",
            "type": "string"
          },
          "retention_policy": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Retention Policy",
            "type": "string"
          }
        },
        "required": ["consent_status", "evidence_uri", "retention_policy"],
        "title": "LanguageConsentEvidence",
        "type": "object"
      },
      "LanguagePerformanceArtifact": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LanguageAccessibilityEvidence"
          },
          "artifact_kind": {
            "const": "language_performance",
            "default": "language_performance",
            "title": "Artifact Kind",
            "type": "string"
          },
          "assessor": {
            "$ref": "#/components/schemas/LanguageAssessorEvidence"
          },
          "consent": {
            "$ref": "#/components/schemas/LanguageConsentEvidence"
          },
          "context": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Context",
            "type": "string"
          },
          "language": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Language",
            "type": "string"
          },
          "prompt": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Prompt",
            "type": "string"
          },
          "recording": {
            "$ref": "#/components/schemas/LanguageRecordingEvidence"
          },
          "rubric": {
            "$ref": "#/components/schemas/LanguageRubricEvidence"
          },
          "skills": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Skills",
            "type": "array"
          }
        },
        "required": [
          "prompt",
          "context",
          "language",
          "skills",
          "recording",
          "consent",
          "rubric",
          "assessor",
          "accessibility"
        ],
        "title": "LanguagePerformanceArtifact",
        "type": "object"
      },
      "LanguageRecordingEvidence": {
        "additionalProperties": false,
        "properties": {
          "captions_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Captions Uri",
            "type": "string"
          },
          "duration_seconds": {
            "maximum": 86400.0,
            "minimum": 1.0,
            "title": "Duration Seconds",
            "type": "integer"
          },
          "media_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Media Sha256",
            "type": "string"
          },
          "media_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Media Uri",
            "type": "string"
          },
          "transcript": {
            "maxLength": 30000,
            "minLength": 1,
            "title": "Transcript",
            "type": "string"
          }
        },
        "required": ["media_uri", "media_sha256", "duration_seconds", "transcript", "captions_uri"],
        "title": "LanguageRecordingEvidence",
        "type": "object"
      },
      "LanguageRubricEvidence": {
        "additionalProperties": false,
        "properties": {
          "criteria": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "rubric_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Rubric Version",
            "type": "string"
          }
        },
        "required": ["rubric_id", "rubric_version", "criteria"],
        "title": "LanguageRubricEvidence",
        "type": "object"
      },
      "LatencyBudgetSpec": {
        "additionalProperties": false,
        "properties": {
          "ratified_at": {
            "format": "date-time",
            "title": "Ratified At",
            "type": "string"
          },
          "ratified_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Ratified By",
            "type": "string"
          },
          "spec_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Spec Id",
            "type": "string"
          },
          "spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Spec Sha256",
            "type": "string"
          },
          "spec_version": {
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$",
            "title": "Spec Version",
            "type": "string"
          },
          "stages": {
            "items": {
              "$ref": "#/components/schemas/StageBudget"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Stages",
            "type": "array"
          },
          "tiers": {
            "items": {
              "$ref": "#/components/schemas/TierBudget"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Tiers",
            "type": "array"
          }
        },
        "required": [
          "spec_id",
          "spec_version",
          "spec_sha256",
          "ratified_by",
          "ratified_at",
          "tiers",
          "stages"
        ],
        "title": "LatencyBudgetSpec",
        "type": "object"
      },
      "LatencyCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "budget_spec",
              "instrumentation",
              "bounded_runtime",
              "measured_profile",
              "health_gate"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "LatencyCorpusMetric",
        "type": "object"
      },
      "LatencyEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "clock": {
            "const": "time.perf_counter_ns",
            "title": "Clock",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-adaptive-latency-budget",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.6.0",
            "title": "Engine Version",
            "type": "string"
          },
          "gate_method": {
            "const": "measured-profile-against-ratified-budget-v1",
            "title": "Gate Method",
            "type": "string"
          },
          "percentile_method": {
            "const": "nearest-rank-percentile-over-recorded-microseconds-v1",
            "title": "Percentile Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.6.0",
            "default": "6.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/LatencyToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_the_gate_when_a_measurement_is_missing",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "percentile_method",
          "gate_method",
          "clock",
          "tools",
          "rules_sha256",
          "unsupported_behavior"
        ],
        "title": "LatencyEngineWitness",
        "type": "object"
      },
      "LatencyEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "LatencyEvaluationCaseResult",
        "type": "object"
      },
      "LatencyEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/LatencyEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.6-adaptive-latency-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "live": {
            "$ref": "#/components/schemas/LiveMeasurement"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/LatencyCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "live",
          "limitations"
        ],
        "title": "LatencyEvaluationReport",
        "type": "object"
      },
      "LatencyProfile": {
        "additionalProperties": false,
        "properties": {
          "cold_cache": {
            "title": "Cold Cache",
            "type": "boolean"
          },
          "concurrency": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Concurrency",
            "type": "integer"
          },
          "end_to_end_error_rate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "End To End Error Rate Basis Points",
            "type": "integer"
          },
          "measured_at": {
            "format": "date-time",
            "title": "Measured At",
            "type": "string"
          },
          "method": {
            "const": "nearest-rank-percentile-over-recorded-microseconds-v1",
            "title": "Method",
            "type": "string"
          },
          "profile_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Profile Id",
            "type": "string"
          },
          "stages": {
            "items": {
              "$ref": "#/components/schemas/StageProfile"
            },
            "maxItems": 5,
            "title": "Stages",
            "type": "array"
          },
          "tiers": {
            "items": {
              "$ref": "#/components/schemas/TierProfile"
            },
            "maxItems": 4,
            "title": "Tiers",
            "type": "array"
          },
          "total_samples": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Total Samples",
            "type": "integer"
          }
        },
        "required": [
          "profile_id",
          "method",
          "measured_at",
          "concurrency",
          "cold_cache",
          "total_samples",
          "tiers",
          "stages",
          "end_to_end_error_rate_basis_points"
        ],
        "title": "LatencyProfile",
        "type": "object"
      },
      "LatencySample": {
        "additionalProperties": false,
        "description": "One recorded next-item decision. The gate reads these and nothing else.",
        "properties": {
          "stage_durations": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "enum": [
                    "context_receipt",
                    "eligibility",
                    "model_panel",
                    "selection",
                    "render_handoff"
                  ],
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 5,
            "title": "Stage Durations",
            "type": "array"
          },
          "state": {
            "enum": ["served", "served_degraded", "unavailable"],
            "title": "State",
            "type": "string"
          },
          "tier": {
            "enum": ["desktop_broadband", "laptop_wifi", "tablet_4g", "phone_3g"],
            "title": "Tier",
            "type": "string"
          },
          "total_duration_micros": {
            "maximum": 60000000.0,
            "minimum": 0.0,
            "title": "Total Duration Micros",
            "type": "integer"
          }
        },
        "required": ["tier", "total_duration_micros", "state", "stage_durations"],
        "title": "LatencySample",
        "type": "object"
      },
      "LatencyToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "LatencyToolWitness",
        "type": "object"
      },
      "LatencyWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "assessments": {
            "minimum": 0.0,
            "title": "Assessments",
            "type": "integer"
          },
          "budget_breached": {
            "minimum": 0.0,
            "title": "Budget Breached",
            "type": "integer"
          },
          "compliance_asserted_from_documentation": {
            "const": 0,
            "default": 0,
            "title": "Compliance Asserted From Documentation",
            "type": "integer"
          },
          "measurement_missing": {
            "minimum": 0.0,
            "title": "Measurement Missing",
            "type": "integer"
          },
          "passing": {
            "minimum": 0.0,
            "title": "Passing",
            "type": "integer"
          },
          "samples_evaluated": {
            "minimum": 0.0,
            "title": "Samples Evaluated",
            "type": "integer"
          }
        },
        "required": [
          "assessments",
          "passing",
          "budget_breached",
          "measurement_missing",
          "samples_evaluated"
        ],
        "title": "LatencyWorkspaceSummary",
        "type": "object"
      },
      "LatticePropertyResult": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "minimum": 1.0,
            "title": "Cases",
            "type": "integer"
          },
          "holds": {
            "title": "Holds",
            "type": "boolean"
          },
          "law": {
            "enum": [
              "idempotent",
              "commutative",
              "associative",
              "meet_is_a_lower_bound",
              "decision_monotone",
              "protected_floor_preserved"
            ],
            "title": "Law",
            "type": "string"
          },
          "violations": {
            "minimum": 0.0,
            "title": "Violations",
            "type": "integer"
          }
        },
        "required": ["law", "cases", "violations", "holds"],
        "title": "LatticePropertyResult",
        "type": "object"
      },
      "LayoutResult": {
        "additionalProperties": false,
        "description": "A whole layout, and enough to explain why it looks like that.",
        "properties": {
          "algorithm": {
            "enum": ["layered", "alphabetical_grid", "kind_columns"],
            "title": "Algorithm",
            "type": "string"
          },
          "over_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Over Sha256",
            "type": "string"
          },
          "placements": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Placement"
            },
            "maxItems": 5000,
            "title": "Placements",
            "type": "array"
          },
          "schema_version": {
            "const": "9.5.1",
            "default": "9.5.1",
            "title": "Schema Version",
            "type": "string"
          },
          "unplaced": {
            "default": [],
            "items": {
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 5000,
            "title": "Unplaced",
            "type": "array"
          }
        },
        "required": ["algorithm", "over_sha256"],
        "title": "LayoutResult",
        "type": "object"
      },
      "LeakageCoverageEntry": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "enum": [
              "ui",
              "api",
              "renderer",
              "search",
              "cache",
              "event",
              "analytics",
              "export",
              "qti",
              "lti",
              "scorm",
              "xapi",
              "course_package",
              "preview",
              "deep_link",
              "url",
              "client_bundle",
              "client_state",
              "error",
              "log",
              "trace",
              "support_export"
            ],
            "title": "Channel",
            "type": "string"
          },
          "notes": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Notes",
            "type": "array"
          },
          "required_roles": {
            "items": {
              "enum": ["learner", "anonymous"],
              "type": "string"
            },
            "maxItems": 2,
            "minItems": 1,
            "title": "Required Roles",
            "type": "array"
          },
          "required_scanners": {
            "items": {
              "enum": [
                "builtin_text",
                "ocr",
                "asr",
                "transcript",
                "caption",
                "document_parser",
                "code_static",
                "runtime_capture",
                "interactive_state",
                "metadata",
                "package_unpack",
                "client_bundle",
                "client_state",
                "url_decode"
              ],
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Required Scanners",
            "type": "array"
          },
          "required_surface_kinds": {
            "items": {
              "enum": [
                "stem",
                "option",
                "learner_feedback",
                "hint",
                "metadata",
                "filename",
                "identifier",
                "accessibility_text",
                "image_pixels",
                "audio",
                "transcript",
                "caption",
                "description",
                "document",
                "code",
                "runtime_output",
                "interactive_state",
                "hidden_metadata",
                "package_payload",
                "client_bundle",
                "client_state",
                "error_message",
                "log_entry",
                "trace_payload",
                "url",
                "support_payload"
              ],
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Required Surface Kinds",
            "type": "array"
          }
        },
        "required": [
          "channel",
          "required_surface_kinds",
          "required_roles",
          "required_scanners",
          "notes"
        ],
        "title": "LeakageCoverageEntry",
        "type": "object"
      },
      "LeakageEncryptionEvidence": {
        "additionalProperties": false,
        "properties": {
          "algorithm": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Algorithm",
            "type": "string"
          },
          "ciphertext_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Ciphertext Sha256",
            "type": "string"
          },
          "client_can_decrypt": {
            "title": "Client Can Decrypt",
            "type": "boolean"
          },
          "client_decryption_key_present": {
            "title": "Client Decryption Key Present",
            "type": "boolean"
          },
          "decrypted_observation_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decrypted Observation Id"
          }
        },
        "required": [
          "algorithm",
          "ciphertext_sha256",
          "client_decryption_key_present",
          "client_can_decrypt"
        ],
        "title": "LeakageEncryptionEvidence",
        "type": "object"
      },
      "LeakagePresentationCase": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "pattern": "^leakage-presentation:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "client_decryption_material_present": {
            "title": "Client Decryption Material Present",
            "type": "boolean"
          },
          "encrypted_transport": {
            "title": "Encrypted Transport",
            "type": "boolean"
          },
          "evidence_artifact_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Artifact Ids",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "presented_option_ids": {
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Presented Option Ids",
            "type": "array"
          },
          "randomization_seed": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Randomization Seed",
            "type": "string"
          },
          "role": {
            "enum": ["learner", "anonymous"],
            "title": "Role",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "case_id",
          "locale",
          "role",
          "randomization_seed",
          "presented_option_ids",
          "encrypted_transport",
          "client_decryption_material_present",
          "evidence_artifact_ids",
          "uncertainty"
        ],
        "title": "LeakagePresentationCase",
        "type": "object"
      },
      "LeakageProtectedMaterialDescriptor": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": [
              "key_option_identity",
              "key_option_text",
              "correct_rationale",
              "distractor_rationale",
              "misconception",
              "response_rule",
              "test_field"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "anyOf": [
              {
                "maxLength": 63,
                "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale"
          },
          "normalized_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Normalized Sha256",
            "type": "string"
          },
          "protected_id": {
            "pattern": "^protected-answer:[a-f0-9]{40}$",
            "title": "Protected Id",
            "type": "string"
          },
          "secret_value_retained": {
            "const": false,
            "default": false,
            "title": "Secret Value Retained",
            "type": "boolean"
          },
          "source_option_id": {
            "anyOf": [
              {
                "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Option Id"
          },
          "value_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Value Sha256",
            "type": "string"
          }
        },
        "required": ["protected_id", "kind", "value_sha256", "normalized_sha256"],
        "title": "LeakageProtectedMaterialDescriptor",
        "type": "object"
      },
      "LeakageScannerObservation": {
        "additionalProperties": false,
        "properties": {
          "applicability_rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Applicability Rationale"
          },
          "configured_timeout_ms": {
            "maximum": 600000.0,
            "minimum": 1.0,
            "title": "Configured Timeout Ms",
            "type": "integer"
          },
          "elapsed_ms": {
            "maximum": 600000.0,
            "minimum": 0.0,
            "title": "Elapsed Ms",
            "type": "integer"
          },
          "error_code": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "extracted_text": {
            "default": "",
            "maxLength": 2000000,
            "title": "Extracted Text",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "observation_id": {
            "pattern": "^leakage-observation:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Observation Id",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "timeout", "error", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "scanner_kind": {
            "enum": [
              "builtin_text",
              "ocr",
              "asr",
              "transcript",
              "caption",
              "document_parser",
              "code_static",
              "runtime_capture",
              "interactive_state",
              "metadata",
              "package_unpack",
              "client_bundle",
              "client_state",
              "url_decode"
            ],
            "title": "Scanner Kind",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "observation_id",
          "scanner_kind",
          "method_id",
          "method_version",
          "method_sha256",
          "outcome",
          "configured_timeout_ms",
          "elapsed_ms",
          "uncertainty"
        ],
        "title": "LeakageScannerObservation",
        "type": "object"
      },
      "LearnerAccessibility": {
        "additionalProperties": false,
        "properties": {
          "alternative_text": {
            "title": "Alternative Text",
            "type": "string"
          },
          "audio_description": {
            "$ref": "#/components/schemas/LearnerAlternativeProvision"
          },
          "captions": {
            "$ref": "#/components/schemas/LearnerAlternativeProvision"
          },
          "keyboard_path": {
            "items": {
              "type": "string"
            },
            "title": "Keyboard Path",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "long_description": {
            "$ref": "#/components/schemas/LearnerAlternativeProvision"
          },
          "noninteractive_equivalent": {
            "title": "Noninteractive Equivalent",
            "type": "string"
          },
          "reduced_motion_equivalent": {
            "const": true,
            "default": true,
            "title": "Reduced Motion Equivalent",
            "type": "boolean"
          },
          "screen_reader_review_required": {
            "const": true,
            "default": true,
            "title": "Screen Reader Review Required",
            "type": "boolean"
          },
          "sign_language": {
            "$ref": "#/components/schemas/LearnerAlternativeProvision"
          },
          "support_requirements": {
            "items": {
              "type": "string"
            },
            "title": "Support Requirements",
            "type": "array"
          },
          "transcript": {
            "$ref": "#/components/schemas/LearnerAlternativeProvision"
          }
        },
        "required": [
          "locale",
          "alternative_text",
          "long_description",
          "transcript",
          "captions",
          "audio_description",
          "sign_language",
          "keyboard_path",
          "noninteractive_equivalent",
          "support_requirements"
        ],
        "title": "LearnerAccessibility",
        "type": "object"
      },
      "LearnerActionRequest": {
        "properties": {
          "action": {
            "enum": [
              "pause_progression",
              "resume_progression",
              "reset_course_progress",
              "request_study_history_review",
              "open_investigation",
              "resolve_investigation"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "default": "",
            "maxLength": 4000,
            "title": "Comment",
            "type": "string"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "investigation_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Investigation Id"
          },
          "source_entry_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Entry Ids",
            "type": "array"
          }
        },
        "required": ["action"],
        "title": "LearnerActionRequest",
        "type": "object"
      },
      "LearnerActionResponse": {
        "properties": {
          "detail": {
            "$ref": "#/components/schemas/ManagedUserDetailResponse"
          },
          "success": {
            "default": true,
            "title": "Success",
            "type": "boolean"
          }
        },
        "required": ["detail"],
        "title": "LearnerActionResponse",
        "type": "object"
      },
      "LearnerAlternativeProvision": {
        "additionalProperties": false,
        "properties": {
          "disposition": {
            "enum": ["provided", "reviewed_not_applicable"],
            "title": "Disposition",
            "type": "string"
          },
          "reference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reference"
          }
        },
        "required": ["disposition"],
        "title": "LearnerAlternativeProvision",
        "type": "object"
      },
      "LearnerComplaintActionRecordResponse": {
        "properties": {
          "action": {
            "enum": [
              "acknowledge",
              "open_investigation",
              "route_to_moderation",
              "issue_export_review",
              "resolve"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer": {
            "title": "Reviewer",
            "type": "string"
          }
        },
        "required": ["action", "comment", "reviewer", "reviewed_at"],
        "title": "LearnerComplaintActionRecordResponse",
        "type": "object"
      },
      "LearnerComplaintActionRequest": {
        "properties": {
          "action": {
            "enum": [
              "acknowledge",
              "open_investigation",
              "route_to_moderation",
              "issue_export_review",
              "resolve"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "default": "",
            "maxLength": 4000,
            "title": "Comment",
            "type": "string"
          }
        },
        "required": ["action"],
        "title": "LearnerComplaintActionRequest",
        "type": "object"
      },
      "LearnerComplaintActionResultResponse": {
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/LearnerComplaintActionRecordResponse"
          },
          "item": {
            "$ref": "#/components/schemas/LearnerComplaintResponse"
          }
        },
        "required": ["item", "decision"],
        "title": "LearnerComplaintActionResultResponse",
        "type": "object"
      },
      "LearnerComplaintFactResponse": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "LearnerComplaintFactResponse",
        "type": "object"
      },
      "LearnerComplaintResponse": {
        "properties": {
          "category": {
            "enum": ["content_accuracy", "tutor_behavior", "grading", "exports"],
            "title": "Category",
            "type": "string"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "facts": {
            "items": {
              "$ref": "#/components/schemas/LearnerComplaintFactResponse"
            },
            "title": "Facts",
            "type": "array"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/LearnerComplaintActionRecordResponse"
            },
            "title": "History",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "learner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Learner Id"
          },
          "learner_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Learner Name"
          },
          "recommended_actions": {
            "items": {
              "enum": [
                "acknowledge",
                "open_investigation",
                "route_to_moderation",
                "issue_export_review",
                "resolve"
              ],
              "type": "string"
            },
            "title": "Recommended Actions",
            "type": "array"
          },
          "reported_at": {
            "format": "date-time",
            "title": "Reported At",
            "type": "string"
          },
          "reporter_id": {
            "title": "Reporter Id",
            "type": "string"
          },
          "reporter_name": {
            "title": "Reporter Name",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "enum": ["new", "acknowledged", "investigating", "resolved", "escalated"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          },
          "target_label": {
            "title": "Target Label",
            "type": "string"
          },
          "target_type": {
            "title": "Target Type",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "workspace_href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Workspace Href"
          }
        },
        "required": [
          "id",
          "title",
          "category",
          "status",
          "severity",
          "reporter_name",
          "reporter_id",
          "reported_at",
          "summary",
          "description",
          "target_type",
          "target_id",
          "target_label"
        ],
        "title": "LearnerComplaintResponse",
        "type": "object"
      },
      "LearnerComplaintWorkspaceResponse": {
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/LearnerComplaintResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/LearnerComplaintWorkspaceSummaryResponse"
          }
        },
        "required": ["summary", "generated_at"],
        "title": "LearnerComplaintWorkspaceResponse",
        "type": "object"
      },
      "LearnerComplaintWorkspaceSummaryResponse": {
        "properties": {
          "escalated": {
            "minimum": 0.0,
            "title": "Escalated",
            "type": "integer"
          },
          "high_severity": {
            "minimum": 0.0,
            "title": "High Severity",
            "type": "integer"
          },
          "investigating": {
            "minimum": 0.0,
            "title": "Investigating",
            "type": "integer"
          },
          "new": {
            "minimum": 0.0,
            "title": "New",
            "type": "integer"
          },
          "resolved": {
            "minimum": 0.0,
            "title": "Resolved",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["total", "new", "investigating", "escalated", "resolved", "high_severity"],
        "title": "LearnerComplaintWorkspaceSummaryResponse",
        "type": "object"
      },
      "LearnerContext": {
        "additionalProperties": false,
        "description": "The full record. This never reaches the item bank.",
        "properties": {
          "accommodations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AccommodationGrant"
            },
            "maxItems": 64,
            "title": "Accommodations",
            "type": "array"
          },
          "delivery_modes_available": {
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Delivery Modes Available",
            "type": "array"
          },
          "diagnosis_codes": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Diagnosis Codes",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "grade_records": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GradeRecord"
            },
            "maxItems": 500,
            "title": "Grade Records",
            "type": "array"
          },
          "integrity_incidents": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/IntegrityIncident"
            },
            "maxItems": 500,
            "title": "Integrity Incidents",
            "type": "array"
          },
          "learner_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Learner Id",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "mastery": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ObjectiveMastery"
            },
            "maxItems": 500,
            "title": "Mastery",
            "type": "array"
          },
          "platform": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Platform",
            "type": "string"
          },
          "recent_exposures": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecentExposure"
            },
            "maxItems": 500,
            "title": "Recent Exposures",
            "type": "array"
          },
          "session_integrity_mode": {
            "enum": ["open", "monitored", "proctored", "lockdown"],
            "title": "Session Integrity Mode",
            "type": "string"
          },
          "target_objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Objective Id",
            "type": "string"
          }
        },
        "required": [
          "learner_id",
          "target_objective_id",
          "locale",
          "delivery_modes_available",
          "platform",
          "session_integrity_mode",
          "evaluated_at"
        ],
        "title": "LearnerContext",
        "type": "object"
      },
      "LearnerContextField": {
        "additionalProperties": false,
        "description": "One learner attribute a step may read, and why.\n\nThere is no field for a learner identifier, so a context grant cannot become\na way to fetch a named person's record; a step reads attributes of whoever\nthe runtime is serving.",
        "properties": {
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "field": {
            "enum": [
              "current_objective_id",
              "recent_attempt_outcomes",
              "declared_accessibility_needs",
              "preferred_language",
              "mastery_estimate"
            ],
            "title": "Field",
            "type": "string"
          },
          "purpose": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Purpose",
            "type": "string"
          }
        },
        "required": ["field", "purpose", "expires_at"],
        "title": "LearnerContextField",
        "type": "object"
      },
      "LearnerDashboardResponse": {
        "description": "Expanded learner dashboard contract for the Metis progress surface.",
        "properties": {
          "achievements": {
            "items": {
              "$ref": "#/components/schemas/AchievementResponse"
            },
            "title": "Achievements",
            "type": "array"
          },
          "active_tutoring_sessions": {
            "minimum": 0.0,
            "title": "Active Tutoring Sessions",
            "type": "integer"
          },
          "adaptive_sequence": {
            "items": {
              "$ref": "#/components/schemas/AdaptiveSequenceRecommendationResponse"
            },
            "title": "Adaptive Sequence",
            "type": "array"
          },
          "average_assessment_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Average Assessment Score",
            "type": "number"
          },
          "course_progress": {
            "items": {
              "$ref": "#/components/schemas/DashboardCourseProgressResponse"
            },
            "title": "Course Progress",
            "type": "array"
          },
          "course_recommendations": {
            "items": {
              "$ref": "#/components/schemas/GraphCourseRecommendationResponse"
            },
            "title": "Course Recommendations",
            "type": "array"
          },
          "courses_completed": {
            "minimum": 0.0,
            "title": "Courses Completed",
            "type": "integer"
          },
          "courses_enrolled": {
            "minimum": 0.0,
            "title": "Courses Enrolled",
            "type": "integer"
          },
          "courses_in_progress": {
            "minimum": 0.0,
            "title": "Courses In Progress",
            "type": "integer"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "practice_recommendations": {
            "items": {
              "$ref": "#/components/schemas/AdaptivePracticeRecommendationResponse"
            },
            "title": "Practice Recommendations",
            "type": "array"
          },
          "recent_activity": {
            "items": {
              "$ref": "#/components/schemas/DashboardRecentActivityResponse"
            },
            "title": "Recent Activity",
            "type": "array"
          },
          "sequencing_experiments": {
            "items": {
              "$ref": "#/components/schemas/GraphCourseSequencingExperimentResponse"
            },
            "title": "Sequencing Experiments",
            "type": "array"
          },
          "skills": {
            "items": {
              "$ref": "#/components/schemas/DashboardSkillResponse"
            },
            "title": "Skills",
            "type": "array"
          },
          "streak": {
            "$ref": "#/components/schemas/DashboardStreakResponse"
          },
          "total_learning_time_hours": {
            "minimum": 0.0,
            "title": "Total Learning Time Hours",
            "type": "number"
          },
          "tutoring_metrics": {
            "$ref": "#/components/schemas/DashboardTutoringMetricsResponse"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "user_id",
          "courses_enrolled",
          "courses_completed",
          "courses_in_progress",
          "total_learning_time_hours",
          "average_assessment_score",
          "active_tutoring_sessions",
          "streak",
          "tutoring_metrics",
          "generated_at"
        ],
        "title": "LearnerDashboardResponse",
        "type": "object"
      },
      "LearnerDelta": {
        "additionalProperties": false,
        "properties": {
          "changed": {
            "title": "Changed",
            "type": "boolean"
          },
          "learner_ref": {
            "pattern": "^synthetic:[a-f0-9]{16}$",
            "title": "Learner Ref",
            "type": "string"
          },
          "left_steps": {
            "maximum": 500.0,
            "minimum": 0.0,
            "title": "Left Steps",
            "type": "integer"
          },
          "left_terminal_reason": {
            "enum": [
              "objective_met",
              "no_eligible_item",
              "budget_steps_exhausted",
              "budget_days_exhausted",
              "budget_engine_calls_exhausted"
            ],
            "title": "Left Terminal Reason",
            "type": "string"
          },
          "right_steps": {
            "maximum": 500.0,
            "minimum": 0.0,
            "title": "Right Steps",
            "type": "integer"
          },
          "right_terminal_reason": {
            "enum": [
              "objective_met",
              "no_eligible_item",
              "budget_steps_exhausted",
              "budget_days_exhausted",
              "budget_engine_calls_exhausted"
            ],
            "title": "Right Terminal Reason",
            "type": "string"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": [
          "learner_ref",
          "left_steps",
          "right_steps",
          "left_terminal_reason",
          "right_terminal_reason",
          "changed"
        ],
        "title": "LearnerDelta",
        "type": "object"
      },
      "LearnerEvidence": {
        "additionalProperties": false,
        "description": "One recorded fact about a learner, as of an exact instant.",
        "properties": {
          "approved_by_role": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approved By Role"
          },
          "evidence_kind": {
            "enum": [
              "prior_credential",
              "prior_pathway",
              "assessment_score",
              "objective_mastery",
              "evidence_artifact",
              "manual_approval"
            ],
            "title": "Evidence Kind",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "value_basis_points": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value Basis Points"
          }
        },
        "required": ["evidence_kind", "subject_id", "recorded_at"],
        "title": "LearnerEvidence",
        "type": "object"
      },
      "LearnerExplanation": {
        "additionalProperties": false,
        "properties": {
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "lapsed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lapsed At"
          },
          "received_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Received At"
          },
          "solicited_at": {
            "format": "date-time",
            "title": "Solicited At",
            "type": "string"
          }
        },
        "required": ["solicited_at", "due_at"],
        "title": "LearnerExplanation",
        "type": "object"
      },
      "LearnerExplanationView": {
        "additionalProperties": false,
        "description": "Seven sections rendered from canonical records. ``accusatory`` cannot be true.",
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/AccessibilityProfile"
          },
          "accusatory": {
            "const": false,
            "default": false,
            "title": "Accusatory",
            "type": "boolean"
          },
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "derived_from_records": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 2,
            "title": "Derived From Records",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "schema_version": {
            "const": "7.5.0",
            "default": "7.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/ExplanationSection"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Sections",
            "type": "array"
          },
          "stage": {
            "enum": ["under_review", "decided", "under_appeal", "appeal_concluded"],
            "title": "Stage",
            "type": "string"
          },
          "view_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "View Sha256",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "learner_digest",
          "locale",
          "stage",
          "generated_at",
          "derived_from_records",
          "sections",
          "accessibility",
          "view_sha256"
        ],
        "title": "LearnerExplanationView",
        "type": "object"
      },
      "LearnerInteraction": {
        "additionalProperties": false,
        "properties": {
          "attempts_allowed": {
            "title": "Attempts Allowed",
            "type": "integer"
          },
          "end_millis": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Millis"
          },
          "interaction_id": {
            "title": "Interaction Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "hotspot",
              "timeline",
              "drag_drop",
              "manipulation",
              "branch",
              "simulation_control"
            ],
            "title": "Kind",
            "type": "string"
          },
          "media_binding_id": {
            "title": "Media Binding Id",
            "type": "string"
          },
          "regions": {
            "items": {
              "$ref": "#/components/schemas/InteractionRegion"
            },
            "title": "Regions",
            "type": "array"
          },
          "response_event": {
            "title": "Response Event",
            "type": "string"
          },
          "start_millis": {
            "title": "Start Millis",
            "type": "integer"
          }
        },
        "required": [
          "interaction_id",
          "kind",
          "media_binding_id",
          "response_event",
          "regions",
          "start_millis",
          "end_millis",
          "attempts_allowed"
        ],
        "title": "LearnerInteraction",
        "type": "object"
      },
      "LearnerInvestigationRecordResponse": {
        "properties": {
          "actor": {
            "title": "Actor",
            "type": "string"
          },
          "focus_area": {
            "enum": [
              "progression",
              "study_history",
              "assessment_integrity",
              "tutoring_behavior",
              "general"
            ],
            "title": "Focus Area",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "note": {
            "default": "",
            "title": "Note",
            "type": "string"
          },
          "opened_at": {
            "format": "date-time",
            "title": "Opened At",
            "type": "string"
          },
          "source_entry_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Entry Ids",
            "type": "array"
          },
          "status": {
            "enum": ["watch", "open", "resolved"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "focus_area",
          "title",
          "summary",
          "opened_at",
          "updated_at",
          "actor"
        ],
        "title": "LearnerInvestigationRecordResponse",
        "type": "object"
      },
      "LearnerMediaBinding": {
        "additionalProperties": false,
        "properties": {
          "binding_id": {
            "title": "Binding Id",
            "type": "string"
          },
          "delivery_locator": {
            "title": "Delivery Locator",
            "type": "string"
          },
          "media_kind": {
            "enum": ["image", "audio", "video", "model_3d", "stimulus"],
            "title": "Media Kind",
            "type": "string"
          },
          "rendition_id": {
            "title": "Rendition Id",
            "type": "string"
          },
          "rendition_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendition Sha256",
            "type": "string"
          },
          "role": {
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "binding_id",
          "media_kind",
          "role",
          "rendition_id",
          "rendition_sha256",
          "delivery_locator"
        ],
        "title": "LearnerMediaBinding",
        "type": "object"
      },
      "LearnerModelRationaleProjection": {
        "additionalProperties": false,
        "properties": {
          "objective_current": {
            "title": "Objective Current",
            "type": "boolean"
          },
          "panel": {
            "$ref": "#/components/schemas/LearnerModelRationaleResponse"
          }
        },
        "required": ["panel", "objective_current"],
        "title": "LearnerModelRationaleProjection",
        "type": "object"
      },
      "LearnerModelRationaleRequest": {
        "additionalProperties": false,
        "properties": {
          "bkt": {
            "$ref": "#/components/schemas/BktInput"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "fsrs": {
            "$ref": "#/components/schemas/FsrsInput"
          },
          "graph": {
            "$ref": "#/components/schemas/GraphInput"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "input_projection_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Projection Sha256",
            "type": "string"
          },
          "irt": {
            "$ref": "#/components/schemas/IrtInput"
          },
          "item_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Id"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.4.0",
            "default": "6.4.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "objective_id",
          "input_projection_sha256",
          "evaluated_at",
          "bkt",
          "fsrs",
          "graph",
          "irt"
        ],
        "title": "LearnerModelRationaleRequest",
        "type": "object"
      },
      "LearnerModelRationaleResponse": {
        "additionalProperties": false,
        "properties": {
          "bkt": {
            "$ref": "#/components/schemas/BktResult"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/CombinedDecision"
          },
          "engine": {
            "$ref": "#/components/schemas/RationaleEngineWitness"
          },
          "evaluated_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Evaluated By",
            "type": "string"
          },
          "fsrs": {
            "$ref": "#/components/schemas/FsrsResult"
          },
          "graph": {
            "$ref": "#/components/schemas/GraphTracingResult"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "irt": {
            "$ref": "#/components/schemas/IrtResult"
          },
          "item_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Id"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          },
          "panel_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Panel Id",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.4.0",
            "default": "6.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "panel_id",
          "idempotency_key",
          "objective_id",
          "item_id",
          "bkt",
          "fsrs",
          "graph",
          "irt",
          "decision",
          "engine",
          "request_sha256",
          "evaluated_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "LearnerModelRationaleResponse",
        "type": "object"
      },
      "LearnerModelRationaleWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/RationaleEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "panels": {
            "items": {
              "$ref": "#/components/schemas/LearnerModelRationaleProjection"
            },
            "title": "Panels",
            "type": "array"
          },
          "schema_version": {
            "const": "6.4.0",
            "default": "6.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/RationaleWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "panels"],
        "title": "LearnerModelRationaleWorkspaceResponse",
        "type": "object"
      },
      "LearnerNotice": {
        "additionalProperties": false,
        "description": "The learner was told before their grade changed. A correction without one is refused.",
        "properties": {
          "channel": {
            "enum": ["in_product", "email", "guardian_relay"],
            "title": "Channel",
            "type": "string"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "notice_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Notice Id",
            "type": "string"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "sent_at": {
            "format": "date-time",
            "title": "Sent At",
            "type": "string"
          }
        },
        "required": ["notice_id", "grade_id", "request_id", "learner_digest", "sent_at", "channel"],
        "title": "LearnerNotice",
        "type": "object"
      },
      "LearnerNotificationFeedResponse": {
        "description": "Current learner reminder and continuation feed.",
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/LearnerNotificationItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/LearnerNotificationSummaryResponse"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": ["user_id", "generated_at", "summary"],
        "title": "LearnerNotificationFeedResponse",
        "type": "object"
      },
      "LearnerNotificationItemResponse": {
        "description": "Learner-facing reminder or continuation notification.",
        "properties": {
          "action_label": {
            "title": "Action Label",
            "type": "string"
          },
          "action_path": {
            "title": "Action Path",
            "type": "string"
          },
          "body": {
            "title": "Body",
            "type": "string"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "context_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context Label"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "entity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Id"
          },
          "entity_type": {
            "title": "Entity Type",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "priority": {
            "title": "Priority",
            "type": "string"
          },
          "scheduled_for": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scheduled For"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "category",
          "priority",
          "title",
          "body",
          "action_path",
          "action_label",
          "created_at",
          "entity_type"
        ],
        "title": "LearnerNotificationItemResponse",
        "type": "object"
      },
      "LearnerNotificationSummaryResponse": {
        "description": "Aggregate counts for the learner notification feed.",
        "properties": {
          "assessment": {
            "minimum": 0.0,
            "title": "Assessment",
            "type": "integer"
          },
          "continuation": {
            "minimum": 0.0,
            "title": "Continuation",
            "type": "integer"
          },
          "high_priority": {
            "minimum": 0.0,
            "title": "High Priority",
            "type": "integer"
          },
          "study": {
            "minimum": 0.0,
            "title": "Study",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["total", "study", "assessment", "continuation", "high_priority"],
        "title": "LearnerNotificationSummaryResponse",
        "type": "object"
      },
      "LearnerObservation": {
        "additionalProperties": false,
        "description": "One learner's pass through the material, referenced opaquely.",
        "properties": {
          "activity_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Activity Id",
            "type": "string"
          },
          "cohorts": {
            "$ref": "#/components/schemas/ObservationCohorts"
          },
          "completed": {
            "default": [],
            "items": {
              "enum": ["course", "module", "lesson", "activity", "content_step", "item"],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Completed",
            "type": "array"
          },
          "content_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Revision Sha256",
            "type": "string"
          },
          "content_step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Content Step Id",
            "type": "string"
          },
          "course_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Course Id",
            "type": "string"
          },
          "lesson_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Lesson Id",
            "type": "string"
          },
          "mastery": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ObservedMastery"
            },
            "maxItems": 50,
            "title": "Mastery",
            "type": "array"
          },
          "misconception_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Misconception Ids",
            "type": "array"
          },
          "module_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Module Id",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "reached": {
            "items": {
              "enum": ["course", "module", "lesson", "activity", "content_step", "item"],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Reached",
            "type": "array"
          },
          "responses": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ItemResponse"
            },
            "maxItems": 200,
            "title": "Responses",
            "type": "array"
          },
          "subject_ref": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Ref",
            "type": "string"
          }
        },
        "required": [
          "subject_ref",
          "course_id",
          "module_id",
          "lesson_id",
          "activity_id",
          "content_step_id",
          "reached",
          "cohorts",
          "content_revision_sha256",
          "observed_at"
        ],
        "title": "LearnerObservation",
        "type": "object"
      },
      "LearnerPreferences": {
        "description": "Structured learner study preferences persisted in the user profile.",
        "properties": {
          "assessment_reminder_lead_hours": {
            "default": 24,
            "maximum": 168.0,
            "minimum": 1.0,
            "title": "Assessment Reminder Lead Hours",
            "type": "integer"
          },
          "assessment_reminders_enabled": {
            "default": true,
            "title": "Assessment Reminders Enabled",
            "type": "boolean"
          },
          "continuation_notifications_enabled": {
            "default": true,
            "title": "Continuation Notifications Enabled",
            "type": "boolean"
          },
          "explanation_depth": {
            "default": "balanced",
            "enum": ["concise", "balanced", "deep"],
            "title": "Explanation Depth",
            "type": "string"
          },
          "language": {
            "default": "en",
            "maxLength": 16,
            "minLength": 2,
            "title": "Language",
            "type": "string"
          },
          "oversight_alerts_enabled": {
            "default": false,
            "title": "Oversight Alerts Enabled",
            "type": "boolean"
          },
          "oversight_context": {
            "default": "independent",
            "enum": ["independent", "minor-supervised", "managed-program"],
            "title": "Oversight Context",
            "type": "string"
          },
          "oversight_progress_sharing_enabled": {
            "default": false,
            "title": "Oversight Progress Sharing Enabled",
            "type": "boolean"
          },
          "oversight_roles": {
            "items": {
              "enum": ["teacher", "guardian", "institution"],
              "type": "string"
            },
            "title": "Oversight Roles",
            "type": "array"
          },
          "oversight_transcript_sharing_enabled": {
            "default": false,
            "title": "Oversight Transcript Sharing Enabled",
            "type": "boolean"
          },
          "pace": {
            "default": "steady",
            "enum": ["light", "steady", "accelerated"],
            "title": "Pace",
            "type": "string"
          },
          "preferred_content_types": {
            "items": {
              "enum": ["video", "reading", "exercise", "quiz", "tutoring"],
              "type": "string"
            },
            "title": "Preferred Content Types",
            "type": "array"
          },
          "preferred_subjects": {
            "items": {
              "type": "string"
            },
            "title": "Preferred Subjects",
            "type": "array"
          },
          "session_minutes": {
            "default": 30,
            "maximum": 180.0,
            "minimum": 10.0,
            "title": "Session Minutes",
            "type": "integer"
          },
          "study_goal": {
            "default": "foundational-mastery",
            "enum": [
              "foundational-mastery",
              "exam-prep",
              "career-advancement",
              "project-delivery",
              "curiosity"
            ],
            "title": "Study Goal",
            "type": "string"
          },
          "study_reminder_days": {
            "items": {
              "enum": [
                "monday",
                "tuesday",
                "wednesday",
                "thursday",
                "friday",
                "saturday",
                "sunday"
              ],
              "type": "string"
            },
            "title": "Study Reminder Days",
            "type": "array"
          },
          "study_reminder_hour_local": {
            "default": 18,
            "maximum": 23.0,
            "minimum": 0.0,
            "title": "Study Reminder Hour Local",
            "type": "integer"
          },
          "study_reminders_enabled": {
            "default": true,
            "title": "Study Reminders Enabled",
            "type": "boolean"
          },
          "timezone": {
            "default": "UTC",
            "maxLength": 64,
            "minLength": 1,
            "title": "Timezone",
            "type": "string"
          },
          "tutor_style": {
            "default": "scaffolded-hints",
            "enum": [
              "step-by-step",
              "socratic",
              "direct",
              "direct-explanation",
              "scaffolded-hints",
              "exam-practice",
              "mentor-coaching"
            ],
            "title": "Tutor Style",
            "type": "string"
          },
          "weekly_hours_target": {
            "default": 4,
            "maximum": 40.0,
            "minimum": 1.0,
            "title": "Weekly Hours Target",
            "type": "integer"
          }
        },
        "title": "LearnerPreferences",
        "type": "object"
      },
      "LearnerProgressionSummaryResponse": {
        "properties": {
          "active_courses": {
            "minimum": 0.0,
            "title": "Active Courses",
            "type": "integer"
          },
          "at_risk_courses": {
            "minimum": 0.0,
            "title": "At Risk Courses",
            "type": "integer"
          },
          "completed_courses": {
            "minimum": 0.0,
            "title": "Completed Courses",
            "type": "integer"
          },
          "flagged_study_events": {
            "minimum": 0.0,
            "title": "Flagged Study Events",
            "type": "integer"
          },
          "learner_state": {
            "enum": ["on_track", "needs_attention", "paused", "under_investigation"],
            "title": "Learner State",
            "type": "string"
          },
          "open_investigations": {
            "minimum": 0.0,
            "title": "Open Investigations",
            "type": "integer"
          },
          "paused_courses": {
            "minimum": 0.0,
            "title": "Paused Courses",
            "type": "integer"
          },
          "study_hold_active": {
            "default": false,
            "title": "Study Hold Active",
            "type": "boolean"
          },
          "tutoring_sessions": {
            "minimum": 0.0,
            "title": "Tutoring Sessions",
            "type": "integer"
          }
        },
        "required": [
          "learner_state",
          "active_courses",
          "paused_courses",
          "completed_courses",
          "at_risk_courses",
          "tutoring_sessions",
          "flagged_study_events",
          "open_investigations"
        ],
        "title": "LearnerProgressionSummaryResponse",
        "type": "object"
      },
      "LearnerProjection": {
        "additionalProperties": false,
        "description": "What the item bank sees. No field here can carry a diagnosis or a grade.",
        "properties": {
          "carries_diagnosis": {
            "const": false,
            "default": false,
            "title": "Carries Diagnosis",
            "type": "boolean"
          },
          "carries_grades": {
            "const": false,
            "default": false,
            "title": "Carries Grades",
            "type": "boolean"
          },
          "carries_integrity_detail": {
            "const": false,
            "default": false,
            "title": "Carries Integrity Detail",
            "type": "boolean"
          },
          "delivery_modes_available": {
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Delivery Modes Available",
            "type": "array"
          },
          "integrity_mode": {
            "enum": ["open", "monitored", "proctored", "lockdown"],
            "title": "Integrity Mode",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "mastery_band": {
            "enum": ["novice", "developing", "proficient", "advanced"],
            "title": "Mastery Band",
            "type": "string"
          },
          "mastery_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Mastery Basis Points",
            "type": "integer"
          },
          "mastery_observed": {
            "title": "Mastery Observed",
            "type": "boolean"
          },
          "platform": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Platform",
            "type": "string"
          },
          "projected_at": {
            "format": "date-time",
            "title": "Projected At",
            "type": "string"
          },
          "projection_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Projection Sha256",
            "type": "string"
          },
          "recent_exposures": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecentExposure"
            },
            "maxItems": 500,
            "title": "Recent Exposures",
            "type": "array"
          },
          "required_supports": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Required Supports",
            "type": "array"
          },
          "target_objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Objective Id",
            "type": "string"
          }
        },
        "required": [
          "target_objective_id",
          "mastery_band",
          "mastery_basis_points",
          "mastery_observed",
          "locale",
          "delivery_modes_available",
          "platform",
          "integrity_mode",
          "projected_at",
          "projection_sha256"
        ],
        "title": "LearnerProjection",
        "type": "object"
      },
      "LearnerRecord": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LearnerEvidence"
            },
            "maxItems": 500,
            "title": "Evidence",
            "type": "array"
          },
          "learner_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Learner Id",
            "type": "string"
          }
        },
        "required": ["learner_id", "evaluated_at"],
        "title": "LearnerRecord",
        "type": "object"
      },
      "LearnerRuntimePlan": {
        "additionalProperties": false,
        "properties": {
          "admitted_event_names": {
            "items": {
              "type": "string"
            },
            "title": "Admitted Event Names",
            "type": "array"
          },
          "bundle_ref": {
            "title": "Bundle Ref",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/PinnedArtifact"
          },
          "limits": {
            "$ref": "#/components/schemas/RuntimeResourceLimits"
          },
          "network_allowlist": {
            "items": {
              "type": "string"
            },
            "title": "Network Allowlist",
            "type": "array"
          },
          "opaque_origin": {
            "const": true,
            "default": true,
            "title": "Opaque Origin",
            "type": "boolean"
          },
          "reset_policy": {
            "title": "Reset Policy",
            "type": "string"
          },
          "signing_key_exposed": {
            "const": false,
            "default": false,
            "title": "Signing Key Exposed",
            "type": "boolean"
          }
        },
        "required": [
          "engine",
          "bundle_ref",
          "deterministic_seed",
          "reset_policy",
          "network_allowlist",
          "limits",
          "admitted_event_names"
        ],
        "title": "LearnerRuntimePlan",
        "type": "object"
      },
      "LearnerSessionSourceScope": {
        "properties": {
          "learnerId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Learnerid",
            "type": "string"
          },
          "learnerName": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Learnername",
            "type": "string"
          },
          "level": {
            "const": "learner-session",
            "title": "Level",
            "type": "string"
          },
          "sessionId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sessionid",
            "type": "string"
          }
        },
        "required": ["level", "sessionId", "learnerId", "learnerName"],
        "title": "LearnerSessionSourceScope",
        "type": "object"
      },
      "LearnerSimulationProjection": {
        "additionalProperties": false,
        "properties": {
          "simulation": {
            "$ref": "#/components/schemas/LearnerSimulationResponse"
          },
          "specification_current": {
            "title": "Specification Current",
            "type": "boolean"
          }
        },
        "required": ["simulation", "specification_current"],
        "title": "LearnerSimulationProjection",
        "type": "object"
      },
      "LearnerSimulationRequest": {
        "additionalProperties": false,
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/SimulationBudget"
          },
          "cohort": {
            "$ref": "#/components/schemas/CohortSpecification"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "item_pool_size": {
            "maximum": 200.0,
            "minimum": 1.0,
            "title": "Item Pool Size",
            "type": "integer"
          },
          "scenarios": {
            "items": {
              "$ref": "#/components/schemas/SimulationScenario"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Scenarios",
            "type": "array"
          },
          "schema_version": {
            "const": "6.5.0",
            "default": "6.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "cohort", "budget", "scenarios", "item_pool_size"],
        "title": "LearnerSimulationRequest",
        "type": "object"
      },
      "LearnerSimulationResponse": {
        "additionalProperties": false,
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/SimulationBudget"
          },
          "cohort": {
            "$ref": "#/components/schemas/SyntheticCohort"
          },
          "comparisons": {
            "items": {
              "$ref": "#/components/schemas/ScenarioComparison"
            },
            "maxItems": 6,
            "title": "Comparisons",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/SimulationEngineWitness"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "isolation": {
            "$ref": "#/components/schemas/IsolationReport"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/SimulationRun"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Runs",
            "type": "array"
          },
          "scenarios": {
            "items": {
              "$ref": "#/components/schemas/SimulationScenario"
            },
            "title": "Scenarios",
            "type": "array"
          },
          "schema_version": {
            "const": "6.5.0",
            "default": "6.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "simulated_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Simulated By",
            "type": "string"
          },
          "simulation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Simulation Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "simulation_id",
          "idempotency_key",
          "cohort",
          "budget",
          "scenarios",
          "runs",
          "comparisons",
          "isolation",
          "engine",
          "request_sha256",
          "simulated_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "LearnerSimulationResponse",
        "type": "object"
      },
      "LearnerSimulationWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/SimulationEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.5.0",
            "default": "6.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "simulations": {
            "items": {
              "$ref": "#/components/schemas/LearnerSimulationProjection"
            },
            "title": "Simulations",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/SimulationWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "simulations"],
        "title": "LearnerSimulationWorkspaceResponse",
        "type": "object"
      },
      "LearnerStudyHistoryEntryResponse": {
        "properties": {
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "flagged": {
            "default": false,
            "title": "Flagged",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "course_progress",
              "assessment_submission",
              "tutoring_session",
              "achievement",
              "admin_action"
            ],
            "title": "Kind",
            "type": "string"
          },
          "severity": {
            "default": "low",
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "kind", "title", "summary", "timestamp"],
        "title": "LearnerStudyHistoryEntryResponse",
        "type": "object"
      },
      "LearnerVisibleLeakageArtifact": {
        "additionalProperties": false,
        "properties": {
          "allowed_protected_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Allowed Protected Ids",
            "type": "array"
          },
          "artifact_id": {
            "pattern": "^learner-artifact:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "channel": {
            "enum": [
              "ui",
              "api",
              "renderer",
              "search",
              "cache",
              "event",
              "analytics",
              "export",
              "qti",
              "lti",
              "scorm",
              "xapi",
              "course_package",
              "preview",
              "deep_link",
              "url",
              "client_bundle",
              "client_state",
              "error",
              "log",
              "trace",
              "support_export"
            ],
            "title": "Channel",
            "type": "string"
          },
          "content_text": {
            "default": "",
            "maxLength": 2000000,
            "title": "Content Text",
            "type": "string"
          },
          "encryption": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LeakageEncryptionEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "filename": {
            "default": "",
            "maxLength": 2048,
            "title": "Filename",
            "type": "string"
          },
          "hidden_metadata_text": {
            "default": "",
            "maxLength": 2000000,
            "title": "Hidden Metadata Text",
            "type": "string"
          },
          "identifier": {
            "default": "",
            "maxLength": 2048,
            "title": "Identifier",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "locator": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "media_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Media Type",
            "type": "string"
          },
          "option_id": {
            "anyOf": [
              {
                "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Option Id"
          },
          "role": {
            "enum": ["learner", "anonymous", "instructor", "admin"],
            "title": "Role",
            "type": "string"
          },
          "scanner_observations": {
            "items": {
              "$ref": "#/components/schemas/LeakageScannerObservation"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Scanner Observations",
            "type": "array"
          },
          "surface_kind": {
            "enum": [
              "stem",
              "option",
              "learner_feedback",
              "hint",
              "metadata",
              "filename",
              "identifier",
              "accessibility_text",
              "image_pixels",
              "audio",
              "transcript",
              "caption",
              "description",
              "document",
              "code",
              "runtime_output",
              "interactive_state",
              "hidden_metadata",
              "package_payload",
              "client_bundle",
              "client_state",
              "error_message",
              "log_entry",
              "trace_payload",
              "url",
              "support_payload"
            ],
            "title": "Surface Kind",
            "type": "string"
          }
        },
        "required": [
          "artifact_id",
          "channel",
          "surface_kind",
          "role",
          "locale",
          "locator",
          "media_type",
          "scanner_observations",
          "artifact_sha256"
        ],
        "title": "LearnerVisibleLeakageArtifact",
        "type": "object"
      },
      "LearningLinkCognitiveClassification": {
        "additionalProperties": false,
        "properties": {
          "cognitive_level": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Cognitive Level",
            "type": "string"
          },
          "measurable_verb": {
            "maxLength": 100,
            "minLength": 2,
            "pattern": "^[A-Za-z][A-Za-z -]*$",
            "title": "Measurable Verb",
            "type": "string"
          },
          "taxonomy_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Taxonomy Id",
            "type": "string"
          },
          "taxonomy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Taxonomy Version",
            "type": "string"
          }
        },
        "required": ["taxonomy_id", "taxonomy_version", "cognitive_level", "measurable_verb"],
        "title": "LearningLinkCognitiveClassification",
        "type": "object"
      },
      "LearningLinkEvidence": {
        "additionalProperties": false,
        "properties": {
          "evidence_id": {
            "pattern": "^link-evidence:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_kind": {
            "enum": ["item_content", "curriculum_map", "standards_registry", "expert_review"],
            "title": "Evidence Kind",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "note": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Note",
            "type": "string"
          },
          "source_id": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_revision_id": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Source Revision Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "evidence_id",
          "evidence_kind",
          "source_id",
          "source_revision_id",
          "source_sha256",
          "locator",
          "note"
        ],
        "title": "LearningLinkEvidence",
        "type": "object"
      },
      "LearningLinkProjectionEntry": {
        "additionalProperties": false,
        "properties": {
          "cognitive_level": {
            "title": "Cognitive Level",
            "type": "string"
          },
          "coverage_basis_points": {
            "title": "Coverage Basis Points",
            "type": "integer"
          },
          "lifecycle_status": {
            "enum": ["current", "stale"],
            "title": "Lifecycle Status",
            "type": "string"
          },
          "link_id": {
            "title": "Link Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "supporting", "prerequisite", "evidence"],
            "title": "Role",
            "type": "string"
          },
          "semantic_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Semantic Sha256",
            "type": "string"
          },
          "strength": {
            "enum": ["exact", "strong", "moderate", "weak"],
            "title": "Strength",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["objective", "standard", "concept", "prerequisite"],
            "title": "Target Kind",
            "type": "string"
          },
          "target_revision_id": {
            "title": "Target Revision Id",
            "type": "string"
          },
          "target_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "link_id",
          "role",
          "strength",
          "coverage_basis_points",
          "target_kind",
          "target_id",
          "target_revision_id",
          "target_revision_sha256",
          "cognitive_level",
          "rationale",
          "lifecycle_status",
          "semantic_sha256"
        ],
        "title": "LearningLinkProjectionEntry",
        "type": "object"
      },
      "LearningLinkSurfaceProjection": {
        "additionalProperties": false,
        "properties": {
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/LearningLinkProjectionEntry"
            },
            "title": "Links",
            "type": "array"
          },
          "semantic_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Semantic Sha256",
            "type": "string"
          },
          "surface": {
            "enum": ["item", "coverage_matrix", "concept_graph", "search", "standards_export"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["surface", "item_id", "item_revision_sha256", "links", "semantic_sha256"],
        "title": "LearningLinkSurfaceProjection",
        "type": "object"
      },
      "LearningSubjectGroupResponse": {
        "description": "Named subject group used by curriculum routing and discovery surfaces.",
        "properties": {
          "default_treatment": {
            "enum": ["headline_curriculum", "embedded_scaffold", "foundational_primer"],
            "title": "Default Treatment",
            "type": "string"
          },
          "id": {
            "enum": ["core-six", "supporting-scaffolds"],
            "title": "Id",
            "type": "string"
          },
          "role": {
            "enum": ["headline", "scaffolding_only"],
            "title": "Role",
            "type": "string"
          },
          "subject_ids": {
            "items": {
              "type": "string"
            },
            "title": "Subject Ids",
            "type": "array"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "role", "default_treatment", "summary"],
        "title": "LearningSubjectGroupResponse",
        "type": "object"
      },
      "LearningSubjectLookupRequest": {
        "description": "Lookup request for resolving learner-entered subject text.",
        "properties": {
          "query": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Query",
            "type": "string"
          }
        },
        "required": ["query"],
        "title": "LearningSubjectLookupRequest",
        "type": "object"
      },
      "LearningSubjectLookupResponse": {
        "description": "Lookup result that preserves whether the subject can headline curriculum.",
        "properties": {
          "is_supported": {
            "title": "Is Supported",
            "type": "boolean"
          },
          "normalized_query": {
            "title": "Normalized Query",
            "type": "string"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "role": {
            "anyOf": [
              {
                "enum": ["headline", "scaffolding_only"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          },
          "subject": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LearningSubjectResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "treatment": {
            "anyOf": [
              {
                "enum": ["headline_curriculum", "embedded_scaffold", "foundational_primer"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Treatment"
          }
        },
        "required": ["query", "normalized_query", "is_supported"],
        "title": "LearningSubjectLookupResponse",
        "type": "object"
      },
      "LearningSubjectResponse": {
        "description": "One versioned learning subject entry in the Metis curriculum taxonomy.",
        "properties": {
          "aliases": {
            "items": {
              "type": "string"
            },
            "title": "Aliases",
            "type": "array"
          },
          "allowed_treatments": {
            "items": {
              "enum": ["headline_curriculum", "embedded_scaffold", "foundational_primer"],
              "type": "string"
            },
            "title": "Allowed Treatments",
            "type": "array"
          },
          "default_treatment": {
            "enum": ["headline_curriculum", "embedded_scaffold", "foundational_primer"],
            "title": "Default Treatment",
            "type": "string"
          },
          "depth_tiers": {
            "items": {
              "enum": ["introductory", "intermediate", "advanced"],
              "type": "string"
            },
            "title": "Depth Tiers",
            "type": "array"
          },
          "id": {
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
            "title": "Id",
            "type": "string"
          },
          "is_core_discipline": {
            "title": "Is Core Discipline",
            "type": "boolean"
          },
          "is_headline_subject": {
            "title": "Is Headline Subject",
            "type": "boolean"
          },
          "placement": {
            "enum": ["core_discipline", "supporting_subject"],
            "title": "Placement",
            "type": "string"
          },
          "role": {
            "enum": ["headline", "scaffolding_only"],
            "title": "Role",
            "type": "string"
          },
          "routing_notes": {
            "items": {
              "type": "string"
            },
            "title": "Routing Notes",
            "type": "array"
          },
          "scaffolding_only_by_default": {
            "title": "Scaffolding Only By Default",
            "type": "boolean"
          },
          "summary": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "placement",
          "role",
          "is_core_discipline",
          "is_headline_subject",
          "scaffolding_only_by_default",
          "default_treatment",
          "summary"
        ],
        "title": "LearningSubjectResponse",
        "type": "object"
      },
      "LearningSubjectRouteRequest": {
        "description": "Request a pipeline-specific subject route for tutoring or generation.",
        "properties": {
          "core_context_subject_id": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Core Context Subject Id"
          },
          "pipeline": {
            "enum": ["tutor", "course_generation"],
            "title": "Pipeline",
            "type": "string"
          },
          "query": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Query",
            "type": "string"
          }
        },
        "required": ["query", "pipeline"],
        "title": "LearningSubjectRouteRequest",
        "type": "object"
      },
      "LearningSubjectRouteResponse": {
        "description": "Pipeline decision for headline versus scaffolding subject treatment.",
        "properties": {
          "blocked_treatments": {
            "items": {
              "enum": ["headline_curriculum", "embedded_scaffold", "foundational_primer"],
              "type": "string"
            },
            "title": "Blocked Treatments",
            "type": "array"
          },
          "course_generation_directive": {
            "title": "Course Generation Directive",
            "type": "string"
          },
          "is_core_discipline": {
            "title": "Is Core Discipline",
            "type": "boolean"
          },
          "is_headline_subject": {
            "title": "Is Headline Subject",
            "type": "boolean"
          },
          "normalized_query": {
            "title": "Normalized Query",
            "type": "string"
          },
          "pipeline": {
            "enum": ["tutor", "course_generation"],
            "title": "Pipeline",
            "type": "string"
          },
          "prerequisite_graph_treatment": {
            "enum": ["full", "bounded_primer"],
            "title": "Prerequisite Graph Treatment",
            "type": "string"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "role": {
            "enum": ["headline", "scaffolding_only"],
            "title": "Role",
            "type": "string"
          },
          "rubric_treatment": {
            "enum": ["advanced", "foundational"],
            "title": "Rubric Treatment",
            "type": "string"
          },
          "subject_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Id"
          },
          "subject_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Title"
          },
          "supports_advanced_rubrics": {
            "title": "Supports Advanced Rubrics",
            "type": "boolean"
          },
          "supports_full_prerequisite_graph": {
            "title": "Supports Full Prerequisite Graph",
            "type": "boolean"
          },
          "supports_long_form_curriculum": {
            "title": "Supports Long Form Curriculum",
            "type": "boolean"
          },
          "treatment": {
            "enum": ["headline_curriculum", "embedded_scaffold", "foundational_primer"],
            "title": "Treatment",
            "type": "string"
          },
          "tutor_directive": {
            "title": "Tutor Directive",
            "type": "string"
          }
        },
        "required": [
          "pipeline",
          "query",
          "normalized_query",
          "role",
          "treatment",
          "is_core_discipline",
          "is_headline_subject",
          "supports_long_form_curriculum",
          "supports_full_prerequisite_graph",
          "supports_advanced_rubrics",
          "prerequisite_graph_treatment",
          "rubric_treatment",
          "tutor_directive",
          "course_generation_directive"
        ],
        "title": "LearningSubjectRouteResponse",
        "type": "object"
      },
      "LearningSubjectTaxonomyResponse": {
        "description": "Metis V1 subject taxonomy with core-six and supporting-subject defaults.",
        "properties": {
          "core_subject_ids": {
            "items": {
              "type": "string"
            },
            "title": "Core Subject Ids",
            "type": "array"
          },
          "default_supporting_role": {
            "const": "scaffolding_only",
            "default": "scaffolding_only",
            "title": "Default Supporting Role",
            "type": "string"
          },
          "groups": {
            "items": {
              "$ref": "#/components/schemas/LearningSubjectGroupResponse"
            },
            "title": "Groups",
            "type": "array"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/LearningSubjectResponse"
            },
            "title": "Subjects",
            "type": "array"
          },
          "supporting_subject_ids": {
            "items": {
              "type": "string"
            },
            "title": "Supporting Subject Ids",
            "type": "array"
          },
          "taxonomy_hash": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Taxonomy Hash",
            "type": "string"
          },
          "taxonomy_id": {
            "const": "metis-learning-subject-taxonomy",
            "title": "Taxonomy Id",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["taxonomy_id", "version", "published_at", "taxonomy_hash"],
        "title": "LearningSubjectTaxonomyResponse",
        "type": "object"
      },
      "LearningTargetCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/LearningTargetRegistryEntry"
            },
            "title": "Entries",
            "type": "array"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "schema_version": {
            "const": "4.9.0",
            "default": "4.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "target_kinds": {
            "items": {
              "enum": ["objective", "standard", "concept", "prerequisite"],
              "type": "string"
            },
            "title": "Target Kinds",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "course_id", "query", "target_kinds", "entries"],
        "title": "LearningTargetCatalogResponse",
        "type": "object"
      },
      "LearningTargetRegistryEntry": {
        "additionalProperties": false,
        "description": "One exact target snapshot returned by an authorized registry search.",
        "properties": {
          "allowed_item_families": {
            "items": {
              "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Allowed Item Families",
            "type": "array"
          },
          "authorized": {
            "title": "Authorized",
            "type": "boolean"
          },
          "conflicts_with_target_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Conflicts With Target Ids",
            "type": "array"
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "cycle_free": {
            "default": true,
            "title": "Cycle Free",
            "type": "boolean"
          },
          "description": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "discipline_id": {
            "pattern": "^(?:[a-z0-9][a-z0-9-]{1,99}|cross-disciplinary)$",
            "title": "Discipline Id",
            "type": "string"
          },
          "grade_bands": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Grade Bands",
            "type": "array"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "lifecycle_state": {
            "enum": ["current", "superseded", "deprecated", "archived"],
            "title": "Lifecycle State",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "minLength": 2,
            "pattern": "^(?:und|[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*)$",
            "title": "Locale",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "prerequisite_source_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prerequisite Source Id"
          },
          "prerequisite_target_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prerequisite Target Id"
          },
          "registry_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Registry Id",
            "type": "string"
          },
          "registry_revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Registry Revision",
            "type": "string"
          },
          "target_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["objective", "standard", "concept", "prerequisite"],
            "title": "Target Kind",
            "type": "string"
          },
          "target_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Target Revision Id",
            "type": "string"
          },
          "target_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Revision Sha256",
            "type": "string"
          },
          "tenant_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id"
          }
        },
        "required": [
          "target_kind",
          "registry_id",
          "registry_revision",
          "target_id",
          "target_revision_id",
          "target_revision_sha256",
          "lifecycle_state",
          "authorized",
          "label",
          "description",
          "discipline_id",
          "grade_bands",
          "locale",
          "allowed_item_families",
          "locator"
        ],
        "title": "LearningTargetRegistryEntry",
        "type": "object"
      },
      "LectureAcceptanceGate": {
        "additionalProperties": false,
        "properties": {
          "can_assemble": {
            "title": "Can Assemble",
            "type": "boolean"
          },
          "gate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Gate Sha256",
            "type": "string"
          },
          "required_domains": {
            "default": [
              "media",
              "consent",
              "rights",
              "source",
              "correctness",
              "accessibility",
              "sync",
              "technical",
              "target_playback"
            ],
            "items": {
              "enum": [
                "media",
                "consent",
                "rights",
                "source",
                "correctness",
                "accessibility",
                "sync",
                "technical",
                "target_playback"
              ],
              "type": "string"
            },
            "title": "Required Domains",
            "type": "array"
          },
          "states": {
            "items": {
              "$ref": "#/components/schemas/LectureGateState"
            },
            "title": "States",
            "type": "array"
          }
        },
        "required": ["states", "can_assemble", "gate_sha256"],
        "title": "LectureAcceptanceGate",
        "type": "object"
      },
      "LectureAccessibilityTrackSpec": {
        "additionalProperties": false,
        "properties": {
          "cues": {
            "items": {
              "$ref": "#/components/schemas/LectureTimedTextCue"
            },
            "maxItems": 100000,
            "minItems": 1,
            "title": "Cues",
            "type": "array"
          },
          "kind": {
            "enum": ["captions", "transcript", "audio_description", "sign_language", "translation"],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "review_status": {
            "enum": ["draft", "machine_reviewed", "human_reviewed", "rejected"],
            "title": "Review Status",
            "type": "string"
          },
          "reviewer_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Id"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "track_id": {
            "pattern": "^lecture-track-[a-z0-9-]{3,119}$",
            "title": "Track Id",
            "type": "string"
          }
        },
        "required": [
          "track_id",
          "kind",
          "locale",
          "review_status",
          "source_revision_sha256",
          "cues"
        ],
        "title": "LectureAccessibilityTrackSpec",
        "type": "object"
      },
      "LectureAssetResponse": {
        "properties": {
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          },
          "format": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Format"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale"
          },
          "mime_type": {
            "title": "Mime Type",
            "type": "string"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          }
        },
        "required": ["asset_id", "kind", "path", "url", "mime_type"],
        "title": "LectureAssetResponse",
        "type": "object"
      },
      "LectureCaptionCueResponse": {
        "properties": {
          "end_seconds": {
            "minimum": 0.0,
            "title": "End Seconds",
            "type": "number"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "start_seconds": {
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["id", "text", "start_seconds", "end_seconds"],
        "title": "LectureCaptionCueResponse",
        "type": "object"
      },
      "LectureCaptionTrackResponse": {
        "properties": {
          "asset": {
            "$ref": "#/components/schemas/LectureAssetResponse"
          },
          "cue_count": {
            "minimum": 0.0,
            "title": "Cue Count",
            "type": "integer"
          },
          "format": {
            "enum": ["vtt", "srt"],
            "title": "Format",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          }
        },
        "required": ["locale", "format", "cue_count", "asset"],
        "title": "LectureCaptionTrackResponse",
        "type": "object"
      },
      "LectureChapterSpec": {
        "additionalProperties": false,
        "properties": {
          "chapter_id": {
            "pattern": "^lecture-chapter-[a-z0-9-]{3,119}$",
            "title": "Chapter Id",
            "type": "string"
          },
          "order": {
            "maximum": 999.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "segment_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Segment Ids",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["chapter_id", "order", "title", "segment_ids"],
        "title": "LectureChapterSpec",
        "type": "object"
      },
      "LectureComponentArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "pattern": "^lecture-artifact-[a-f0-9]{40}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_revision": {
            "minimum": 1.0,
            "title": "Artifact Revision",
            "type": "integer"
          },
          "component_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Component Id",
            "type": "string"
          },
          "component_kind": {
            "enum": [
              "segment",
              "figure",
              "caption",
              "translation",
              "accessibility_track",
              "rendition"
            ],
            "title": "Component Kind",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_in_package_revision": {
            "minimum": 1.0,
            "title": "Created In Package Revision",
            "type": "integer"
          }
        },
        "required": [
          "component_id",
          "component_kind",
          "artifact_id",
          "artifact_revision",
          "content_sha256",
          "created_in_package_revision"
        ],
        "title": "LectureComponentArtifact",
        "type": "object"
      },
      "LectureExactLink": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["media", "source", "data", "code"],
            "title": "Kind",
            "type": "string"
          },
          "link_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Link Id",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "version": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["link_id", "kind", "locator", "version", "content_sha256"],
        "title": "LectureExactLink",
        "type": "object"
      },
      "LectureExportAssetResponse": {
        "properties": {
          "asset_id": {
            "title": "Asset Id",
            "type": "string"
          },
          "format": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Format"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "lesson_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "lesson_slug": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Slug"
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale"
          },
          "mime_type": {
            "title": "Mime Type",
            "type": "string"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "source": {
            "enum": [
              "lesson_asset",
              "narration_variant_asset",
              "rendered_slide",
              "slide_speaker_notes",
              "rendered_diagram",
              "diagram_source",
              "study_notes"
            ],
            "title": "Source",
            "type": "string"
          }
        },
        "required": ["asset_id", "kind", "path", "mime_type", "source"],
        "title": "LectureExportAssetResponse",
        "type": "object"
      },
      "LectureExportBundleResponse": {
        "properties": {
          "asset_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Asset Count",
            "type": "integer"
          },
          "assets": {
            "items": {
              "$ref": "#/components/schemas/LectureExportAssetResponse"
            },
            "title": "Assets",
            "type": "array"
          },
          "entry_path": {
            "title": "Entry Path",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "type": "string"
          },
          "includes_captions": {
            "title": "Includes Captions",
            "type": "boolean"
          },
          "includes_transcript": {
            "title": "Includes Transcript",
            "type": "boolean"
          },
          "lesson_count": {
            "minimum": 0.0,
            "title": "Lesson Count",
            "type": "integer"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "title": "Locales",
            "type": "array"
          },
          "package_scope": {
            "default": "lecture_package",
            "enum": ["lecture_package", "study_media"],
            "title": "Package Scope",
            "type": "string"
          },
          "provenance": {
            "$ref": "#/components/schemas/LectureExportProvenanceMetadataResponse"
          },
          "rights": {
            "$ref": "#/components/schemas/LectureExportRightsMetadataResponse"
          },
          "subtitle_formats": {
            "items": {
              "enum": ["vtt", "srt"],
              "type": "string"
            },
            "title": "Subtitle Formats",
            "type": "array"
          }
        },
        "required": [
          "format",
          "entry_path",
          "includes_captions",
          "includes_transcript",
          "lesson_count",
          "provenance",
          "rights"
        ],
        "title": "LectureExportBundleResponse",
        "type": "object"
      },
      "LectureExportProvenanceMetadataResponse": {
        "properties": {
          "citation_labels": {
            "items": {
              "type": "string"
            },
            "title": "Citation Labels",
            "type": "array"
          },
          "lesson_ids": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Lesson Ids",
            "type": "array"
          },
          "source_package_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Package Ids",
            "type": "array"
          },
          "source_urls": {
            "items": {
              "type": "string"
            },
            "title": "Source Urls",
            "type": "array"
          },
          "status": {
            "enum": ["verified", "partial", "unknown"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["status", "summary"],
        "title": "LectureExportProvenanceMetadataResponse",
        "type": "object"
      },
      "LectureExportRightsMetadataResponse": {
        "properties": {
          "attribution_required": {
            "default": false,
            "title": "Attribution Required",
            "type": "boolean"
          },
          "distribution_scope": {
            "enum": ["course_delivery", "study_download", "lms_export"],
            "title": "Distribution Scope",
            "type": "string"
          },
          "restricted_asset_kinds": {
            "items": {
              "type": "string"
            },
            "title": "Restricted Asset Kinds",
            "type": "array"
          },
          "status": {
            "enum": ["cleared", "review_required", "restricted"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["status", "distribution_scope", "summary"],
        "title": "LectureExportRightsMetadataResponse",
        "type": "object"
      },
      "LectureGateReceipt": {
        "additionalProperties": false,
        "properties": {
          "checked_at": {
            "format": "date-time",
            "title": "Checked At",
            "type": "string"
          },
          "checked_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Checked By",
            "type": "string"
          },
          "domain": {
            "enum": [
              "media",
              "consent",
              "rights",
              "source",
              "correctness",
              "accessibility",
              "sync",
              "technical",
              "target_playback"
            ],
            "title": "Domain",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "input_spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Spec Sha256",
            "type": "string"
          },
          "receipt_id": {
            "pattern": "^lecture-gate-[a-f0-9]{40}$",
            "title": "Receipt Id",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "block", "unavailable"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "receipt_id",
          "domain",
          "status",
          "input_spec_sha256",
          "evidence_sha256",
          "summary",
          "checked_by",
          "checked_at"
        ],
        "title": "LectureGateReceipt",
        "type": "object"
      },
      "LectureGateState": {
        "additionalProperties": false,
        "properties": {
          "domain": {
            "enum": [
              "media",
              "consent",
              "rights",
              "source",
              "correctness",
              "accessibility",
              "sync",
              "technical",
              "target_playback"
            ],
            "title": "Domain",
            "type": "string"
          },
          "receipt_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receipt Id"
          },
          "status": {
            "enum": ["pass", "block", "unavailable", "missing", "stale", "expired"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["domain", "status", "summary"],
        "title": "LectureGateState",
        "type": "object"
      },
      "LectureGenerationRequest": {
        "description": "Request for generating a prerecorded lecture package for a course.",
        "properties": {
          "caption_locales": {
            "items": {
              "type": "string"
            },
            "title": "Caption Locales",
            "type": "array"
          },
          "dubbing_locales": {
            "items": {
              "$ref": "#/components/schemas/LectureLocaleVariantRequest"
            },
            "title": "Dubbing Locales",
            "type": "array"
          },
          "include_captions": {
            "default": true,
            "title": "Include Captions",
            "type": "boolean"
          },
          "include_scorm_bundle": {
            "default": true,
            "title": "Include Scorm Bundle",
            "type": "boolean"
          },
          "include_transcript": {
            "default": true,
            "title": "Include Transcript",
            "type": "boolean"
          },
          "lesson_ids": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Lesson Ids",
            "type": "array"
          },
          "presentation_template": {
            "default": "studio-lecture",
            "maxLength": 128,
            "minLength": 3,
            "title": "Presentation Template",
            "type": "string"
          },
          "pronunciation_overrides": {
            "items": {
              "$ref": "#/components/schemas/LecturePronunciationOverride"
            },
            "title": "Pronunciation Overrides",
            "type": "array"
          },
          "regenerate": {
            "default": false,
            "title": "Regenerate",
            "type": "boolean"
          },
          "subtitle_formats": {
            "items": {
              "enum": ["vtt", "srt"],
              "type": "string"
            },
            "title": "Subtitle Formats",
            "type": "array"
          },
          "target_locale": {
            "default": "en-US",
            "maxLength": 32,
            "minLength": 2,
            "title": "Target Locale",
            "type": "string"
          },
          "transcript_locales": {
            "items": {
              "type": "string"
            },
            "title": "Transcript Locales",
            "type": "array"
          },
          "voice_pack_id": {
            "default": "professional-narration-voice-pack",
            "maxLength": 128,
            "minLength": 3,
            "title": "Voice Pack Id",
            "type": "string"
          }
        },
        "title": "LectureGenerationRequest",
        "type": "object"
      },
      "LectureLessonPackageResponse": {
        "properties": {
          "assets": {
            "items": {
              "$ref": "#/components/schemas/LectureAssetResponse"
            },
            "title": "Assets",
            "type": "array"
          },
          "captions": {
            "items": {
              "$ref": "#/components/schemas/LectureCaptionCueResponse"
            },
            "title": "Captions",
            "type": "array"
          },
          "diagrams": {
            "items": {
              "$ref": "#/components/schemas/LectureRenderedDiagramResponse"
            },
            "title": "Diagrams",
            "type": "array"
          },
          "estimated_duration_seconds": {
            "minimum": 0.0,
            "title": "Estimated Duration Seconds",
            "type": "number"
          },
          "lecture_id": {
            "title": "Lecture Id",
            "type": "string"
          },
          "lesson_id": {
            "format": "uuid",
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_slug": {
            "title": "Lesson Slug",
            "type": "string"
          },
          "lesson_title": {
            "title": "Lesson Title",
            "type": "string"
          },
          "narration_variants": {
            "items": {
              "$ref": "#/components/schemas/LectureNarrationVariantResponse"
            },
            "title": "Narration Variants",
            "type": "array"
          },
          "notes": {
            "items": {
              "$ref": "#/components/schemas/LectureRenderedNotesResponse"
            },
            "title": "Notes",
            "type": "array"
          },
          "script_sections": {
            "items": {
              "$ref": "#/components/schemas/LectureScriptSectionResponse"
            },
            "title": "Script Sections",
            "type": "array"
          },
          "slides": {
            "items": {
              "$ref": "#/components/schemas/LectureRenderedSlideResponse"
            },
            "title": "Slides",
            "type": "array"
          },
          "transcript": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript"
          }
        },
        "required": [
          "lecture_id",
          "lesson_id",
          "lesson_title",
          "lesson_slug",
          "estimated_duration_seconds"
        ],
        "title": "LectureLessonPackageResponse",
        "type": "object"
      },
      "LectureLessonQualityEvaluationResponse": {
        "description": "Per-lesson media quality evaluation for a prerecorded lecture package.",
        "properties": {
          "audio_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "caption_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_title": {
            "title": "Lesson Title",
            "type": "string"
          },
          "sync_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "video_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          }
        },
        "required": [
          "lesson_id",
          "lesson_title",
          "audio_quality",
          "video_quality",
          "caption_quality",
          "sync_quality"
        ],
        "title": "LectureLessonQualityEvaluationResponse",
        "type": "object"
      },
      "LectureLocaleVariantRequest": {
        "description": "Locale-specific lecture render request.",
        "properties": {
          "locale": {
            "maxLength": 32,
            "minLength": 2,
            "title": "Locale",
            "type": "string"
          },
          "voice_pack_id": {
            "maxLength": 128,
            "minLength": 3,
            "title": "Voice Pack Id",
            "type": "string"
          }
        },
        "required": ["locale", "voice_pack_id"],
        "title": "LectureLocaleVariantRequest",
        "type": "object"
      },
      "LectureMediaEvaluationResponse": {
        "description": "Persisted media evaluation for a prerecorded lecture package.",
        "properties": {
          "audio_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "caption_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "lesson_reports": {
            "items": {
              "$ref": "#/components/schemas/LectureLessonQualityEvaluationResponse"
            },
            "title": "Lesson Reports",
            "type": "array"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "research_basis": {
            "items": {
              "type": "string"
            },
            "title": "Research Basis",
            "type": "array"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "sync_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "video_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          }
        },
        "required": [
          "package_id",
          "course_id",
          "course_title",
          "overall_score",
          "audio_quality",
          "video_quality",
          "caption_quality",
          "sync_quality",
          "status",
          "generated_at",
          "evaluated_at"
        ],
        "title": "LectureMediaEvaluationResponse",
        "type": "object"
      },
      "LectureNarrationVariantResponse": {
        "properties": {
          "assets": {
            "items": {
              "$ref": "#/components/schemas/LectureAssetResponse"
            },
            "title": "Assets",
            "type": "array"
          },
          "captions": {
            "items": {
              "$ref": "#/components/schemas/LectureCaptionTrackResponse"
            },
            "title": "Captions",
            "type": "array"
          },
          "dubbed_from_locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dubbed From Locale"
          },
          "kind": {
            "enum": ["primary", "dubbed"],
            "title": "Kind",
            "type": "string"
          },
          "language_label": {
            "title": "Language Label",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "pronunciation_overrides": {
            "items": {
              "$ref": "#/components/schemas/LecturePronunciationOverride"
            },
            "title": "Pronunciation Overrides",
            "type": "array"
          },
          "script_sections": {
            "items": {
              "$ref": "#/components/schemas/LectureScriptSectionResponse"
            },
            "title": "Script Sections",
            "type": "array"
          },
          "transcript": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LectureTranscriptVariantResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "translation_status": {
            "enum": ["source", "timing_template"],
            "title": "Translation Status",
            "type": "string"
          },
          "voice_pack_id": {
            "title": "Voice Pack Id",
            "type": "string"
          }
        },
        "required": ["locale", "kind", "voice_pack_id", "language_label", "translation_status"],
        "title": "LectureNarrationVariantResponse",
        "type": "object"
      },
      "LectureObjectiveRef": {
        "additionalProperties": false,
        "properties": {
          "objective_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Objective Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          }
        },
        "required": ["objective_id", "revision_id"],
        "title": "LectureObjectiveRef",
        "type": "object"
      },
      "LecturePackageAssembleRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["expected_revision", "expected_revision_sha256", "reason", "idempotency_key"],
        "title": "LecturePackageAssembleRequest",
        "type": "object"
      },
      "LecturePackageAuthoringSpec": {
        "additionalProperties": false,
        "properties": {
          "accessibility_tracks": {
            "items": {
              "$ref": "#/components/schemas/LectureAccessibilityTrackSpec"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Accessibility Tracks",
            "type": "array"
          },
          "chapters": {
            "items": {
              "$ref": "#/components/schemas/LectureChapterSpec"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Chapters",
            "type": "array"
          },
          "presenters": {
            "items": {
              "$ref": "#/components/schemas/LecturePresenterSpec"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Presenters",
            "type": "array"
          },
          "primary_locale": {
            "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
            "title": "Primary Locale",
            "type": "string"
          },
          "renditions": {
            "items": {
              "$ref": "#/components/schemas/LectureRenditionSpec"
            },
            "maxItems": 10000,
            "minItems": 4,
            "title": "Renditions",
            "type": "array"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/LectureSegmentSpec"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Segments",
            "type": "array"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "visual_cues": {
            "items": {
              "$ref": "#/components/schemas/LectureVisualCueSpec"
            },
            "maxItems": 20000,
            "title": "Visual Cues",
            "type": "array"
          }
        },
        "required": [
          "title",
          "source_revision_sha256",
          "primary_locale",
          "presenters",
          "chapters",
          "segments",
          "accessibility_tracks",
          "renditions"
        ],
        "title": "LecturePackageAuthoringSpec",
        "type": "object"
      },
      "LecturePackageCatalog": {
        "additionalProperties": false,
        "properties": {
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "packages": {
            "items": {
              "$ref": "#/components/schemas/LecturePackageRevision"
            },
            "title": "Packages",
            "type": "array"
          }
        },
        "required": ["lesson_id", "packages", "catalog_sha256"],
        "title": "LecturePackageCatalog",
        "type": "object"
      },
      "LecturePackageCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_witness": {
            "$ref": "#/components/schemas/TeachingMediaLessonWitness"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/LecturePackageAuthoringSpec"
          }
        },
        "required": ["expected_witness", "spec", "reason", "idempotency_key"],
        "title": "LecturePackageCreateRequest",
        "type": "object"
      },
      "LecturePackageGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "receipts": {
            "items": {
              "$ref": "#/components/schemas/LectureGateReceipt"
            },
            "maxItems": 9,
            "minItems": 1,
            "title": "Receipts",
            "type": "array"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "receipts",
          "reason",
          "idempotency_key"
        ],
        "title": "LecturePackageGateRequest",
        "type": "object"
      },
      "LecturePackageHistory": {
        "additionalProperties": false,
        "properties": {
          "current": {
            "$ref": "#/components/schemas/LecturePackageRevision"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/LecturePackageRevision"
            },
            "title": "Revisions",
            "type": "array"
          }
        },
        "required": ["package_id", "current", "revisions"],
        "title": "LecturePackageHistory",
        "type": "object"
      },
      "LecturePackageReviseRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/LecturePackageAuthoringSpec"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "spec",
          "reason",
          "idempotency_key"
        ],
        "title": "LecturePackageReviseRequest",
        "type": "object"
      },
      "LecturePackageRevision": {
        "additionalProperties": false,
        "properties": {
          "acceptance_gate": {
            "$ref": "#/components/schemas/LectureAcceptanceGate"
          },
          "action": {
            "enum": [
              "create",
              "revise",
              "replace",
              "accept_replacement",
              "record_gates",
              "assemble"
            ],
            "title": "Action",
            "type": "string"
          },
          "component_manifest": {
            "items": {
              "$ref": "#/components/schemas/LectureComponentArtifact"
            },
            "title": "Component Manifest",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "gate_receipts": {
            "items": {
              "$ref": "#/components/schemas/LectureGateReceipt"
            },
            "maxItems": 1000,
            "title": "Gate Receipts",
            "type": "array"
          },
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_role": {
            "enum": ["admin", "instructor"],
            "title": "Owner Role",
            "type": "string"
          },
          "package_id": {
            "pattern": "^lecture-authoring-[a-f0-9]{40}$",
            "title": "Package Id",
            "type": "string"
          },
          "playback_package": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LecturePlaybackPackage"
              },
              {
                "type": "null"
              }
            ]
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "replacement": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LectureReplacementRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "revised_at": {
            "format": "date-time",
            "title": "Revised At",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/LecturePackageAuthoringSpec"
          },
          "spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Spec Sha256",
            "type": "string"
          },
          "state": {
            "enum": ["draft", "replacement_review", "gate_review", "ready", "assembled"],
            "title": "State",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/TeachingMediaLessonWitness"
          }
        },
        "required": [
          "package_id",
          "revision",
          "witness",
          "owner_id",
          "owner_role",
          "state",
          "action",
          "reason",
          "spec",
          "spec_sha256",
          "acceptance_gate",
          "revision_sha256",
          "created_at",
          "revised_at"
        ],
        "title": "LecturePackageRevision",
        "type": "object"
      },
      "LecturePlaybackPackage": {
        "additionalProperties": false,
        "properties": {
          "accessibility_tracks": {
            "items": {
              "$ref": "#/components/schemas/LectureAccessibilityTrackSpec"
            },
            "title": "Accessibility Tracks",
            "type": "array"
          },
          "authoring_package_id": {
            "pattern": "^lecture-authoring-[a-f0-9]{40}$",
            "title": "Authoring Package Id",
            "type": "string"
          },
          "authoring_revision": {
            "minimum": 1.0,
            "title": "Authoring Revision",
            "type": "integer"
          },
          "authoring_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Authoring Revision Sha256",
            "type": "string"
          },
          "chapters": {
            "items": {
              "$ref": "#/components/schemas/LectureChapterSpec"
            },
            "title": "Chapters",
            "type": "array"
          },
          "duration_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 86400.0,
            "title": "Duration Seconds",
            "type": "number"
          },
          "gate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Gate Sha256",
            "type": "string"
          },
          "manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          },
          "playback_package_id": {
            "pattern": "^lecture-playback-[a-f0-9]{40}$",
            "title": "Playback Package Id",
            "type": "string"
          },
          "presenters": {
            "items": {
              "$ref": "#/components/schemas/LecturePresenterSpec"
            },
            "title": "Presenters",
            "type": "array"
          },
          "primary_locale": {
            "title": "Primary Locale",
            "type": "string"
          },
          "renditions": {
            "items": {
              "$ref": "#/components/schemas/LectureRenditionSpec"
            },
            "title": "Renditions",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/LectureSegmentSpec"
            },
            "title": "Segments",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "visual_cues": {
            "items": {
              "$ref": "#/components/schemas/LectureVisualCueSpec"
            },
            "title": "Visual Cues",
            "type": "array"
          }
        },
        "required": [
          "playback_package_id",
          "authoring_package_id",
          "authoring_revision",
          "authoring_revision_sha256",
          "title",
          "primary_locale",
          "duration_seconds",
          "presenters",
          "chapters",
          "segments",
          "visual_cues",
          "accessibility_tracks",
          "renditions",
          "gate_sha256",
          "manifest_sha256"
        ],
        "title": "LecturePlaybackPackage",
        "type": "object"
      },
      "LecturePresenterConsent": {
        "additionalProperties": false,
        "properties": {
          "consent_status": {
            "enum": ["verified", "pending", "revoked", "expired"],
            "title": "Consent Status",
            "type": "string"
          },
          "disclosure": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Disclosure",
            "type": "string"
          },
          "disclosure_required": {
            "default": true,
            "title": "Disclosure Required",
            "type": "boolean"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "granted_at": {
            "format": "date-time",
            "title": "Granted At",
            "type": "string"
          },
          "identity_verified": {
            "title": "Identity Verified",
            "type": "boolean"
          },
          "rights_status": {
            "enum": ["cleared", "review_required", "restricted", "expired"],
            "title": "Rights Status",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": [
          "subject_id",
          "identity_verified",
          "consent_status",
          "rights_status",
          "disclosure",
          "evidence_sha256",
          "granted_at",
          "expires_at"
        ],
        "title": "LecturePresenterConsent",
        "type": "object"
      },
      "LecturePresenterSpec": {
        "additionalProperties": false,
        "properties": {
          "avatar_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Id"
          },
          "consent": {
            "$ref": "#/components/schemas/LecturePresenterConsent"
          },
          "display_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "modality": {
            "enum": ["human", "avatar", "voice_only"],
            "title": "Modality",
            "type": "string"
          },
          "performance": {
            "enum": ["conversational", "formal", "energetic", "measured"],
            "title": "Performance",
            "type": "string"
          },
          "presenter_id": {
            "pattern": "^lecture-presenter-[a-z0-9-]{3,119}$",
            "title": "Presenter Id",
            "type": "string"
          },
          "pronunciations": {
            "items": {
              "$ref": "#/components/schemas/LecturePronunciationSpec"
            },
            "maxItems": 2000,
            "title": "Pronunciations",
            "type": "array"
          },
          "speaking_rate": {
            "maximum": 2.0,
            "minimum": 0.5,
            "title": "Speaking Rate",
            "type": "number"
          },
          "voice_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Voice Id",
            "type": "string"
          }
        },
        "required": [
          "presenter_id",
          "display_name",
          "modality",
          "voice_id",
          "locale",
          "performance",
          "speaking_rate",
          "consent"
        ],
        "title": "LecturePresenterSpec",
        "type": "object"
      },
      "LecturePronunciationOverride": {
        "description": "Pronunciation control for a specific term within one or more locales.",
        "properties": {
          "locale": {
            "default": "*",
            "maxLength": 32,
            "minLength": 1,
            "title": "Locale",
            "type": "string"
          },
          "notes": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "phonetic": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phonetic"
          },
          "spoken_as": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Spoken As",
            "type": "string"
          },
          "term": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["term", "spoken_as"],
        "title": "LecturePronunciationOverride",
        "type": "object"
      },
      "LecturePronunciationSpec": {
        "additionalProperties": false,
        "properties": {
          "phonetic": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phonetic"
          },
          "spoken_as": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Spoken As",
            "type": "string"
          },
          "term": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["term", "spoken_as"],
        "title": "LecturePronunciationSpec",
        "type": "object"
      },
      "LectureRenderBatchResponse": {
        "properties": {
          "batch_id": {
            "title": "Batch Id",
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "completed_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Completed Count",
            "type": "integer"
          },
          "failed_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Failed Count",
            "type": "integer"
          },
          "jobs": {
            "items": {
              "$ref": "#/components/schemas/LectureRenderJobResponse"
            },
            "title": "Jobs",
            "type": "array"
          },
          "kind": {
            "enum": ["slides", "diagrams", "notes", "lecture_package"],
            "title": "Kind",
            "type": "string"
          },
          "pipeline": {
            "default": "metis-lecture-render-pipeline",
            "title": "Pipeline",
            "type": "string"
          },
          "provider": {
            "default": "yemaya-batch-render",
            "title": "Provider",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "sequential": {
            "default": true,
            "title": "Sequential",
            "type": "boolean"
          },
          "status": {
            "default": "completed",
            "enum": ["queued", "processing", "completed", "failed", "cancelled"],
            "title": "Status",
            "type": "string"
          },
          "total_progress": {
            "default": 100,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Total Progress",
            "type": "number"
          }
        },
        "required": ["batch_id", "kind", "requested_at"],
        "title": "LectureRenderBatchResponse",
        "type": "object"
      },
      "LectureRenderJobResponse": {
        "properties": {
          "diagnostics": {
            "items": {
              "type": "string"
            },
            "title": "Diagnostics",
            "type": "array"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "kind": {
            "enum": ["slides", "diagrams", "notes", "lecture_package"],
            "title": "Kind",
            "type": "string"
          },
          "lesson_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "output_asset_ids": {
            "items": {
              "type": "string"
            },
            "title": "Output Asset Ids",
            "type": "array"
          },
          "output_paths": {
            "items": {
              "type": "string"
            },
            "title": "Output Paths",
            "type": "array"
          },
          "progress": {
            "default": 100,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Progress",
            "type": "integer"
          },
          "status": {
            "default": "completed",
            "enum": ["queued", "processing", "completed", "failed", "cancelled"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["job_id", "kind", "locale"],
        "title": "LectureRenderJobResponse",
        "type": "object"
      },
      "LectureRenderedDiagramResponse": {
        "properties": {
          "diagram_id": {
            "title": "Diagram Id",
            "type": "string"
          },
          "diagram_type": {
            "enum": ["flowchart", "concept_map", "sequence"],
            "title": "Diagram Type",
            "type": "string"
          },
          "rendered_asset": {
            "$ref": "#/components/schemas/LectureAssetResponse"
          },
          "section_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Section Id"
          },
          "slide_asset_ids": {
            "items": {
              "type": "string"
            },
            "title": "Slide Asset Ids",
            "type": "array"
          },
          "source_asset": {
            "$ref": "#/components/schemas/LectureAssetResponse"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["diagram_id", "title", "diagram_type", "source_asset", "rendered_asset"],
        "title": "LectureRenderedDiagramResponse",
        "type": "object"
      },
      "LectureRenderedNotesResponse": {
        "properties": {
          "html_asset": {
            "$ref": "#/components/schemas/LectureAssetResponse"
          },
          "kind": {
            "enum": ["speaker_notes", "study_guide"],
            "title": "Kind",
            "type": "string"
          },
          "markdown_asset": {
            "$ref": "#/components/schemas/LectureAssetResponse"
          },
          "word_count": {
            "minimum": 0.0,
            "title": "Word Count",
            "type": "integer"
          }
        },
        "required": ["kind", "markdown_asset", "html_asset", "word_count"],
        "title": "LectureRenderedNotesResponse",
        "type": "object"
      },
      "LectureRenderedSlideResponse": {
        "properties": {
          "asset": {
            "$ref": "#/components/schemas/LectureAssetResponse"
          },
          "diagram_asset_ids": {
            "items": {
              "type": "string"
            },
            "title": "Diagram Asset Ids",
            "type": "array"
          },
          "duration_seconds": {
            "minimum": 0.0,
            "title": "Duration Seconds",
            "type": "number"
          },
          "section_id": {
            "title": "Section Id",
            "type": "string"
          },
          "slide_id": {
            "title": "Slide Id",
            "type": "string"
          },
          "slide_number": {
            "minimum": 1.0,
            "title": "Slide Number",
            "type": "integer"
          },
          "speaker_notes_asset": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LectureAssetResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "slide_id",
          "slide_number",
          "title",
          "section_id",
          "duration_seconds",
          "asset"
        ],
        "title": "LectureRenderedSlideResponse",
        "type": "object"
      },
      "LectureRenditionSpec": {
        "additionalProperties": false,
        "properties": {
          "bandwidth": {
            "enum": ["low", "standard", "high"],
            "title": "Bandwidth",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "device": {
            "enum": ["phone", "tablet", "desktop", "tv", "screen_reader"],
            "title": "Device",
            "type": "string"
          },
          "kind": {
            "enum": ["video", "audio", "slides", "text"],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "mime_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Mime Type",
            "type": "string"
          },
          "offline": {
            "title": "Offline",
            "type": "boolean"
          },
          "rendition_id": {
            "pattern": "^lecture-rendition-[a-z0-9-]{3,119}$",
            "title": "Rendition Id",
            "type": "string"
          },
          "track_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Track Ids",
            "type": "array"
          }
        },
        "required": [
          "rendition_id",
          "kind",
          "locale",
          "device",
          "bandwidth",
          "offline",
          "mime_type",
          "locator",
          "content_sha256"
        ],
        "title": "LectureRenditionSpec",
        "type": "object"
      },
      "LectureReplacementAcceptance": {
        "additionalProperties": false,
        "properties": {
          "acceptance_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Acceptance Sha256",
            "type": "string"
          },
          "accepted_at": {
            "format": "date-time",
            "title": "Accepted At",
            "type": "string"
          },
          "decision": {
            "const": "accept",
            "default": "accept",
            "title": "Decision",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "enum": ["admin", "instructor"],
            "title": "Reviewer Role",
            "type": "string"
          }
        },
        "required": ["reviewer_id", "reviewer_role", "reason", "accepted_at", "acceptance_sha256"],
        "title": "LectureReplacementAcceptance",
        "type": "object"
      },
      "LectureReplacementBoundary": {
        "additionalProperties": false,
        "properties": {
          "preserve_format": {
            "const": true,
            "default": true,
            "title": "Preserve Format",
            "type": "boolean"
          },
          "preserve_layout": {
            "const": true,
            "default": true,
            "title": "Preserve Layout",
            "type": "boolean"
          },
          "preserve_locale": {
            "const": true,
            "default": true,
            "title": "Preserve Locale",
            "type": "boolean"
          },
          "preserve_style": {
            "const": true,
            "default": true,
            "title": "Preserve Style",
            "type": "boolean"
          },
          "preserve_timing": {
            "const": true,
            "default": true,
            "title": "Preserve Timing",
            "type": "boolean"
          },
          "preserve_voice": {
            "const": true,
            "default": true,
            "title": "Preserve Voice",
            "type": "boolean"
          }
        },
        "title": "LectureReplacementBoundary",
        "type": "object"
      },
      "LectureReplacementDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "const": "accept",
            "default": "accept",
            "title": "Decision",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "replacement_id": {
            "pattern": "^lecture-replacement-[a-f0-9]{40}$",
            "title": "Replacement Id",
            "type": "string"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "replacement_id",
          "reason",
          "idempotency_key"
        ],
        "title": "LectureReplacementDecisionRequest",
        "type": "object"
      },
      "LectureReplacementExecuteRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_impact_preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Impact Preview Sha256",
            "type": "string"
          },
          "expected_package_id": {
            "pattern": "^lecture-authoring-[a-f0-9]{40}$",
            "title": "Expected Package Id",
            "type": "string"
          },
          "expected_package_revision": {
            "minimum": 1.0,
            "title": "Expected Package Revision",
            "type": "integer"
          },
          "expected_package_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Package Revision Sha256",
            "type": "string"
          },
          "expected_project_id": {
            "pattern": "^lecture-project-[a-f0-9]{40}$",
            "title": "Expected Project Id",
            "type": "string"
          },
          "expected_spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Spec Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "replacement_spec": {
            "$ref": "#/components/schemas/LecturePackageAuthoringSpec"
          },
          "requested_change": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Requested Change",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/LectureReplacementTarget"
          }
        },
        "required": [
          "expected_project_id",
          "expected_package_id",
          "expected_package_revision",
          "expected_package_revision_sha256",
          "expected_spec_sha256",
          "target",
          "requested_change",
          "reason",
          "expected_impact_preview_sha256",
          "replacement_spec",
          "idempotency_key"
        ],
        "title": "LectureReplacementExecuteRequest",
        "type": "object"
      },
      "LectureReplacementImpactEdge": {
        "additionalProperties": false,
        "properties": {
          "from_component_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "From Component Id",
            "type": "string"
          },
          "reason": {
            "enum": [
              "segment_visual",
              "segment_timed_text",
              "track_rendition",
              "figure_rendition",
              "narration_rendition"
            ],
            "title": "Reason",
            "type": "string"
          },
          "to_component_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "To Component Id",
            "type": "string"
          }
        },
        "required": ["from_component_id", "to_component_id", "reason"],
        "title": "LectureReplacementImpactEdge",
        "type": "object"
      },
      "LectureReplacementImpactPreview": {
        "additionalProperties": false,
        "properties": {
          "affected_stage_ids": {
            "items": {
              "enum": [
                "source_binding",
                "specification",
                "script",
                "render",
                "audio",
                "synchronization",
                "accessibility",
                "localization",
                "rendition",
                "assembly"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Affected Stage Ids",
            "type": "array"
          },
          "boundary": {
            "$ref": "#/components/schemas/LectureReplacementBoundary"
          },
          "changed_component_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1,
            "minItems": 1,
            "title": "Changed Component Ids",
            "type": "array"
          },
          "dependency_edges": {
            "items": {
              "$ref": "#/components/schemas/LectureReplacementImpactEdge"
            },
            "title": "Dependency Edges",
            "type": "array"
          },
          "invalidated_approval_receipt_ids": {
            "items": {
              "type": "string"
            },
            "title": "Invalidated Approval Receipt Ids",
            "type": "array"
          },
          "invalidated_component_ids": {
            "items": {
              "type": "string"
            },
            "title": "Invalidated Component Ids",
            "type": "array"
          },
          "invalidated_gate_domains": {
            "items": {
              "enum": [
                "media",
                "consent",
                "rights",
                "source",
                "correctness",
                "accessibility",
                "sync",
                "technical",
                "target_playback"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Invalidated Gate Domains",
            "type": "array"
          },
          "package_id": {
            "pattern": "^lecture-authoring-[a-f0-9]{40}$",
            "title": "Package Id",
            "type": "string"
          },
          "package_revision": {
            "minimum": 1.0,
            "title": "Package Revision",
            "type": "integer"
          },
          "package_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Package Revision Sha256",
            "type": "string"
          },
          "preview_id": {
            "pattern": "^lecture-replacement-preview-[a-f0-9]{40}$",
            "title": "Preview Id",
            "type": "string"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "prior_playback_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prior Playback Package Id"
          },
          "project_id": {
            "pattern": "^lecture-project-[a-f0-9]{40}$",
            "title": "Project Id",
            "type": "string"
          },
          "requested_change": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Requested Change",
            "type": "string"
          },
          "retained_component_ids": {
            "items": {
              "type": "string"
            },
            "title": "Retained Component Ids",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Spec Sha256",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/LectureReplacementTarget"
          }
        },
        "required": [
          "preview_id",
          "project_id",
          "package_id",
          "package_revision",
          "package_revision_sha256",
          "spec_sha256",
          "target",
          "boundary",
          "affected_stage_ids",
          "changed_component_ids",
          "invalidated_gate_domains",
          "requested_change",
          "preview_sha256"
        ],
        "title": "LectureReplacementImpactPreview",
        "type": "object"
      },
      "LectureReplacementImpactRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_package_id": {
            "pattern": "^lecture-authoring-[a-f0-9]{40}$",
            "title": "Expected Package Id",
            "type": "string"
          },
          "expected_package_revision": {
            "minimum": 1.0,
            "title": "Expected Package Revision",
            "type": "integer"
          },
          "expected_package_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Package Revision Sha256",
            "type": "string"
          },
          "expected_project_id": {
            "pattern": "^lecture-project-[a-f0-9]{40}$",
            "title": "Expected Project Id",
            "type": "string"
          },
          "expected_spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Spec Sha256",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "requested_change": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Requested Change",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/LectureReplacementTarget"
          }
        },
        "required": [
          "expected_project_id",
          "expected_package_id",
          "expected_package_revision",
          "expected_package_revision_sha256",
          "expected_spec_sha256",
          "target",
          "requested_change",
          "reason"
        ],
        "title": "LectureReplacementImpactRequest",
        "type": "object"
      },
      "LectureReplacementRecord": {
        "additionalProperties": false,
        "properties": {
          "acceptance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LectureReplacementAcceptance"
              },
              {
                "type": "null"
              }
            ]
          },
          "after_artifact": {
            "$ref": "#/components/schemas/LectureComponentArtifact"
          },
          "base_package_revision": {
            "minimum": 1.0,
            "title": "Base Package Revision",
            "type": "integer"
          },
          "base_package_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Base Package Revision Sha256",
            "type": "string"
          },
          "base_spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Base Spec Sha256",
            "type": "string"
          },
          "before_artifact": {
            "$ref": "#/components/schemas/LectureComponentArtifact"
          },
          "boundary": {
            "$ref": "#/components/schemas/LectureReplacementBoundary"
          },
          "impact_preview_id": {
            "pattern": "^lecture-replacement-preview-[a-f0-9]{40}$",
            "title": "Impact Preview Id",
            "type": "string"
          },
          "impact_preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Impact Preview Sha256",
            "type": "string"
          },
          "invalidated_approval_receipt_ids": {
            "items": {
              "type": "string"
            },
            "title": "Invalidated Approval Receipt Ids",
            "type": "array"
          },
          "invalidated_component_ids": {
            "items": {
              "type": "string"
            },
            "title": "Invalidated Component Ids",
            "type": "array"
          },
          "invalidated_gate_domains": {
            "items": {
              "enum": [
                "media",
                "consent",
                "rights",
                "source",
                "correctness",
                "accessibility",
                "sync",
                "technical",
                "target_playback"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Invalidated Gate Domains",
            "type": "array"
          },
          "prior_playback_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prior Playback Package Id"
          },
          "proposed_at": {
            "format": "date-time",
            "title": "Proposed At",
            "type": "string"
          },
          "proposed_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Proposed By",
            "type": "string"
          },
          "replacement_id": {
            "pattern": "^lecture-replacement-[a-f0-9]{40}$",
            "title": "Replacement Id",
            "type": "string"
          },
          "replacement_spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Replacement Spec Sha256",
            "type": "string"
          },
          "requested_change": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Requested Change",
            "type": "string"
          },
          "retained_artifacts": {
            "items": {
              "$ref": "#/components/schemas/LectureComponentArtifact"
            },
            "title": "Retained Artifacts",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/LectureReplacementTarget"
          }
        },
        "required": [
          "replacement_id",
          "impact_preview_id",
          "impact_preview_sha256",
          "target",
          "requested_change",
          "boundary",
          "base_package_revision",
          "base_package_revision_sha256",
          "base_spec_sha256",
          "replacement_spec_sha256",
          "before_artifact",
          "after_artifact",
          "invalidated_gate_domains",
          "proposed_by",
          "proposed_at"
        ],
        "title": "LectureReplacementRecord",
        "type": "object"
      },
      "LectureReplacementTarget": {
        "additionalProperties": false,
        "properties": {
          "component_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Component Id",
            "type": "string"
          },
          "expected_artifact_id": {
            "pattern": "^lecture-artifact-[a-f0-9]{40}$",
            "title": "Expected Artifact Id",
            "type": "string"
          },
          "expected_artifact_revision": {
            "minimum": 1.0,
            "title": "Expected Artifact Revision",
            "type": "integer"
          },
          "expected_artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Artifact Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["segment", "figure", "narration_range", "caption", "translation", "rendition"],
            "title": "Kind",
            "type": "string"
          },
          "range_end_seconds": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "maximum": 86400.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Range End Seconds"
          },
          "range_start_seconds": {
            "anyOf": [
              {
                "maximum": 86400.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Range Start Seconds"
          }
        },
        "required": [
          "kind",
          "component_id",
          "expected_artifact_id",
          "expected_artifact_revision",
          "expected_artifact_sha256"
        ],
        "title": "LectureReplacementTarget",
        "type": "object"
      },
      "LectureScriptSectionResponse": {
        "properties": {
          "end_seconds": {
            "minimum": 0.0,
            "title": "End Seconds",
            "type": "number"
          },
          "heading": {
            "title": "Heading",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "narration_text": {
            "title": "Narration Text",
            "type": "string"
          },
          "start_seconds": {
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "visual_cue": {
            "title": "Visual Cue",
            "type": "string"
          }
        },
        "required": [
          "id",
          "heading",
          "narration_text",
          "visual_cue",
          "start_seconds",
          "end_seconds"
        ],
        "title": "LectureScriptSectionResponse",
        "type": "object"
      },
      "LectureSegmentSpec": {
        "additionalProperties": false,
        "properties": {
          "depends_on_segment_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Depends On Segment Ids",
            "type": "array"
          },
          "end_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 86400.0,
            "title": "End Seconds",
            "type": "number"
          },
          "narration": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Narration",
            "type": "string"
          },
          "objective_refs": {
            "items": {
              "$ref": "#/components/schemas/LectureObjectiveRef"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Refs",
            "type": "array"
          },
          "order": {
            "maximum": 9999.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "segment_id": {
            "pattern": "^lecture-segment-[a-z0-9-]{3,119}$",
            "title": "Segment Id",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "$ref": "#/components/schemas/LectureSourceRef"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          },
          "speaker_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Speaker Id",
            "type": "string"
          },
          "start_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "visual_cue_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Visual Cue Ids",
            "type": "array"
          }
        },
        "required": [
          "segment_id",
          "order",
          "speaker_id",
          "narration",
          "start_seconds",
          "end_seconds",
          "objective_refs",
          "source_refs"
        ],
        "title": "LectureSegmentSpec",
        "type": "object"
      },
      "LectureSourceRef": {
        "additionalProperties": false,
        "properties": {
          "citation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Citation Id",
            "type": "string"
          },
          "citation_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Citation Locator",
            "type": "string"
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_version_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Version Id",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "source_version_id",
          "source_sha256",
          "citation_id",
          "citation_locator"
        ],
        "title": "LectureSourceRef",
        "type": "object"
      },
      "LectureTimedTextCue": {
        "additionalProperties": false,
        "properties": {
          "cue_id": {
            "pattern": "^lecture-track-cue-[a-z0-9-]{3,119}$",
            "title": "Cue Id",
            "type": "string"
          },
          "end_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 86400.0,
            "title": "End Seconds",
            "type": "number"
          },
          "source_segment_id": {
            "pattern": "^lecture-segment-[a-z0-9-]{3,119}$",
            "title": "Source Segment Id",
            "type": "string"
          },
          "speaker_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Speaker Id",
            "type": "string"
          },
          "start_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "cue_id",
          "source_segment_id",
          "speaker_id",
          "start_seconds",
          "end_seconds",
          "text"
        ],
        "title": "LectureTimedTextCue",
        "type": "object"
      },
      "LectureTranscriptVariantResponse": {
        "properties": {
          "asset": {
            "$ref": "#/components/schemas/LectureAssetResponse"
          },
          "kind": {
            "enum": ["source", "timing_template"],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["locale", "kind", "text", "asset"],
        "title": "LectureTranscriptVariantResponse",
        "type": "object"
      },
      "LectureVisualCueSpec": {
        "additionalProperties": false,
        "properties": {
          "alt_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Alt Text",
            "type": "string"
          },
          "cue_id": {
            "pattern": "^lecture-cue-[a-z0-9-]{3,119}$",
            "title": "Cue Id",
            "type": "string"
          },
          "end_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 86400.0,
            "title": "End Seconds",
            "type": "number"
          },
          "exact_links": {
            "items": {
              "$ref": "#/components/schemas/LectureExactLink"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Exact Links",
            "type": "array"
          },
          "instruction": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Instruction",
            "type": "string"
          },
          "kind": {
            "enum": ["slide", "diagram", "chart", "code", "demonstration"],
            "title": "Kind",
            "type": "string"
          },
          "segment_id": {
            "pattern": "^lecture-segment-[a-z0-9-]{3,119}$",
            "title": "Segment Id",
            "type": "string"
          },
          "start_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "cue_id",
          "segment_id",
          "kind",
          "title",
          "instruction",
          "start_seconds",
          "end_seconds",
          "exact_links",
          "alt_text"
        ],
        "title": "LectureVisualCueSpec",
        "type": "object"
      },
      "LedgerProjection": {
        "additionalProperties": false,
        "description": "The derived current state of one grade, and what it was derived from.",
        "properties": {
          "current_kind": {
            "enum": ["scored", "rescored", "corrected", "voided", "restored"],
            "title": "Current Kind",
            "type": "string"
          },
          "current_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Value"
          },
          "entries_ordered": {
            "minimum": 1.0,
            "title": "Entries Ordered",
            "type": "integer"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "history_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "History Sha256",
            "type": "string"
          },
          "rebuilt_at": {
            "format": "date-time",
            "title": "Rebuilt At",
            "type": "string"
          },
          "schema_version": {
            "const": "8.11.0",
            "default": "8.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "grade_id",
          "tenant_id",
          "version",
          "current_kind",
          "history_sha256",
          "entries_ordered",
          "rebuilt_at"
        ],
        "title": "LedgerProjection",
        "type": "object"
      },
      "LedgerRefusal": {
        "additionalProperties": false,
        "description": "Why an append did not happen. Every reason at once, never the first one.",
        "properties": {
          "ambiguity": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OrderAmbiguity"
              },
              {
                "type": "null"
              }
            ]
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "reasons": {
            "items": {
              "enum": [
                "ambiguous_order",
                "stale_version",
                "unauthorized_actor",
                "source_not_spoken_for",
                "scale_mismatch",
                "grade_mismatch",
                "corrects_unknown_event"
              ],
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Reasons",
            "type": "array"
          }
        },
        "required": ["grade_id", "reasons", "detail"],
        "title": "LedgerRefusal",
        "type": "object"
      },
      "LegalHold": {
        "additionalProperties": false,
        "properties": {
          "basis": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Basis",
            "type": "string"
          },
          "hold_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Hold Id",
            "type": "string"
          },
          "placed_at": {
            "format": "date-time",
            "title": "Placed At",
            "type": "string"
          },
          "placed_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Placed By Digest",
            "type": "string"
          },
          "placed_by_role": {
            "const": "integrity_lead",
            "default": "integrity_lead",
            "title": "Placed By Role",
            "type": "string"
          },
          "released_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Released At"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["signal", "case"],
            "title": "Subject Kind",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "hold_id",
          "tenant_id",
          "subject_kind",
          "subject_id",
          "placed_by_digest",
          "basis",
          "placed_at"
        ],
        "title": "LegalHold",
        "type": "object"
      },
      "LessonActivityAssessmentHook": {
        "additionalProperties": false,
        "description": "Public hook metadata; scoring policy and answer material remain server-side.",
        "properties": {
          "hook_id": {
            "pattern": "^[a-z][a-z0-9_]{1,79}$",
            "title": "Hook Id",
            "type": "string"
          },
          "observation_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Observation Ids",
            "type": "array"
          },
          "response_schema_id": {
            "enum": ["classification-response-v1", "confidence-response-v1"],
            "title": "Response Schema Id",
            "type": "string"
          },
          "scoring_evidence_fields": {
            "items": {
              "enum": ["response_kind", "observation_id", "completion_state", "elapsed_bucket"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Scoring Evidence Fields",
            "type": "array"
          },
          "server_scoring_policy_ref": {
            "pattern": "^assessment-policy:[a-z0-9-]+@\\d+\\.\\d+\\.\\d+$",
            "title": "Server Scoring Policy Ref",
            "type": "string"
          },
          "trigger_event": {
            "enum": ["response.submitted", "result.completed"],
            "title": "Trigger Event",
            "type": "string"
          }
        },
        "required": [
          "hook_id",
          "trigger_event",
          "observation_ids",
          "response_schema_id",
          "scoring_evidence_fields",
          "server_scoring_policy_ref"
        ],
        "title": "LessonActivityAssessmentHook",
        "type": "object"
      },
      "LessonActivityBooleanValue": {
        "additionalProperties": false,
        "properties": {
          "value": {
            "title": "Value",
            "type": "boolean"
          },
          "value_id": {
            "pattern": "^[a-z][a-z0-9_]{1,63}$",
            "title": "Value Id",
            "type": "string"
          },
          "value_type": {
            "const": "boolean",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": ["value_id", "value_type", "value"],
        "title": "LessonActivityBooleanValue",
        "type": "object"
      },
      "LessonActivityConfiguration": {
        "additionalProperties": false,
        "properties": {
          "assessment_hook_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Assessment Hook Ids",
            "type": "array"
          },
          "control_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Control Ids",
            "type": "array"
          },
          "data_needs": {
            "items": {
              "enum": ["synthetic_identity", "synthetic_activity_context", "ephemeral_local_state"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Data Needs",
            "type": "array"
          },
          "dependency_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Dependency Ids",
            "type": "array"
          },
          "event_ids": {
            "items": {
              "enum": [
                "runtime.ready",
                "state.changed",
                "state.reset",
                "result.completed",
                "runtime.error",
                "runtime.teardown",
                "security.report",
                "hint.requested",
                "response.submitted",
                "runtime.cancelled"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Event Ids",
            "type": "array"
          },
          "expected_observation_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Expected Observation Ids",
            "type": "array"
          },
          "hint_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Hint Ids",
            "type": "array"
          },
          "initial_state": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "Initial State",
            "type": "array"
          },
          "layout": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonActivityLayoutSpec"
              },
              {
                "type": "null"
              }
            ]
          },
          "lifecycle_version": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifecycle Version"
          },
          "offline": {
            "const": "required",
            "default": "required",
            "title": "Offline",
            "type": "string"
          },
          "parameters": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "Parameters",
            "type": "array"
          },
          "preset_id": {
            "anyOf": [
              {
                "pattern": "^[a-z][a-z0-9-]{2,79}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preset Id"
          },
          "reset_state": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "Reset State",
            "type": "array"
          },
          "resource_limits": {
            "$ref": "#/components/schemas/LessonActivityResourceLimits"
          },
          "scenario": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonActivityScenario"
              },
              {
                "type": "null"
              }
            ]
          },
          "security": {
            "$ref": "#/components/schemas/LessonActivitySecurityPolicy"
          },
          "seed": {
            "maximum": 2147483647.0,
            "minimum": 0.0,
            "title": "Seed",
            "type": "integer"
          },
          "sizing": {
            "$ref": "#/components/schemas/LessonActivitySizing"
          },
          "target": {
            "const": "learner-web",
            "default": "learner-web",
            "title": "Target",
            "type": "string"
          },
          "telemetry_policy": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonActivityTelemetryPolicy"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "parameters",
          "initial_state",
          "reset_state",
          "event_ids",
          "data_needs",
          "dependency_ids",
          "seed",
          "sizing",
          "security",
          "resource_limits"
        ],
        "title": "LessonActivityConfiguration",
        "type": "object"
      },
      "LessonActivityControlDefinition": {
        "additionalProperties": false,
        "properties": {
          "control_id": {
            "pattern": "^[a-z][a-z0-9_]{1,79}$",
            "title": "Control Id",
            "type": "string"
          },
          "control_kind": {
            "enum": ["slider", "stepper", "toggle", "select"],
            "title": "Control Kind",
            "type": "string"
          },
          "keyboard_operable": {
            "const": true,
            "default": true,
            "title": "Keyboard Operable",
            "type": "boolean"
          },
          "label": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "parameter_id": {
            "pattern": "^[a-z][a-z0-9_]{1,63}$",
            "title": "Parameter Id",
            "type": "string"
          }
        },
        "required": ["control_id", "parameter_id", "label", "control_kind"],
        "title": "LessonActivityControlDefinition",
        "type": "object"
      },
      "LessonActivityDeliveryContext": {
        "additionalProperties": false,
        "properties": {
          "attempt_context_id": {
            "pattern": "^attempt-context-[a-f0-9]{24}$",
            "title": "Attempt Context Id",
            "type": "string"
          },
          "canonical_identity_exposed": {
            "const": false,
            "default": false,
            "title": "Canonical Identity Exposed",
            "type": "boolean"
          },
          "gradebook_write": {
            "const": false,
            "default": false,
            "title": "Gradebook Write",
            "type": "boolean"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "recording_scope": {
            "const": "consent_gated_learning",
            "default": "consent_gated_learning",
            "title": "Recording Scope",
            "type": "string"
          },
          "subject_context_id": {
            "pattern": "^learner-context-[a-f0-9]{24}$",
            "title": "Subject Context Id",
            "type": "string"
          }
        },
        "required": ["subject_context_id", "attempt_context_id", "locale"],
        "title": "LessonActivityDeliveryContext",
        "type": "object"
      },
      "LessonActivityDeliveryContract": {
        "additionalProperties": false,
        "properties": {
          "activity_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Activity Id",
            "type": "string"
          },
          "allowed_host_messages": {
            "items": {
              "enum": ["host.initialize", "host.reset", "host.cancel", "host.teardown"],
              "type": "string"
            },
            "title": "Allowed Host Messages",
            "type": "array"
          },
          "allowed_runtime_messages": {
            "items": {
              "enum": [
                "runtime.ready",
                "state.changed",
                "state.reset",
                "result.completed",
                "runtime.error",
                "runtime.teardown",
                "security.report",
                "hint.requested",
                "response.submitted",
                "runtime.cancelled"
              ],
              "type": "string"
            },
            "title": "Allowed Runtime Messages",
            "type": "array"
          },
          "assessment_hooks": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityAssessmentHook"
            },
            "minItems": 1,
            "title": "Assessment Hooks",
            "type": "array"
          },
          "capability_ids": {
            "items": {
              "enum": ["pointer", "keyboard", "audio-output", "fullscreen"],
              "type": "string"
            },
            "title": "Capability Ids",
            "type": "array"
          },
          "configuration": {
            "$ref": "#/components/schemas/LessonActivityConfiguration"
          },
          "context": {
            "$ref": "#/components/schemas/LessonActivityDeliveryContext"
          },
          "contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Contract Sha256",
            "type": "string"
          },
          "expected_observations": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityExpectedObservation"
            },
            "minItems": 1,
            "title": "Expected Observations",
            "type": "array"
          },
          "hint_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityHintDefinition"
            },
            "minItems": 1,
            "title": "Hint Definitions",
            "type": "array"
          },
          "implementation_id": {
            "pattern": "^[a-z][a-z0-9-]{2,99}$",
            "title": "Implementation Id",
            "type": "string"
          },
          "instruction_steps": {
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "title": "Instruction Steps",
            "type": "array"
          },
          "instructions": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Instructions",
            "type": "string"
          },
          "learning_objective": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Learning Objective",
            "type": "string"
          },
          "non_interactive_equivalent": {
            "$ref": "#/components/schemas/LessonActivityNonInteractiveEquivalent"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Objective Ids",
            "type": "array"
          },
          "protocol_version": {
            "const": "metis.activity-preview/1",
            "default": "metis.activity-preview/1",
            "title": "Protocol Version",
            "type": "string"
          },
          "runtime_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Runtime Version",
            "type": "string"
          },
          "sandbox_path": {
            "const": "/activity-sandbox",
            "default": "/activity-sandbox",
            "title": "Sandbox Path",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session_id": {
            "pattern": "^delivery-session-[a-f0-9]{24}$",
            "title": "Session Id",
            "type": "string"
          },
          "telemetry_policy": {
            "$ref": "#/components/schemas/LessonActivityTelemetryPolicy"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "activity_id",
          "runtime_version",
          "implementation_id",
          "title",
          "instructions",
          "learning_objective",
          "objective_ids",
          "configuration",
          "capability_ids",
          "context",
          "expected_observations",
          "instruction_steps",
          "hint_definitions",
          "assessment_hooks",
          "non_interactive_equivalent",
          "telemetry_policy",
          "allowed_host_messages",
          "allowed_runtime_messages",
          "contract_sha256"
        ],
        "title": "LessonActivityDeliveryContract",
        "type": "object"
      },
      "LessonActivityDependencyRule": {
        "additionalProperties": false,
        "description": "One typed condition controlling when a parameter is meaningful.",
        "properties": {
          "dependency_id": {
            "pattern": "^[a-z][a-z0-9_]{1,63}$",
            "title": "Dependency Id",
            "type": "string"
          },
          "operator": {
            "default": "equals",
            "enum": ["equals", "greater_than_or_equal", "less_than_or_equal"],
            "title": "Operator",
            "type": "string"
          },
          "when": {
            "discriminator": {
              "mapping": {
                "boolean": "#/components/schemas/LessonActivityBooleanValue",
                "enum": "#/components/schemas/LessonActivityEnumValue",
                "integer": "#/components/schemas/LessonActivityIntegerValue",
                "number": "#/components/schemas/LessonActivityNumberValue"
              },
              "propertyName": "value_type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonActivityIntegerValue"
              },
              {
                "$ref": "#/components/schemas/LessonActivityNumberValue"
              },
              {
                "$ref": "#/components/schemas/LessonActivityBooleanValue"
              },
              {
                "$ref": "#/components/schemas/LessonActivityEnumValue"
              }
            ],
            "title": "When"
          }
        },
        "required": ["dependency_id", "when"],
        "title": "LessonActivityDependencyRule",
        "type": "object"
      },
      "LessonActivityEnumValue": {
        "additionalProperties": false,
        "properties": {
          "value": {
            "pattern": "^[a-z][a-z0-9_-]{0,63}$",
            "title": "Value",
            "type": "string"
          },
          "value_id": {
            "pattern": "^[a-z][a-z0-9_]{1,63}$",
            "title": "Value Id",
            "type": "string"
          },
          "value_type": {
            "const": "enum",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": ["value_id", "value_type", "value"],
        "title": "LessonActivityEnumValue",
        "type": "object"
      },
      "LessonActivityExpectedObservation": {
        "additionalProperties": false,
        "properties": {
          "equivalent_step_id": {
            "pattern": "^[a-z][a-z0-9_]{1,79}$",
            "title": "Equivalent Step Id",
            "type": "string"
          },
          "event_id": {
            "enum": ["state.changed", "result.completed"],
            "title": "Event Id",
            "type": "string"
          },
          "observation_id": {
            "pattern": "^[a-z][a-z0-9_]{1,79}$",
            "title": "Observation Id",
            "type": "string"
          },
          "state_values": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "State Values",
            "type": "array"
          },
          "statement": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": [
          "observation_id",
          "event_id",
          "state_values",
          "statement",
          "equivalent_step_id"
        ],
        "title": "LessonActivityExpectedObservation",
        "type": "object"
      },
      "LessonActivityHintDefinition": {
        "additionalProperties": false,
        "properties": {
          "hint_id": {
            "pattern": "^[a-z][a-z0-9_]{1,79}$",
            "title": "Hint Id",
            "type": "string"
          },
          "scaffold": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Scaffold",
            "type": "string"
          },
          "tier": {
            "maximum": 3.0,
            "minimum": 1.0,
            "title": "Tier",
            "type": "integer"
          },
          "trigger_observation_id": {
            "pattern": "^[a-z][a-z0-9_]{1,79}$",
            "title": "Trigger Observation Id",
            "type": "string"
          }
        },
        "required": ["hint_id", "tier", "trigger_observation_id", "scaffold"],
        "title": "LessonActivityHintDefinition",
        "type": "object"
      },
      "LessonActivityIntegerValue": {
        "additionalProperties": false,
        "properties": {
          "value": {
            "title": "Value",
            "type": "integer"
          },
          "value_id": {
            "pattern": "^[a-z][a-z0-9_]{1,63}$",
            "title": "Value Id",
            "type": "string"
          },
          "value_type": {
            "const": "integer",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": ["value_id", "value_type", "value"],
        "title": "LessonActivityIntegerValue",
        "type": "object"
      },
      "LessonActivityLayoutSpec": {
        "additionalProperties": false,
        "properties": {
          "layout_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Layout Id",
            "type": "string"
          },
          "pattern": {
            "enum": ["single-column", "stage-with-controls"],
            "title": "Pattern",
            "type": "string"
          },
          "reading_order": {
            "items": {
              "enum": ["instructions", "stage", "controls", "feedback", "equivalent"],
              "type": "string"
            },
            "title": "Reading Order",
            "type": "array"
          },
          "reflow": {
            "const": "single-column-at-320px",
            "default": "single-column-at-320px",
            "title": "Reflow",
            "type": "string"
          },
          "region_ids": {
            "items": {
              "enum": ["instructions", "stage", "controls", "feedback", "equivalent"],
              "type": "string"
            },
            "title": "Region Ids",
            "type": "array"
          }
        },
        "required": ["layout_id", "pattern", "region_ids", "reading_order"],
        "title": "LessonActivityLayoutSpec",
        "type": "object"
      },
      "LessonActivityLifecycleSpec": {
        "additionalProperties": false,
        "properties": {
          "cancellation_message": {
            "const": "host.cancel",
            "default": "host.cancel",
            "title": "Cancellation Message",
            "type": "string"
          },
          "lifecycle_version": {
            "const": "metis.simulation-lifecycle/1",
            "default": "metis.simulation-lifecycle/1",
            "title": "Lifecycle Version",
            "type": "string"
          },
          "states": {
            "items": {
              "enum": [
                "registered",
                "initialized",
                "running",
                "completed",
                "cancelled",
                "failed",
                "torn_down"
              ],
              "type": "string"
            },
            "title": "States",
            "type": "array"
          },
          "teardown_message": {
            "const": "host.teardown",
            "default": "host.teardown",
            "title": "Teardown Message",
            "type": "string"
          }
        },
        "required": ["states"],
        "title": "LessonActivityLifecycleSpec",
        "type": "object"
      },
      "LessonActivityNonInteractiveEquivalent": {
        "additionalProperties": false,
        "properties": {
          "assessment_hook_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Assessment Hook Ids",
            "type": "array"
          },
          "assistive_technology": {
            "default": ["screen_reader", "keyboard", "text_only"],
            "items": {
              "enum": ["screen_reader", "keyboard", "text_only"],
              "type": "string"
            },
            "title": "Assistive Technology",
            "type": "array"
          },
          "equivalent_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Equivalent Id",
            "type": "string"
          },
          "expected_observation_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Expected Observation Ids",
            "type": "array"
          },
          "information_items": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Information Items",
            "type": "array"
          },
          "objective_statement": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Objective Statement",
            "type": "string"
          },
          "operation_steps": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Operation Steps",
            "type": "array"
          },
          "outcome_equivalence": {
            "const": "same-observation-and-scoring-evidence",
            "default": "same-observation-and-scoring-evidence",
            "title": "Outcome Equivalence",
            "type": "string"
          },
          "response_schema_id": {
            "enum": ["classification-response-v1", "confidence-response-v1"],
            "title": "Response Schema Id",
            "type": "string"
          }
        },
        "required": [
          "equivalent_id",
          "objective_statement",
          "information_items",
          "operation_steps",
          "response_schema_id",
          "assessment_hook_ids",
          "expected_observation_ids"
        ],
        "title": "LessonActivityNonInteractiveEquivalent",
        "type": "object"
      },
      "LessonActivityNumberValue": {
        "additionalProperties": false,
        "properties": {
          "value": {
            "title": "Value",
            "type": "number"
          },
          "value_id": {
            "pattern": "^[a-z][a-z0-9_]{1,63}$",
            "title": "Value Id",
            "type": "string"
          },
          "value_type": {
            "const": "number",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": ["value_id", "value_type", "value"],
        "title": "LessonActivityNumberValue",
        "type": "object"
      },
      "LessonActivityOfflineBufferPolicy": {
        "additionalProperties": false,
        "properties": {
          "max_age_hours": {
            "maximum": 72.0,
            "minimum": 1.0,
            "title": "Max Age Hours",
            "type": "integer"
          },
          "max_bytes": {
            "maximum": 65536.0,
            "minimum": 1024.0,
            "title": "Max Bytes",
            "type": "integer"
          },
          "max_events": {
            "maximum": 128.0,
            "minimum": 1.0,
            "title": "Max Events",
            "type": "integer"
          },
          "overflow": {
            "const": "drop_oldest",
            "default": "drop_oldest",
            "title": "Overflow",
            "type": "string"
          }
        },
        "required": ["max_events", "max_bytes", "max_age_hours"],
        "title": "LessonActivityOfflineBufferPolicy",
        "type": "object"
      },
      "LessonActivityPreset": {
        "additionalProperties": false,
        "properties": {
          "control_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Control Ids",
            "type": "array"
          },
          "initial_state": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "Initial State",
            "type": "array"
          },
          "layout_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Layout Id",
            "type": "string"
          },
          "parameter_values": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "Parameter Values",
            "type": "array"
          },
          "preset_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Preset Id",
            "type": "string"
          },
          "scenario_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Scenario Id",
            "type": "string"
          },
          "title": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "preset_id",
          "title",
          "parameter_values",
          "initial_state",
          "scenario_id",
          "control_ids",
          "layout_id"
        ],
        "title": "LessonActivityPreset",
        "type": "object"
      },
      "LessonActivityPreviewContract": {
        "additionalProperties": false,
        "properties": {
          "activity_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Activity Id",
            "type": "string"
          },
          "allowed_host_messages": {
            "items": {
              "enum": ["host.initialize", "host.reset", "host.cancel", "host.teardown"],
              "type": "string"
            },
            "title": "Allowed Host Messages",
            "type": "array"
          },
          "allowed_runtime_messages": {
            "items": {
              "enum": [
                "runtime.ready",
                "state.changed",
                "state.reset",
                "result.completed",
                "runtime.error",
                "runtime.teardown",
                "security.report",
                "hint.requested",
                "response.submitted",
                "runtime.cancelled"
              ],
              "type": "string"
            },
            "title": "Allowed Runtime Messages",
            "type": "array"
          },
          "assessment_hooks": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityAssessmentHook"
            },
            "minItems": 1,
            "title": "Assessment Hooks",
            "type": "array"
          },
          "capability_ids": {
            "items": {
              "enum": ["pointer", "keyboard", "audio-output", "fullscreen"],
              "type": "string"
            },
            "title": "Capability Ids",
            "type": "array"
          },
          "configuration": {
            "$ref": "#/components/schemas/LessonActivityConfiguration"
          },
          "contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Contract Sha256",
            "type": "string"
          },
          "expected_observations": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityExpectedObservation"
            },
            "minItems": 1,
            "title": "Expected Observations",
            "type": "array"
          },
          "hint_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityHintDefinition"
            },
            "minItems": 1,
            "title": "Hint Definitions",
            "type": "array"
          },
          "implementation_id": {
            "pattern": "^[a-z][a-z0-9-]{2,99}$",
            "title": "Implementation Id",
            "type": "string"
          },
          "instruction_steps": {
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "title": "Instruction Steps",
            "type": "array"
          },
          "instructions": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Instructions",
            "type": "string"
          },
          "learning_objective": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Learning Objective",
            "type": "string"
          },
          "non_interactive_equivalent": {
            "$ref": "#/components/schemas/LessonActivityNonInteractiveEquivalent"
          },
          "protocol_version": {
            "const": "metis.activity-preview/1",
            "default": "metis.activity-preview/1",
            "title": "Protocol Version",
            "type": "string"
          },
          "runtime_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Runtime Version",
            "type": "string"
          },
          "sandbox_path": {
            "const": "/activity-sandbox",
            "default": "/activity-sandbox",
            "title": "Sandbox Path",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session_id": {
            "pattern": "^preview-session-[a-f0-9]{24}$",
            "title": "Session Id",
            "type": "string"
          },
          "synthetic_context": {
            "$ref": "#/components/schemas/LessonActivitySyntheticContext"
          },
          "telemetry_policy": {
            "$ref": "#/components/schemas/LessonActivityTelemetryPolicy"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "activity_id",
          "runtime_version",
          "implementation_id",
          "title",
          "instructions",
          "learning_objective",
          "configuration",
          "capability_ids",
          "synthetic_context",
          "expected_observations",
          "instruction_steps",
          "hint_definitions",
          "assessment_hooks",
          "non_interactive_equivalent",
          "telemetry_policy",
          "allowed_host_messages",
          "allowed_runtime_messages",
          "contract_sha256"
        ],
        "title": "LessonActivityPreviewContract",
        "type": "object"
      },
      "LessonActivityPreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "block_id"
        ],
        "title": "LessonActivityPreviewRequest",
        "type": "object"
      },
      "LessonActivityResourceLimits": {
        "additionalProperties": false,
        "properties": {
          "max_event_count": {
            "maximum": 512.0,
            "minimum": 8.0,
            "title": "Max Event Count",
            "type": "integer"
          },
          "max_memory_mb": {
            "maximum": 128.0,
            "minimum": 8.0,
            "title": "Max Memory Mb",
            "type": "integer"
          },
          "max_message_bytes": {
            "maximum": 32768.0,
            "minimum": 1024.0,
            "title": "Max Message Bytes",
            "type": "integer"
          },
          "max_network_requests": {
            "const": 0,
            "default": 0,
            "title": "Max Network Requests",
            "type": "integer"
          },
          "max_runtime_ms": {
            "maximum": 300000.0,
            "minimum": 1000.0,
            "title": "Max Runtime Ms",
            "type": "integer"
          },
          "max_storage_bytes": {
            "const": 0,
            "default": 0,
            "title": "Max Storage Bytes",
            "type": "integer"
          }
        },
        "required": ["max_runtime_ms", "max_memory_mb", "max_event_count", "max_message_bytes"],
        "title": "LessonActivityResourceLimits",
        "type": "object"
      },
      "LessonActivityRuntimeRegistryEntry": {
        "additionalProperties": false,
        "properties": {
          "activity_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Activity Id",
            "type": "string"
          },
          "allowed_capability_ids": {
            "items": {
              "enum": ["pointer", "keyboard", "audio-output", "fullscreen"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Allowed Capability Ids",
            "type": "array"
          },
          "assessment_hooks": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityAssessmentHook"
            },
            "minItems": 1,
            "title": "Assessment Hooks",
            "type": "array"
          },
          "control_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityControlDefinition"
            },
            "minItems": 1,
            "title": "Control Definitions",
            "type": "array"
          },
          "data_needs": {
            "items": {
              "enum": ["synthetic_identity", "synthetic_activity_context", "ephemeral_local_state"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Data Needs",
            "type": "array"
          },
          "dependency_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Dependency Ids",
            "type": "array"
          },
          "event_ids": {
            "items": {
              "enum": [
                "runtime.ready",
                "state.changed",
                "state.reset",
                "result.completed",
                "runtime.error",
                "runtime.teardown",
                "security.report",
                "hint.requested",
                "response.submitted",
                "runtime.cancelled"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Event Ids",
            "type": "array"
          },
          "expected_observations": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityExpectedObservation"
            },
            "minItems": 1,
            "title": "Expected Observations",
            "type": "array"
          },
          "hint_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityHintDefinition"
            },
            "minItems": 1,
            "title": "Hint Definitions",
            "type": "array"
          },
          "implementation_id": {
            "pattern": "^[a-z][a-z0-9-]{2,99}$",
            "title": "Implementation Id",
            "type": "string"
          },
          "initial_state": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "Initial State",
            "type": "array"
          },
          "instruction_steps": {
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "title": "Instruction Steps",
            "type": "array"
          },
          "layout_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityLayoutSpec"
            },
            "minItems": 1,
            "title": "Layout Definitions",
            "type": "array"
          },
          "learning_objective": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Learning Objective",
            "type": "string"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/LessonActivityLifecycleSpec"
          },
          "lifecycle_status": {
            "enum": ["legacy", "authoring", "published", "retired"],
            "title": "Lifecycle Status",
            "type": "string"
          },
          "non_interactive_equivalent": {
            "$ref": "#/components/schemas/LessonActivityNonInteractiveEquivalent"
          },
          "offline": {
            "const": "required",
            "default": "required",
            "title": "Offline",
            "type": "string"
          },
          "parameter_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityValueDefinition"
            },
            "minItems": 1,
            "title": "Parameter Definitions",
            "type": "array"
          },
          "presets": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityPreset"
            },
            "minItems": 1,
            "title": "Presets",
            "type": "array"
          },
          "registry_version": {
            "const": "3.20.0",
            "default": "3.20.0",
            "title": "Registry Version",
            "type": "string"
          },
          "reset_state": {
            "items": {
              "discriminator": {
                "mapping": {
                  "boolean": "#/components/schemas/LessonActivityBooleanValue",
                  "enum": "#/components/schemas/LessonActivityEnumValue",
                  "integer": "#/components/schemas/LessonActivityIntegerValue",
                  "number": "#/components/schemas/LessonActivityNumberValue"
                },
                "propertyName": "value_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonActivityIntegerValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityNumberValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityBooleanValue"
                },
                {
                  "$ref": "#/components/schemas/LessonActivityEnumValue"
                }
              ]
            },
            "minItems": 1,
            "title": "Reset State",
            "type": "array"
          },
          "resource_limits": {
            "$ref": "#/components/schemas/LessonActivityResourceLimits"
          },
          "runtime_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Runtime Version",
            "type": "string"
          },
          "scenarios": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityScenario"
            },
            "minItems": 1,
            "title": "Scenarios",
            "type": "array"
          },
          "security": {
            "$ref": "#/components/schemas/LessonActivitySecurityPolicy"
          },
          "sizing": {
            "$ref": "#/components/schemas/LessonActivitySizing"
          },
          "state_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityValueDefinition"
            },
            "minItems": 1,
            "title": "State Definitions",
            "type": "array"
          },
          "summary": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "target": {
            "const": "learner-web",
            "default": "learner-web",
            "title": "Target",
            "type": "string"
          },
          "telemetry_policy": {
            "$ref": "#/components/schemas/LessonActivityTelemetryPolicy"
          },
          "title": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "activity_id",
          "runtime_version",
          "implementation_id",
          "title",
          "summary",
          "lifecycle_status",
          "learning_objective",
          "parameter_definitions",
          "state_definitions",
          "initial_state",
          "reset_state",
          "event_ids",
          "data_needs",
          "dependency_ids",
          "allowed_capability_ids",
          "sizing",
          "security",
          "resource_limits",
          "expected_observations",
          "lifecycle",
          "scenarios",
          "control_definitions",
          "layout_definitions",
          "instruction_steps",
          "hint_definitions",
          "assessment_hooks",
          "telemetry_policy",
          "non_interactive_equivalent",
          "presets"
        ],
        "title": "LessonActivityRuntimeRegistryEntry",
        "type": "object"
      },
      "LessonActivityScenario": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Context",
            "type": "string"
          },
          "information_items": {
            "items": {
              "type": "string"
            },
            "maxItems": 12,
            "minItems": 2,
            "title": "Information Items",
            "type": "array"
          },
          "scenario_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Scenario Id",
            "type": "string"
          },
          "title": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["scenario_id", "title", "context", "information_items"],
        "title": "LessonActivityScenario",
        "type": "object"
      },
      "LessonActivitySecurityPolicy": {
        "additionalProperties": false,
        "properties": {
          "answer_keys": {
            "const": "denied",
            "default": "denied",
            "title": "Answer Keys",
            "type": "string"
          },
          "content_security_policy": {
            "const": "metis-activity-csp-v1",
            "default": "metis-activity-csp-v1",
            "title": "Content Security Policy",
            "type": "string"
          },
          "credentials": {
            "const": "denied",
            "default": "denied",
            "title": "Credentials",
            "type": "string"
          },
          "learner_data": {
            "const": "synthetic-only",
            "default": "synthetic-only",
            "title": "Learner Data",
            "type": "string"
          },
          "network": {
            "const": "denied",
            "default": "denied",
            "title": "Network",
            "type": "string"
          },
          "parent_dom": {
            "const": "denied",
            "default": "denied",
            "title": "Parent Dom",
            "type": "string"
          },
          "persistent_storage": {
            "const": "denied",
            "default": "denied",
            "title": "Persistent Storage",
            "type": "string"
          },
          "sandbox_profile": {
            "const": "opaque-cross-origin-v1",
            "default": "opaque-cross-origin-v1",
            "title": "Sandbox Profile",
            "type": "string"
          }
        },
        "title": "LessonActivitySecurityPolicy",
        "type": "object"
      },
      "LessonActivitySizing": {
        "additionalProperties": false,
        "properties": {
          "initial_height_px": {
            "maximum": 1440.0,
            "minimum": 240.0,
            "title": "Initial Height Px",
            "type": "integer"
          },
          "initial_width_px": {
            "maximum": 2560.0,
            "minimum": 280.0,
            "title": "Initial Width Px",
            "type": "integer"
          },
          "max_width_px": {
            "maximum": 2560.0,
            "minimum": 280.0,
            "title": "Max Width Px",
            "type": "integer"
          },
          "min_width_px": {
            "maximum": 2560.0,
            "minimum": 280.0,
            "title": "Min Width Px",
            "type": "integer"
          },
          "responsive": {
            "const": true,
            "default": true,
            "title": "Responsive",
            "type": "boolean"
          }
        },
        "required": ["min_width_px", "max_width_px", "initial_width_px", "initial_height_px"],
        "title": "LessonActivitySizing",
        "type": "object"
      },
      "LessonActivitySyntheticContext": {
        "additionalProperties": false,
        "properties": {
          "activity_instance_id": {
            "pattern": "^preview-[a-f0-9]{24}$",
            "title": "Activity Instance Id",
            "type": "string"
          },
          "attempt_id": {
            "title": "Attempt Id",
            "type": "null"
          },
          "gradebook_write": {
            "const": false,
            "default": false,
            "title": "Gradebook Write",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/components/schemas/LessonActivitySyntheticIdentity",
            "default": {
              "display_name": "Sample learner",
              "role": "preview_participant",
              "subject_id": "preview-learner-00000000",
              "tenant_id": "preview-tenant-00000000"
            }
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_aliases": {
            "items": {
              "type": "string"
            },
            "title": "Objective Aliases",
            "type": "array"
          },
          "recording_scope": {
            "const": "preview_only",
            "default": "preview_only",
            "title": "Recording Scope",
            "type": "string"
          }
        },
        "required": ["activity_instance_id", "objective_aliases", "locale"],
        "title": "LessonActivitySyntheticContext",
        "type": "object"
      },
      "LessonActivitySyntheticIdentity": {
        "additionalProperties": false,
        "properties": {
          "display_name": {
            "const": "Sample learner",
            "default": "Sample learner",
            "title": "Display Name",
            "type": "string"
          },
          "role": {
            "const": "preview_participant",
            "default": "preview_participant",
            "title": "Role",
            "type": "string"
          },
          "subject_id": {
            "const": "preview-learner-00000000",
            "default": "preview-learner-00000000",
            "title": "Subject Id",
            "type": "string"
          },
          "tenant_id": {
            "const": "preview-tenant-00000000",
            "default": "preview-tenant-00000000",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "title": "LessonActivitySyntheticIdentity",
        "type": "object"
      },
      "LessonActivityTelemetryPolicy": {
        "additionalProperties": false,
        "properties": {
          "attempt_context": {
            "const": "ephemeral",
            "default": "ephemeral",
            "title": "Attempt Context",
            "type": "string"
          },
          "consent": {
            "const": "required_for_collection",
            "default": "required_for_collection",
            "title": "Consent",
            "type": "string"
          },
          "event_names": {
            "items": {
              "enum": [
                "simulation_started",
                "control_changed",
                "observation_reached",
                "hint_requested",
                "response_submitted",
                "simulation_reset",
                "simulation_completed",
                "simulation_cancelled",
                "runtime_error"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Event Names",
            "type": "array"
          },
          "learner_context": {
            "const": "pseudonymous",
            "default": "pseudonymous",
            "title": "Learner Context",
            "type": "string"
          },
          "offline_buffer": {
            "$ref": "#/components/schemas/LessonActivityOfflineBufferPolicy"
          },
          "payload_field_ids": {
            "items": {
              "enum": [
                "control_id",
                "observation_id",
                "hint_id",
                "response_kind",
                "completion_state",
                "elapsed_bucket",
                "error_code"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Payload Field Ids",
            "type": "array"
          },
          "retention_days": {
            "maximum": 30.0,
            "minimum": 1.0,
            "title": "Retention Days",
            "type": "integer"
          },
          "sampling_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Sampling Rate",
            "type": "number"
          },
          "schema_version": {
            "const": "metis.simulation-telemetry/1",
            "default": "metis.simulation-telemetry/1",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "event_names",
          "sampling_rate",
          "retention_days",
          "payload_field_ids",
          "offline_buffer"
        ],
        "title": "LessonActivityTelemetryPolicy",
        "type": "object"
      },
      "LessonActivityValueDefinition": {
        "additionalProperties": false,
        "properties": {
          "default_value": {
            "discriminator": {
              "mapping": {
                "boolean": "#/components/schemas/LessonActivityBooleanValue",
                "enum": "#/components/schemas/LessonActivityEnumValue",
                "integer": "#/components/schemas/LessonActivityIntegerValue",
                "number": "#/components/schemas/LessonActivityNumberValue"
              },
              "propertyName": "value_type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonActivityIntegerValue"
              },
              {
                "$ref": "#/components/schemas/LessonActivityNumberValue"
              },
              {
                "$ref": "#/components/schemas/LessonActivityBooleanValue"
              },
              {
                "$ref": "#/components/schemas/LessonActivityEnumValue"
              }
            ],
            "title": "Default Value"
          },
          "dependency_rules": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonActivityDependencyRule"
            },
            "title": "Dependency Rules",
            "type": "array"
          },
          "enum_values": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Enum Values",
            "type": "array"
          },
          "label": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "maximum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum"
          },
          "minimum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "step": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Step"
          },
          "unit": {
            "enum": ["count", "index", "ratio", "boolean", "category"],
            "title": "Unit",
            "type": "string"
          },
          "value_id": {
            "pattern": "^[a-z][a-z0-9_]{1,63}$",
            "title": "Value Id",
            "type": "string"
          },
          "value_type": {
            "enum": ["integer", "number", "boolean", "enum"],
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": ["value_id", "value_type", "label", "unit", "default_value"],
        "title": "LessonActivityValueDefinition",
        "type": "object"
      },
      "LessonAssessmentLinkBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "assessment_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Assessment Id",
            "type": "string"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "display_label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Display Label",
            "type": "string"
          },
          "item_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Id"
          },
          "kind": {
            "const": "assessment_link",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "purpose": {
            "enum": ["diagnostic", "practice", "formative", "summative"],
            "title": "Purpose",
            "type": "string"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          }
        },
        "required": [
          "block_id",
          "position",
          "accessibility",
          "kind",
          "assessment_id",
          "purpose",
          "display_label"
        ],
        "title": "LessonAssessmentLinkBlock",
        "type": "object"
      },
      "LessonAssistCitation": {
        "additionalProperties": false,
        "properties": {
          "citation_id": {
            "title": "Citation Id",
            "type": "string"
          },
          "citation_locator": {
            "title": "Citation Locator",
            "type": "string"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "source_version_id": {
            "title": "Source Version Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["source_id", "source_version_id", "citation_id", "citation_locator", "title"],
        "title": "LessonAssistCitation",
        "type": "object"
      },
      "LessonAssistContextSnapshot": {
        "additionalProperties": false,
        "properties": {
          "candidate_block_id": {
            "pattern": "^assist-block-[a-f0-9]{24}$",
            "title": "Candidate Block Id",
            "type": "string"
          },
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "excluded_context": {
            "items": {
              "enum": [
                "answer_keys",
                "assessment_integrity_fields",
                "learner_data",
                "protected_source_text",
                "credentials",
                "tools"
              ],
              "type": "string"
            },
            "title": "Excluded Context",
            "type": "array"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistItemContext"
            },
            "title": "Items",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistObjectiveContext"
            },
            "title": "Objectives",
            "type": "array"
          },
          "operation": {
            "enum": ["rewrite", "example", "hint", "feedback", "localize"],
            "title": "Operation",
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistSourceContext"
            },
            "title": "Sources",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/LessonAssistTargetWitness"
          },
          "target_block": {
            "discriminator": {
              "mapping": {
                "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                "audio": "#/components/schemas/LessonAudioBlock",
                "callout": "#/components/schemas/LessonCalloutBlock",
                "code": "#/components/schemas/LessonCodeBlock",
                "equation": "#/components/schemas/LessonEquationBlock",
                "example": "#/components/schemas/LessonExampleBlock",
                "image": "#/components/schemas/LessonImageBlock",
                "interaction": "#/components/schemas/LessonInteractionBlock",
                "practice": "#/components/schemas/LessonPracticeBlock",
                "prose": "#/components/schemas/LessonProseBlock",
                "reflection": "#/components/schemas/LessonReflectionBlock",
                "video": "#/components/schemas/LessonVideoBlock"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonProseBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCalloutBlock"
              },
              {
                "$ref": "#/components/schemas/LessonExampleBlock"
              },
              {
                "$ref": "#/components/schemas/LessonEquationBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCodeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonImageBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAudioBlock"
              },
              {
                "$ref": "#/components/schemas/LessonVideoBlock"
              },
              {
                "$ref": "#/components/schemas/LessonInteractionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonPracticeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonReflectionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
              }
            ],
            "title": "Target Block"
          }
        },
        "required": [
          "target",
          "operation",
          "candidate_block_id",
          "target_block",
          "sources",
          "objectives",
          "items",
          "excluded_context",
          "context_sha256"
        ],
        "title": "LessonAssistContextSnapshot",
        "type": "object"
      },
      "LessonAssistDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "edit", "reject"],
            "title": "Action",
            "type": "string"
          },
          "edited_block": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                    "audio": "#/components/schemas/LessonAudioBlock",
                    "callout": "#/components/schemas/LessonCalloutBlock",
                    "code": "#/components/schemas/LessonCodeBlock",
                    "equation": "#/components/schemas/LessonEquationBlock",
                    "example": "#/components/schemas/LessonExampleBlock",
                    "image": "#/components/schemas/LessonImageBlock",
                    "interaction": "#/components/schemas/LessonInteractionBlock",
                    "practice": "#/components/schemas/LessonPracticeBlock",
                    "prose": "#/components/schemas/LessonProseBlock",
                    "reflection": "#/components/schemas/LessonReflectionBlock",
                    "video": "#/components/schemas/LessonVideoBlock"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/LessonProseBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonCalloutBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonExampleBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonEquationBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonCodeBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonImageBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonAudioBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonVideoBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonInteractionBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonPracticeBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonReflectionBlock"
                  },
                  {
                    "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Block"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "action", "reason"],
        "title": "LessonAssistDecisionRequest",
        "type": "object"
      },
      "LessonAssistDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "acceptance_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Acceptance Sha256",
            "type": "string"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "decision": {
            "$ref": "#/components/schemas/LessonAssistDecisionSummary"
          },
          "projection": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDossierProjection"
              },
              {
                "type": "null"
              }
            ]
          },
          "proposal": {
            "$ref": "#/components/schemas/LessonAssistProposalResponse"
          },
          "recomputed_block_ids": {
            "items": {
              "type": "string"
            },
            "title": "Recomputed Block Ids",
            "type": "array"
          },
          "revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDossierRevisionSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "proposal",
          "decision",
          "changed_paths",
          "recomputed_block_ids",
          "acceptance_sha256"
        ],
        "title": "LessonAssistDecisionResponse",
        "type": "object"
      },
      "LessonAssistDecisionSummary": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "edit", "reject"],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^assist-decision-[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "effective_block_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective Block Sha256"
          },
          "human_edited": {
            "title": "Human Edited",
            "type": "boolean"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "action",
          "actor_id",
          "actor_role",
          "reason",
          "human_edited",
          "created_at",
          "decision_sha256"
        ],
        "title": "LessonAssistDecisionSummary",
        "type": "object"
      },
      "LessonAssistItemContext": {
        "additionalProperties": false,
        "properties": {
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "legacy_content",
              "prose",
              "example",
              "media",
              "activity_link",
              "assessment_link",
              "resource"
            ],
            "title": "Kind",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["item_id", "kind", "title", "summary", "item_sha256"],
        "title": "LessonAssistItemContext",
        "type": "object"
      },
      "LessonAssistItemRef": {
        "additionalProperties": false,
        "properties": {
          "item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Sha256",
            "type": "string"
          }
        },
        "required": ["item_id", "item_sha256"],
        "title": "LessonAssistItemRef",
        "type": "object"
      },
      "LessonAssistObjectiveContext": {
        "additionalProperties": false,
        "properties": {
          "authority_ref": {
            "title": "Authority Ref",
            "type": "string"
          },
          "coverage": {
            "enum": ["introduced", "practiced", "assessed", "mastered", "missing"],
            "title": "Coverage",
            "type": "string"
          },
          "objective_id": {
            "title": "Objective Id",
            "type": "string"
          },
          "objective_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Objective Sha256",
            "type": "string"
          },
          "revision_id": {
            "title": "Revision Id",
            "type": "string"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          }
        },
        "required": [
          "objective_id",
          "revision_id",
          "statement",
          "coverage",
          "authority_ref",
          "objective_sha256"
        ],
        "title": "LessonAssistObjectiveContext",
        "type": "object"
      },
      "LessonAssistObjectiveRef": {
        "additionalProperties": false,
        "properties": {
          "objective_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Objective Id",
            "type": "string"
          },
          "objective_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Objective Sha256",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          }
        },
        "required": ["objective_id", "revision_id", "objective_sha256"],
        "title": "LessonAssistObjectiveRef",
        "type": "object"
      },
      "LessonAssistPreparationResponse": {
        "additionalProperties": false,
        "description": "Server-authored exact witness and bounded references for one assist target.",
        "properties": {
          "excluded_context": {
            "items": {
              "enum": [
                "answer_keys",
                "assessment_integrity_fields",
                "learner_data",
                "protected_source_text",
                "credentials",
                "tools"
              ],
              "type": "string"
            },
            "title": "Excluded Context",
            "type": "array"
          },
          "item_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistItemRef"
            },
            "title": "Item Refs",
            "type": "array"
          },
          "objective_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistObjectiveRef"
            },
            "title": "Objective Refs",
            "type": "array"
          },
          "preparation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preparation Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistSourceRef"
            },
            "title": "Source Refs",
            "type": "array"
          },
          "supported_operations": {
            "items": {
              "enum": ["rewrite", "example", "hint", "feedback", "localize"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Supported Operations",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/LessonAssistTargetWitness"
          }
        },
        "required": [
          "target",
          "source_refs",
          "objective_refs",
          "item_refs",
          "supported_operations",
          "excluded_context",
          "preparation_sha256"
        ],
        "title": "LessonAssistPreparationResponse",
        "type": "object"
      },
      "LessonAssistProposalRequest": {
        "additionalProperties": false,
        "properties": {
          "currency": {
            "const": "USD",
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "instructions": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Instructions",
            "type": "string"
          },
          "item_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistItemRef"
            },
            "maxItems": 100,
            "title": "Item Refs",
            "type": "array"
          },
          "maximum_cost_minor_units": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Maximum Cost Minor Units",
            "type": "integer"
          },
          "objective_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistObjectiveRef"
            },
            "maxItems": 100,
            "title": "Objective Refs",
            "type": "array"
          },
          "operation": {
            "enum": ["rewrite", "example", "hint", "feedback", "localize"],
            "title": "Operation",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistSourceRef"
            },
            "maxItems": 100,
            "title": "Source Refs",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/LessonAssistTargetWitness"
          },
          "target_locale": {
            "anyOf": [
              {
                "maxLength": 63,
                "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Locale"
          }
        },
        "required": [
          "idempotency_key",
          "operation",
          "target",
          "instructions",
          "maximum_cost_minor_units"
        ],
        "title": "LessonAssistProposalRequest",
        "type": "object"
      },
      "LessonAssistProposalResponse": {
        "additionalProperties": false,
        "properties": {
          "candidate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonAssistProviderCandidate"
              },
              {
                "type": "null"
              }
            ]
          },
          "citations": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistCitation"
            },
            "title": "Citations",
            "type": "array"
          },
          "context": {
            "$ref": "#/components/schemas/LessonAssistContextSnapshot"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonAssistDecisionSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "invocation": {
            "$ref": "#/components/schemas/LessonAssistProviderInvocation"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "operation": {
            "enum": ["rewrite", "example", "hint", "feedback", "localize"],
            "title": "Operation",
            "type": "string"
          },
          "proposal_id": {
            "pattern": "^assist-proposal-[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Proposal Sha256",
            "type": "string"
          },
          "request": {
            "$ref": "#/components/schemas/LessonAssistProposalRequest"
          },
          "review_status": {
            "enum": [
              "proposed",
              "refused",
              "unavailable",
              "malformed",
              "budget_exceeded",
              "accepted",
              "edited",
              "rejected",
              "stale"
            ],
            "title": "Review Status",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "semantic_changes": {
            "items": {
              "$ref": "#/components/schemas/LessonAuthoringSemanticChange"
            },
            "title": "Semantic Changes",
            "type": "array"
          }
        },
        "required": [
          "proposal_id",
          "lesson_id",
          "operation",
          "review_status",
          "request",
          "context",
          "invocation",
          "citations",
          "semantic_changes",
          "proposal_sha256",
          "created_at"
        ],
        "title": "LessonAssistProposalResponse",
        "type": "object"
      },
      "LessonAssistProviderCandidate": {
        "additionalProperties": false,
        "properties": {
          "candidate_block": {
            "discriminator": {
              "mapping": {
                "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                "audio": "#/components/schemas/LessonAudioBlock",
                "callout": "#/components/schemas/LessonCalloutBlock",
                "code": "#/components/schemas/LessonCodeBlock",
                "equation": "#/components/schemas/LessonEquationBlock",
                "example": "#/components/schemas/LessonExampleBlock",
                "image": "#/components/schemas/LessonImageBlock",
                "interaction": "#/components/schemas/LessonInteractionBlock",
                "practice": "#/components/schemas/LessonPracticeBlock",
                "prose": "#/components/schemas/LessonProseBlock",
                "reflection": "#/components/schemas/LessonReflectionBlock",
                "video": "#/components/schemas/LessonVideoBlock"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonProseBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCalloutBlock"
              },
              {
                "$ref": "#/components/schemas/LessonExampleBlock"
              },
              {
                "$ref": "#/components/schemas/LessonEquationBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCodeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonImageBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAudioBlock"
              },
              {
                "$ref": "#/components/schemas/LessonVideoBlock"
              },
              {
                "$ref": "#/components/schemas/LessonInteractionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonPracticeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonReflectionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
              }
            ],
            "title": "Candidate Block"
          },
          "citation_source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Citation Source Ids",
            "type": "array"
          },
          "output_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Output Locale",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "safety_notes": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Safety Notes",
            "type": "array"
          },
          "uncertainty": {
            "$ref": "#/components/schemas/LessonAssistUncertainty"
          }
        },
        "required": ["candidate_block", "uncertainty", "rationale", "output_locale"],
        "title": "LessonAssistProviderCandidate",
        "type": "object"
      },
      "LessonAssistProviderInvocation": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "cost_minor_units": {
            "default": 0,
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "currency": {
            "const": "USD",
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "invocation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Invocation Sha256",
            "type": "string"
          },
          "max_output_tokens": {
            "maximum": 16000.0,
            "minimum": 1.0,
            "title": "Max Output Tokens",
            "type": "integer"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "outcome": {
            "enum": ["completed", "refused", "unavailable", "malformed", "budget_exceeded"],
            "title": "Outcome",
            "type": "string"
          },
          "outcome_message": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome Message"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "pricing_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Pricing Version",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "response_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Sha256"
          },
          "served_model": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Model"
          },
          "served_provider": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Provider"
          },
          "tool_access": {
            "const": false,
            "default": false,
            "title": "Tool Access",
            "type": "boolean"
          },
          "trust_labels": {
            "items": {
              "$ref": "#/components/schemas/LessonAssistTrustLabel"
            },
            "title": "Trust Labels",
            "type": "array"
          },
          "trust_renderer_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Trust Renderer Version",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "config_sha256",
          "trust_renderer_version",
          "prompt_sha256",
          "request_sha256",
          "outcome",
          "pricing_version",
          "max_output_tokens",
          "trust_labels",
          "invocation_sha256"
        ],
        "title": "LessonAssistProviderInvocation",
        "type": "object"
      },
      "LessonAssistRevisionAttribution": {
        "additionalProperties": false,
        "properties": {
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "effective_block_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Effective Block Sha256",
            "type": "string"
          },
          "human_edited": {
            "title": "Human Edited",
            "type": "boolean"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "operation": {
            "enum": ["rewrite", "example", "hint", "feedback", "localize"],
            "title": "Operation",
            "type": "string"
          },
          "proposal_id": {
            "pattern": "^assist-proposal-[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          }
        },
        "required": [
          "proposal_id",
          "operation",
          "provider",
          "model",
          "human_edited",
          "effective_block_sha256",
          "deep_link"
        ],
        "title": "LessonAssistRevisionAttribution",
        "type": "object"
      },
      "LessonAssistSourceContext": {
        "additionalProperties": false,
        "properties": {
          "author": {
            "title": "Author",
            "type": "string"
          },
          "citation_id": {
            "title": "Citation Id",
            "type": "string"
          },
          "citation_locator": {
            "title": "Citation Locator",
            "type": "string"
          },
          "excerpt": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "license": {
            "title": "License",
            "type": "string"
          },
          "protected": {
            "title": "Protected",
            "type": "boolean"
          },
          "rights_status": {
            "const": "cleared",
            "title": "Rights Status",
            "type": "string"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_version_id": {
            "title": "Source Version Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "source_version_id",
          "citation_id",
          "citation_locator",
          "title",
          "author",
          "license",
          "rights_status",
          "protected",
          "source_sha256"
        ],
        "title": "LessonAssistSourceContext",
        "type": "object"
      },
      "LessonAssistSourceRef": {
        "additionalProperties": false,
        "properties": {
          "citation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Citation Id",
            "type": "string"
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_version_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Version Id",
            "type": "string"
          }
        },
        "required": ["source_id", "source_version_id", "citation_id", "source_sha256"],
        "title": "LessonAssistSourceRef",
        "type": "object"
      },
      "LessonAssistTargetWitness": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "block_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Block Locale",
            "type": "string"
          },
          "block_registry_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Block Registry Version",
            "type": "string"
          },
          "block_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Sha256",
            "type": "string"
          },
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Module Id",
            "type": "string"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "dossier_revision",
          "dossier_sha256",
          "block_id",
          "block_sha256",
          "block_locale",
          "block_registry_version"
        ],
        "title": "LessonAssistTargetWitness",
        "type": "object"
      },
      "LessonAssistTrustLabel": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "instruction_semantics": {
            "const": "non-instruction",
            "default": "non-instruction",
            "title": "Instruction Semantics",
            "type": "string"
          },
          "label_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Label Id",
            "type": "string"
          },
          "origin": {
            "enum": ["target_block", "sources", "objectives", "items", "instructions"],
            "title": "Origin",
            "type": "string"
          },
          "original_chars": {
            "minimum": 0.0,
            "title": "Original Chars",
            "type": "integer"
          },
          "rendered_chars": {
            "minimum": 0.0,
            "title": "Rendered Chars",
            "type": "integer"
          },
          "rendered_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendered Content Sha256",
            "type": "string"
          },
          "truncated": {
            "title": "Truncated",
            "type": "boolean"
          },
          "trust": {
            "const": "untrusted",
            "default": "untrusted",
            "title": "Trust",
            "type": "string"
          }
        },
        "required": [
          "label_id",
          "origin",
          "content_sha256",
          "rendered_content_sha256",
          "original_chars",
          "rendered_chars",
          "truncated"
        ],
        "title": "LessonAssistTrustLabel",
        "type": "object"
      },
      "LessonAssistUncertainty": {
        "additionalProperties": false,
        "properties": {
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "level": {
            "enum": ["low", "medium", "high"],
            "title": "Level",
            "type": "string"
          },
          "unsupported_claims": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Unsupported Claims",
            "type": "array"
          }
        },
        "required": ["level", "explanation"],
        "title": "LessonAssistUncertainty",
        "type": "object"
      },
      "LessonAudioBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "attachment": {
            "$ref": "#/components/schemas/LessonGovernedAttachment"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "caption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Caption",
            "type": "string"
          },
          "kind": {
            "const": "audio",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "sign_language_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Language Ref"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "text_description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Description"
          },
          "transcript_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Ref"
          }
        },
        "required": ["block_id", "position", "accessibility", "kind", "attachment", "caption"],
        "title": "LessonAudioBlock",
        "type": "object"
      },
      "LessonAuthoringAutosaveRequest": {
        "additionalProperties": false,
        "properties": {
          "base_document": {
            "$ref": "#/components/schemas/LessonAuthoringDocument"
          },
          "base_witness": {
            "$ref": "#/components/schemas/LessonAuthoringBaseWitness"
          },
          "document": {
            "$ref": "#/components/schemas/LessonAuthoringDocument"
          },
          "expected_draft_version": {
            "minimum": 0.0,
            "title": "Expected Draft Version",
            "type": "integer"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_draft_version",
          "base_witness",
          "base_document",
          "document"
        ],
        "title": "LessonAuthoringAutosaveRequest",
        "type": "object"
      },
      "LessonAuthoringBaseWitness": {
        "additionalProperties": false,
        "properties": {
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "lesson_revision",
          "module_revision",
          "course_revision",
          "dossier_revision",
          "dossier_sha256"
        ],
        "title": "LessonAuthoringBaseWitness",
        "type": "object"
      },
      "LessonAuthoringCanonicalDraft": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "anyOf": [
              {
                "maxLength": 1000000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "content_type": {
            "enum": ["text", "video", "interactive", "quiz", "code_exercise"],
            "title": "Content Type",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "maximum": 5000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["title", "content_type"],
        "title": "LessonAuthoringCanonicalDraft",
        "type": "object"
      },
      "LessonAuthoringCheckpointRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_draft_version": {
            "minimum": 1.0,
            "title": "Expected Draft Version",
            "type": "integer"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "resolutions": {
            "items": {
              "$ref": "#/components/schemas/LessonAuthoringConflictResolution"
            },
            "maxItems": 10000,
            "title": "Resolutions",
            "type": "array"
          }
        },
        "required": ["idempotency_key", "expected_draft_version", "reason"],
        "title": "LessonAuthoringCheckpointRequest",
        "type": "object"
      },
      "LessonAuthoringCheckpointResponse": {
        "additionalProperties": false,
        "properties": {
          "checkpoint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Checkpoint Sha256",
            "type": "string"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/LessonAuthoringConflict"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "draft_id": {
            "title": "Draft Id",
            "type": "string"
          },
          "draft_version": {
            "minimum": 1.0,
            "title": "Draft Version",
            "type": "integer"
          },
          "outcome": {
            "enum": ["applied", "conflict"],
            "title": "Outcome",
            "type": "string"
          },
          "projection": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDossierProjection"
              },
              {
                "type": "null"
              }
            ]
          },
          "revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDossierRevisionSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "semantic_changes": {
            "items": {
              "$ref": "#/components/schemas/LessonAuthoringSemanticChange"
            },
            "title": "Semantic Changes",
            "type": "array"
          },
          "stale_approval_event_ids": {
            "items": {
              "type": "string"
            },
            "title": "Stale Approval Event Ids",
            "type": "array"
          }
        },
        "required": [
          "outcome",
          "draft_id",
          "draft_version",
          "conflicts",
          "semantic_changes",
          "stale_approval_event_ids",
          "checkpoint_sha256"
        ],
        "title": "LessonAuthoringCheckpointResponse",
        "type": "object"
      },
      "LessonAuthoringConflict": {
        "additionalProperties": false,
        "properties": {
          "base_present": {
            "title": "Base Present",
            "type": "boolean"
          },
          "base_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/JsonValue"
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "enum": ["block", "field", "relationship", "objective", "source", "accessibility"],
            "title": "Category",
            "type": "string"
          },
          "conflict_id": {
            "pattern": "^lesson-conflict-[a-f0-9]{24}$",
            "title": "Conflict Id",
            "type": "string"
          },
          "conflict_kind": {
            "enum": ["entity", "field", "list"],
            "title": "Conflict Kind",
            "type": "string"
          },
          "entity_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Id"
          },
          "entity_kind": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Entity Kind",
            "type": "string"
          },
          "field_path": {
            "pattern": "^/",
            "title": "Field Path",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "manual_resolution_allowed": {
            "default": true,
            "title": "Manual Resolution Allowed",
            "type": "boolean"
          },
          "mine_present": {
            "title": "Mine Present",
            "type": "boolean"
          },
          "mine_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/JsonValue"
              },
              {
                "type": "null"
              }
            ]
          },
          "redacted": {
            "default": false,
            "title": "Redacted",
            "type": "boolean"
          },
          "theirs_present": {
            "title": "Theirs Present",
            "type": "boolean"
          },
          "theirs_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/JsonValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "conflict_id",
          "conflict_kind",
          "category",
          "entity_kind",
          "field_path",
          "label",
          "base_present",
          "mine_present",
          "theirs_present"
        ],
        "title": "LessonAuthoringConflict",
        "type": "object"
      },
      "LessonAuthoringConflictResolution": {
        "additionalProperties": false,
        "properties": {
          "conflict_id": {
            "pattern": "^lesson-conflict-[a-f0-9]{24}$",
            "title": "Conflict Id",
            "type": "string"
          },
          "manual_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/JsonValue"
              },
              {
                "type": "null"
              }
            ]
          },
          "strategy": {
            "enum": ["mine", "theirs", "manual"],
            "title": "Strategy",
            "type": "string"
          }
        },
        "required": ["conflict_id", "strategy"],
        "title": "LessonAuthoringConflictResolution",
        "type": "object"
      },
      "LessonAuthoringDocument": {
        "additionalProperties": false,
        "properties": {
          "canonical": {
            "$ref": "#/components/schemas/LessonAuthoringCanonicalDraft"
          },
          "dossier": {
            "$ref": "#/components/schemas/LessonDossierDraft"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["canonical", "dossier"],
        "title": "LessonAuthoringDocument",
        "type": "object"
      },
      "LessonAuthoringDraftResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "base_document": {
            "$ref": "#/components/schemas/LessonAuthoringDocument"
          },
          "base_witness": {
            "$ref": "#/components/schemas/LessonAuthoringBaseWitness"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/LessonAuthoringConflict"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "current_witness": {
            "$ref": "#/components/schemas/LessonDossierWitness"
          },
          "document": {
            "$ref": "#/components/schemas/LessonAuthoringDocument"
          },
          "document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Document Sha256",
            "type": "string"
          },
          "draft_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Draft Id",
            "type": "string"
          },
          "draft_version": {
            "minimum": 1.0,
            "title": "Draft Version",
            "type": "integer"
          },
          "safe_merge_available": {
            "title": "Safe Merge Available",
            "type": "boolean"
          },
          "saved_at": {
            "format": "date-time",
            "title": "Saved At",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sync_state": {
            "enum": ["saved", "conflict"],
            "title": "Sync State",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "draft_version",
          "actor_id",
          "actor_role",
          "base_witness",
          "base_document",
          "current_witness",
          "document",
          "document_sha256",
          "sync_state",
          "conflicts",
          "safe_merge_available",
          "saved_at"
        ],
        "title": "LessonAuthoringDraftResponse",
        "type": "object"
      },
      "LessonAuthoringRestoreImpact": {
        "additionalProperties": false,
        "properties": {
          "changed_entities": {
            "items": {
              "type": "string"
            },
            "title": "Changed Entities",
            "type": "array"
          },
          "readiness_will_require_review": {
            "title": "Readiness Will Require Review",
            "type": "boolean"
          },
          "resulting_revision_number": {
            "minimum": 1.0,
            "title": "Resulting Revision Number",
            "type": "integer"
          },
          "source_revision_number": {
            "minimum": 1.0,
            "title": "Source Revision Number",
            "type": "integer"
          },
          "stale_approval_event_ids": {
            "items": {
              "type": "string"
            },
            "title": "Stale Approval Event Ids",
            "type": "array"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "source_revision_number",
          "resulting_revision_number",
          "changed_entities",
          "stale_approval_event_ids",
          "readiness_will_require_review",
          "summary"
        ],
        "title": "LessonAuthoringRestoreImpact",
        "type": "object"
      },
      "LessonAuthoringRestorePreview": {
        "additionalProperties": false,
        "properties": {
          "changes": {
            "items": {
              "$ref": "#/components/schemas/LessonAuthoringSemanticChange"
            },
            "title": "Changes",
            "type": "array"
          },
          "current_witness": {
            "$ref": "#/components/schemas/LessonDossierWitness"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "impact": {
            "$ref": "#/components/schemas/LessonAuthoringRestoreImpact"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_revision": {
            "$ref": "#/components/schemas/LessonDossierRevisionSummary"
          }
        },
        "required": [
          "source_revision",
          "current_witness",
          "changes",
          "impact",
          "preview_sha256",
          "generated_at"
        ],
        "title": "LessonAuthoringRestorePreview",
        "type": "object"
      },
      "LessonAuthoringRestorePreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256"
        ],
        "title": "LessonAuthoringRestorePreviewRequest",
        "type": "object"
      },
      "LessonAuthoringRestoreRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "idempotency_key",
          "preview_sha256",
          "reason"
        ],
        "title": "LessonAuthoringRestoreRequest",
        "type": "object"
      },
      "LessonAuthoringRestoreResponse": {
        "additionalProperties": false,
        "properties": {
          "impact": {
            "$ref": "#/components/schemas/LessonAuthoringRestoreImpact"
          },
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "restore_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Restore Sha256",
            "type": "string"
          },
          "revision": {
            "$ref": "#/components/schemas/LessonDossierRevisionSummary"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["projection", "revision", "impact", "restore_sha256"],
        "title": "LessonAuthoringRestoreResponse",
        "type": "object"
      },
      "LessonAuthoringRevisionComparison": {
        "additionalProperties": false,
        "properties": {
          "changes": {
            "items": {
              "$ref": "#/components/schemas/LessonAuthoringSemanticChange"
            },
            "title": "Changes",
            "type": "array"
          },
          "from_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "From Document Sha256",
            "type": "string"
          },
          "from_revision": {
            "$ref": "#/components/schemas/LessonDossierRevisionSummary"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "redacted_change_count": {
            "minimum": 0.0,
            "title": "Redacted Change Count",
            "type": "integer"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "to_current": {
            "title": "To Current",
            "type": "boolean"
          },
          "to_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Document Sha256",
            "type": "string"
          },
          "to_revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDossierRevisionSummary"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "from_revision",
          "to_revision",
          "to_current",
          "from_document_sha256",
          "to_document_sha256",
          "changes",
          "redacted_change_count",
          "generated_at"
        ],
        "title": "LessonAuthoringRevisionComparison",
        "type": "object"
      },
      "LessonAuthoringSemanticChange": {
        "additionalProperties": false,
        "properties": {
          "after_present": {
            "title": "After Present",
            "type": "boolean"
          },
          "after_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/JsonValue"
              },
              {
                "type": "null"
              }
            ]
          },
          "before_present": {
            "title": "Before Present",
            "type": "boolean"
          },
          "before_value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/JsonValue"
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "enum": ["block", "field", "relationship", "objective", "source", "accessibility"],
            "title": "Category",
            "type": "string"
          },
          "change_id": {
            "pattern": "^lesson-change-[a-f0-9]{24}$",
            "title": "Change Id",
            "type": "string"
          },
          "change_kind": {
            "enum": ["added", "removed", "modified", "reordered"],
            "title": "Change Kind",
            "type": "string"
          },
          "entity_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Id"
          },
          "entity_kind": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Entity Kind",
            "type": "string"
          },
          "field_path": {
            "pattern": "^/",
            "title": "Field Path",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "redacted": {
            "default": false,
            "title": "Redacted",
            "type": "boolean"
          }
        },
        "required": [
          "change_id",
          "category",
          "change_kind",
          "entity_kind",
          "field_path",
          "label",
          "before_present",
          "after_present"
        ],
        "title": "LessonAuthoringSemanticChange",
        "type": "object"
      },
      "LessonBlockAccessibility": {
        "additionalProperties": false,
        "properties": {
          "captions_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Captions Ref"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "non_visual_alternative": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Non Visual Alternative"
          },
          "status": {
            "default": "missing",
            "enum": ["complete", "needs_review", "missing"],
            "title": "Status",
            "type": "string"
          },
          "transcript_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Ref"
          }
        },
        "required": ["label"],
        "title": "LessonBlockAccessibility",
        "type": "object"
      },
      "LessonBlockConvertCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "operation": {
            "const": "convert",
            "title": "Operation",
            "type": "string"
          },
          "replacement": {
            "discriminator": {
              "mapping": {
                "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                "audio": "#/components/schemas/LessonAudioBlock",
                "callout": "#/components/schemas/LessonCalloutBlock",
                "code": "#/components/schemas/LessonCodeBlock",
                "equation": "#/components/schemas/LessonEquationBlock",
                "example": "#/components/schemas/LessonExampleBlock",
                "image": "#/components/schemas/LessonImageBlock",
                "interaction": "#/components/schemas/LessonInteractionBlock",
                "practice": "#/components/schemas/LessonPracticeBlock",
                "prose": "#/components/schemas/LessonProseBlock",
                "reflection": "#/components/schemas/LessonReflectionBlock",
                "video": "#/components/schemas/LessonVideoBlock"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonProseBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCalloutBlock"
              },
              {
                "$ref": "#/components/schemas/LessonExampleBlock"
              },
              {
                "$ref": "#/components/schemas/LessonEquationBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCodeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonImageBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAudioBlock"
              },
              {
                "$ref": "#/components/schemas/LessonVideoBlock"
              },
              {
                "$ref": "#/components/schemas/LessonInteractionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonPracticeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonReflectionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
              }
            ],
            "title": "Replacement"
          }
        },
        "required": ["operation", "block_id", "replacement"],
        "title": "LessonBlockConvertCommand",
        "type": "object"
      },
      "LessonBlockDeleteCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "operation": {
            "const": "delete",
            "title": "Operation",
            "type": "string"
          }
        },
        "required": ["operation", "block_id"],
        "title": "LessonBlockDeleteCommand",
        "type": "object"
      },
      "LessonBlockDuplicateCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "new_block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "New Block Id",
            "type": "string"
          },
          "operation": {
            "const": "duplicate",
            "title": "Operation",
            "type": "string"
          },
          "target_parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Parent Id"
          },
          "target_position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Target Position",
            "type": "integer"
          }
        },
        "required": ["operation", "block_id", "new_block_id", "target_position"],
        "title": "LessonBlockDuplicateCommand",
        "type": "object"
      },
      "LessonBlockEditCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "operation": {
            "const": "edit",
            "title": "Operation",
            "type": "string"
          },
          "replacement": {
            "discriminator": {
              "mapping": {
                "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                "audio": "#/components/schemas/LessonAudioBlock",
                "callout": "#/components/schemas/LessonCalloutBlock",
                "code": "#/components/schemas/LessonCodeBlock",
                "equation": "#/components/schemas/LessonEquationBlock",
                "example": "#/components/schemas/LessonExampleBlock",
                "image": "#/components/schemas/LessonImageBlock",
                "interaction": "#/components/schemas/LessonInteractionBlock",
                "practice": "#/components/schemas/LessonPracticeBlock",
                "prose": "#/components/schemas/LessonProseBlock",
                "reflection": "#/components/schemas/LessonReflectionBlock",
                "video": "#/components/schemas/LessonVideoBlock"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonProseBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCalloutBlock"
              },
              {
                "$ref": "#/components/schemas/LessonExampleBlock"
              },
              {
                "$ref": "#/components/schemas/LessonEquationBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCodeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonImageBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAudioBlock"
              },
              {
                "$ref": "#/components/schemas/LessonVideoBlock"
              },
              {
                "$ref": "#/components/schemas/LessonInteractionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonPracticeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonReflectionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
              }
            ],
            "title": "Replacement"
          }
        },
        "required": ["operation", "block_id", "replacement"],
        "title": "LessonBlockEditCommand",
        "type": "object"
      },
      "LessonBlockExportMapping": {
        "additionalProperties": false,
        "properties": {
          "mapping_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Mapping Id",
            "type": "string"
          },
          "mode": {
            "enum": ["semantic", "reference", "fallback"],
            "title": "Mode",
            "type": "string"
          },
          "target": {
            "enum": ["learner_html", "plain_text", "pdf", "qti", "scorm", "common_cartridge"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["target", "mode", "mapping_id"],
        "title": "LessonBlockExportMapping",
        "type": "object"
      },
      "LessonBlockInsertCommand": {
        "additionalProperties": false,
        "properties": {
          "block": {
            "discriminator": {
              "mapping": {
                "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                "audio": "#/components/schemas/LessonAudioBlock",
                "callout": "#/components/schemas/LessonCalloutBlock",
                "code": "#/components/schemas/LessonCodeBlock",
                "equation": "#/components/schemas/LessonEquationBlock",
                "example": "#/components/schemas/LessonExampleBlock",
                "image": "#/components/schemas/LessonImageBlock",
                "interaction": "#/components/schemas/LessonInteractionBlock",
                "practice": "#/components/schemas/LessonPracticeBlock",
                "prose": "#/components/schemas/LessonProseBlock",
                "reflection": "#/components/schemas/LessonReflectionBlock",
                "video": "#/components/schemas/LessonVideoBlock"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonProseBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCalloutBlock"
              },
              {
                "$ref": "#/components/schemas/LessonExampleBlock"
              },
              {
                "$ref": "#/components/schemas/LessonEquationBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCodeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonImageBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAudioBlock"
              },
              {
                "$ref": "#/components/schemas/LessonVideoBlock"
              },
              {
                "$ref": "#/components/schemas/LessonInteractionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonPracticeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonReflectionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
              }
            ],
            "title": "Block"
          },
          "operation": {
            "const": "insert",
            "title": "Operation",
            "type": "string"
          }
        },
        "required": ["operation", "block"],
        "title": "LessonBlockInsertCommand",
        "type": "object"
      },
      "LessonBlockLearnerRender": {
        "additionalProperties": false,
        "properties": {
          "accessibility_text": {
            "title": "Accessibility Text",
            "type": "string"
          },
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "heading": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Heading"
          },
          "interaction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonActivityDeliveryContract"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "enum": [
              "prose",
              "callout",
              "example",
              "equation",
              "code",
              "image",
              "audio",
              "video",
              "interaction",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Kind",
            "type": "string"
          },
          "link_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Link Ref"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "media": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonMediaLearnerRender"
              },
              {
                "type": "null"
              }
            ]
          },
          "media_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Ref"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Objective Ids",
            "type": "array"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "plain_text": {
            "items": {
              "type": "string"
            },
            "title": "Plain Text",
            "type": "array"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "sandbox_profile": {
            "anyOf": [
              {
                "const": "opaque-cross-origin-v1",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sandbox Profile"
          },
          "semantic_role": {
            "enum": [
              "paragraph",
              "note",
              "example",
              "math",
              "code",
              "figure",
              "audio",
              "video",
              "application",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Semantic Role",
            "type": "string"
          },
          "semantic_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Semantic Source"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Ids",
            "type": "array"
          },
          "technical": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "code": "#/components/schemas/LessonCodeLearnerSemantics",
                    "equation": "#/components/schemas/LessonMathLearnerSemantics"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/LessonMathLearnerSemantics"
                  },
                  {
                    "$ref": "#/components/schemas/LessonCodeLearnerSemantics"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Technical"
          }
        },
        "required": [
          "block_id",
          "kind",
          "parent_id",
          "position",
          "locale",
          "semantic_role",
          "plain_text",
          "accessibility_text",
          "objective_ids",
          "source_ids"
        ],
        "title": "LessonBlockLearnerRender",
        "type": "object"
      },
      "LessonBlockNestCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "operation": {
            "const": "nest",
            "title": "Operation",
            "type": "string"
          },
          "parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "target_position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Target Position",
            "type": "integer"
          }
        },
        "required": ["operation", "block_id", "parent_id", "target_position"],
        "title": "LessonBlockNestCommand",
        "type": "object"
      },
      "LessonBlockOperationReceipt": {
        "additionalProperties": false,
        "properties": {
          "block_ids": {
            "items": {
              "type": "string"
            },
            "title": "Block Ids",
            "type": "array"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "command_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Command Sha256",
            "type": "string"
          },
          "invalidated_block_ids": {
            "items": {
              "type": "string"
            },
            "title": "Invalidated Block Ids",
            "type": "array"
          },
          "operation": {
            "enum": [
              "attach_media",
              "insert",
              "duplicate",
              "reference",
              "reorder",
              "nest",
              "convert",
              "edit",
              "delete",
              "restore"
            ],
            "title": "Operation",
            "type": "string"
          },
          "resulting_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Resulting Document Sha256",
            "type": "string"
          }
        },
        "required": [
          "operation",
          "block_ids",
          "invalidated_block_ids",
          "changed_paths",
          "command_sha256",
          "resulting_document_sha256"
        ],
        "title": "LessonBlockOperationReceipt",
        "type": "object"
      },
      "LessonBlockOperationRequest": {
        "additionalProperties": false,
        "properties": {
          "command": {
            "discriminator": {
              "mapping": {
                "convert": "#/components/schemas/LessonBlockConvertCommand",
                "delete": "#/components/schemas/LessonBlockDeleteCommand",
                "duplicate": "#/components/schemas/LessonBlockDuplicateCommand",
                "edit": "#/components/schemas/LessonBlockEditCommand",
                "insert": "#/components/schemas/LessonBlockInsertCommand",
                "nest": "#/components/schemas/LessonBlockNestCommand",
                "reference": "#/components/schemas/LessonBlockReferenceCommand",
                "reorder": "#/components/schemas/LessonBlockReorderCommand",
                "restore": "#/components/schemas/LessonBlockRestoreCommand"
              },
              "propertyName": "operation"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonBlockInsertCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockDuplicateCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockReferenceCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockReorderCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockNestCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockConvertCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockEditCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockDeleteCommand"
              },
              {
                "$ref": "#/components/schemas/LessonBlockRestoreCommand"
              }
            ],
            "title": "Command"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "reason",
          "command"
        ],
        "title": "LessonBlockOperationRequest",
        "type": "object"
      },
      "LessonBlockOperationResponse": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "receipt": {
            "$ref": "#/components/schemas/LessonBlockOperationReceipt"
          }
        },
        "required": ["projection", "receipt"],
        "title": "LessonBlockOperationResponse",
        "type": "object"
      },
      "LessonBlockReferenceCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "mode": {
            "enum": ["add", "remove"],
            "title": "Mode",
            "type": "string"
          },
          "operation": {
            "const": "reference",
            "title": "Operation",
            "type": "string"
          },
          "referenced_block_id": {
            "title": "Referenced Block Id",
            "type": "string"
          }
        },
        "required": ["operation", "block_id", "referenced_block_id", "mode"],
        "title": "LessonBlockReferenceCommand",
        "type": "object"
      },
      "LessonBlockRegistryEntry": {
        "additionalProperties": false,
        "properties": {
          "accessibility_validator_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Accessibility Validator Id",
            "type": "string"
          },
          "common_field_ids": {
            "items": {
              "type": "string"
            },
            "title": "Common Field Ids",
            "type": "array"
          },
          "editor_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Editor Id",
            "type": "string"
          },
          "export_mappings": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockExportMapping"
            },
            "minItems": 1,
            "title": "Export Mappings",
            "type": "array"
          },
          "import_mapping_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Import Mapping Ids",
            "type": "array"
          },
          "kind": {
            "enum": [
              "prose",
              "callout",
              "example",
              "equation",
              "code",
              "image",
              "audio",
              "video",
              "interaction",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Kind",
            "type": "string"
          },
          "learner_renderer_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Learner Renderer Id",
            "type": "string"
          },
          "localization_mapping_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Localization Mapping Id",
            "type": "string"
          },
          "oldest_stored_schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Oldest Stored Schema Version",
            "type": "string"
          },
          "payload_schema_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Payload Schema Id",
            "type": "string"
          },
          "preview_fixture_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Preview Fixture Id",
            "type": "string"
          },
          "registry_version": {
            "const": "3.6.0",
            "default": "3.6.0",
            "title": "Registry Version",
            "type": "string"
          },
          "schema_version": {
            "const": "1.1.0",
            "default": "1.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "test_disposition": {
            "const": "covered",
            "default": "covered",
            "title": "Test Disposition",
            "type": "string"
          },
          "validator_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Validator Id",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "common_field_ids",
          "payload_schema_id",
          "editor_id",
          "learner_renderer_id",
          "validator_id",
          "accessibility_validator_id",
          "localization_mapping_id",
          "import_mapping_ids",
          "export_mappings",
          "preview_fixture_id"
        ],
        "title": "LessonBlockRegistryEntry",
        "type": "object"
      },
      "LessonBlockReorderCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "operation": {
            "const": "reorder",
            "title": "Operation",
            "type": "string"
          },
          "target_position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Target Position",
            "type": "integer"
          }
        },
        "required": ["operation", "block_id", "target_position"],
        "title": "LessonBlockReorderCommand",
        "type": "object"
      },
      "LessonBlockRestoreCommand": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "operation": {
            "const": "restore",
            "title": "Operation",
            "type": "string"
          },
          "target_parent_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Parent Id"
          },
          "target_position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Target Position",
            "type": "integer"
          }
        },
        "required": ["operation", "block_id", "target_position"],
        "title": "LessonBlockRestoreCommand",
        "type": "object"
      },
      "LessonBlockTombstone": {
        "additionalProperties": false,
        "properties": {
          "block": {
            "discriminator": {
              "mapping": {
                "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                "audio": "#/components/schemas/LessonAudioBlock",
                "callout": "#/components/schemas/LessonCalloutBlock",
                "code": "#/components/schemas/LessonCodeBlock",
                "equation": "#/components/schemas/LessonEquationBlock",
                "example": "#/components/schemas/LessonExampleBlock",
                "image": "#/components/schemas/LessonImageBlock",
                "interaction": "#/components/schemas/LessonInteractionBlock",
                "practice": "#/components/schemas/LessonPracticeBlock",
                "prose": "#/components/schemas/LessonProseBlock",
                "reflection": "#/components/schemas/LessonReflectionBlock",
                "video": "#/components/schemas/LessonVideoBlock"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/LessonProseBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCalloutBlock"
              },
              {
                "$ref": "#/components/schemas/LessonExampleBlock"
              },
              {
                "$ref": "#/components/schemas/LessonEquationBlock"
              },
              {
                "$ref": "#/components/schemas/LessonCodeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonImageBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAudioBlock"
              },
              {
                "$ref": "#/components/schemas/LessonVideoBlock"
              },
              {
                "$ref": "#/components/schemas/LessonInteractionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonPracticeBlock"
              },
              {
                "$ref": "#/components/schemas/LessonReflectionBlock"
              },
              {
                "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
              }
            ],
            "title": "Block"
          },
          "deleted_at_revision": {
            "minimum": 0.0,
            "title": "Deleted At Revision",
            "type": "integer"
          },
          "deleted_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Deleted Reason",
            "type": "string"
          }
        },
        "required": ["block", "deleted_reason", "deleted_at_revision"],
        "title": "LessonBlockTombstone",
        "type": "object"
      },
      "LessonBlockValidation": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockValidationFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "kind": {
            "enum": [
              "prose",
              "callout",
              "example",
              "equation",
              "code",
              "image",
              "audio",
              "video",
              "interaction",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Kind",
            "type": "string"
          },
          "valid_for_preview": {
            "title": "Valid For Preview",
            "type": "boolean"
          },
          "valid_for_publication": {
            "title": "Valid For Publication",
            "type": "boolean"
          }
        },
        "required": ["block_id", "kind", "valid_for_preview", "valid_for_publication", "findings"],
        "title": "LessonBlockValidation",
        "type": "object"
      },
      "LessonBlockValidationFinding": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "schema",
              "source",
              "objective",
              "accessibility",
              "rights",
              "provenance",
              "dependency",
              "safety"
            ],
            "title": "Category",
            "type": "string"
          },
          "code": {
            "pattern": "^[a-z][a-z0-9_]{2,79}$",
            "title": "Code",
            "type": "string"
          },
          "field_path": {
            "pattern": "^/blocks/",
            "title": "Field Path",
            "type": "string"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "remediation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Remediation",
            "type": "string"
          },
          "severity": {
            "enum": ["warning", "blocker"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "category", "severity", "field_path", "message", "remediation"],
        "title": "LessonBlockValidationFinding",
        "type": "object"
      },
      "LessonCalloutBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "body": {
            "maxLength": 40000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "heading": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Heading",
            "type": "string"
          },
          "kind": {
            "const": "callout",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "tone": {
            "enum": ["note", "important", "warning", "success"],
            "title": "Tone",
            "type": "string"
          }
        },
        "required": ["block_id", "position", "accessibility", "kind", "tone", "heading", "body"],
        "title": "LessonCalloutBlock",
        "type": "object"
      },
      "LessonCodeAnnotation": {
        "additionalProperties": false,
        "properties": {
          "annotation_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Annotation Id",
            "type": "string"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "end_line": {
            "maximum": 20000.0,
            "minimum": 1.0,
            "title": "End Line",
            "type": "integer"
          },
          "label": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "start_line": {
            "maximum": 20000.0,
            "minimum": 1.0,
            "title": "Start Line",
            "type": "integer"
          }
        },
        "required": ["annotation_id", "start_line", "end_line", "label", "description"],
        "title": "LessonCodeAnnotation",
        "type": "object"
      },
      "LessonCodeBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "annotations": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeAnnotation"
            },
            "maxItems": 2000,
            "title": "Annotations",
            "type": "array"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "caption": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Caption",
            "type": "string"
          },
          "code": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "error_description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Description"
          },
          "example_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "maxItems": 2000,
            "title": "Example Refs",
            "type": "array"
          },
          "execution": {
            "const": "disabled",
            "default": "disabled",
            "title": "Execution",
            "type": "string"
          },
          "execution_fence": {
            "$ref": "#/components/schemas/LessonCodeExecutionFence"
          },
          "input_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "maxItems": 2000,
            "title": "Input Refs",
            "type": "array"
          },
          "kind": {
            "const": "code",
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "pattern": "^[A-Za-z0-9_+.#-]{1,40}$",
            "title": "Language",
            "type": "string"
          },
          "language_version": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Version"
          },
          "line_semantics": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeLineSemantic"
            },
            "maxItems": 20000,
            "title": "Line Semantics",
            "type": "array"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "output_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "maxItems": 2000,
            "title": "Output Refs",
            "type": "array"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "result_description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result Description"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "syntax_description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Syntax Description"
          },
          "test_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "maxItems": 2000,
            "title": "Test Refs",
            "type": "array"
          }
        },
        "required": [
          "block_id",
          "position",
          "accessibility",
          "kind",
          "language",
          "code",
          "caption"
        ],
        "title": "LessonCodeBlock",
        "type": "object"
      },
      "LessonCodeExecutionFence": {
        "additionalProperties": false,
        "properties": {
          "credentials": {
            "const": "denied",
            "default": "denied",
            "title": "Credentials",
            "type": "string"
          },
          "filesystem": {
            "const": "denied",
            "default": "denied",
            "title": "Filesystem",
            "type": "string"
          },
          "learner_data": {
            "const": "denied",
            "default": "denied",
            "title": "Learner Data",
            "type": "string"
          },
          "mode": {
            "const": "disabled",
            "default": "disabled",
            "title": "Mode",
            "type": "string"
          },
          "network": {
            "const": "denied",
            "default": "denied",
            "title": "Network",
            "type": "string"
          },
          "sandbox_profile": {
            "const": "none",
            "default": "none",
            "title": "Sandbox Profile",
            "type": "string"
          }
        },
        "title": "LessonCodeExecutionFence",
        "type": "object"
      },
      "LessonCodeLearnerSemantics": {
        "additionalProperties": false,
        "properties": {
          "annotations": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeAnnotation"
            },
            "title": "Annotations",
            "type": "array"
          },
          "error_description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Error Description",
            "type": "string"
          },
          "example_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "title": "Example Refs",
            "type": "array"
          },
          "execution_fence": {
            "$ref": "#/components/schemas/LessonCodeExecutionFence"
          },
          "input_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "title": "Input Refs",
            "type": "array"
          },
          "kind": {
            "const": "code",
            "default": "code",
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Language",
            "type": "string"
          },
          "language_version": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Version"
          },
          "line_semantics": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeLineSemantic"
            },
            "title": "Line Semantics",
            "type": "array"
          },
          "output_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "title": "Output Refs",
            "type": "array"
          },
          "plain_text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Plain Text",
            "type": "string"
          },
          "result_description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Result Description",
            "type": "string"
          },
          "syntax_description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Syntax Description",
            "type": "string"
          },
          "test_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "title": "Test Refs",
            "type": "array"
          }
        },
        "required": [
          "language",
          "plain_text",
          "line_semantics",
          "annotations",
          "input_refs",
          "output_refs",
          "example_refs",
          "test_refs",
          "syntax_description",
          "error_description",
          "result_description",
          "execution_fence"
        ],
        "title": "LessonCodeLearnerSemantics",
        "type": "object"
      },
      "LessonCodeLineSemantic": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "line_number": {
            "maximum": 20000.0,
            "minimum": 1.0,
            "title": "Line Number",
            "type": "integer"
          },
          "role": {
            "enum": [
              "blank",
              "comment",
              "import",
              "declaration",
              "input",
              "control",
              "computation",
              "output",
              "assertion",
              "error_handling"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["line_number", "role", "description"],
        "title": "LessonCodeLineSemantic",
        "type": "object"
      },
      "LessonCodeReference": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "label": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "reference_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]{2,255}$",
            "title": "Reference Id",
            "type": "string"
          }
        },
        "required": ["reference_id", "label", "description"],
        "title": "LessonCodeReference",
        "type": "object"
      },
      "LessonCreate": {
        "description": "Schema for creating a new lesson within a module.",
        "properties": {
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "content_type": {
            "default": "text",
            "pattern": "^(text|video|interactive|quiz|code_exercise)$",
            "title": "Content Type",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "is_free_preview": {
            "default": false,
            "title": "Is Free Preview",
            "type": "boolean"
          },
          "is_published": {
            "default": false,
            "title": "Is Published",
            "type": "boolean"
          },
          "order": {
            "default": 0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "resource_urls": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Urls"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["title"],
        "title": "LessonCreate",
        "type": "object"
      },
      "LessonDeliveryAccessReceipt": {
        "additionalProperties": false,
        "properties": {
          "access": {
            "enum": ["published_enrollment", "published_free_preview", "published_author"],
            "title": "Access",
            "type": "string"
          },
          "learner_record_embedded": {
            "const": false,
            "default": false,
            "title": "Learner Record Embedded",
            "type": "boolean"
          },
          "mutation_performed": {
            "const": false,
            "default": false,
            "title": "Mutation Performed",
            "type": "boolean"
          },
          "subject_ref_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Ref Sha256",
            "type": "string"
          }
        },
        "required": ["access", "subject_ref_sha256"],
        "title": "LessonDeliveryAccessReceipt",
        "type": "object"
      },
      "LessonDeliveryBuildWitness": {
        "additionalProperties": false,
        "properties": {
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "build_id": {
            "pattern": "^lesson-build-[a-f0-9]{24}$",
            "title": "Build Id",
            "type": "string"
          },
          "build_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Build Sha256",
            "type": "string"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_published": {
            "title": "Course Published",
            "type": "boolean"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_published": {
            "title": "Lesson Published",
            "type": "boolean"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "title": "Module Id",
            "type": "string"
          },
          "module_published": {
            "title": "Module Published",
            "type": "boolean"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          },
          "unpublished": {
            "title": "Unpublished",
            "type": "boolean"
          }
        },
        "required": [
          "build_id",
          "build_sha256",
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "dossier_revision",
          "dossier_sha256",
          "block_document_sha256",
          "course_published",
          "module_published",
          "lesson_published",
          "unpublished"
        ],
        "title": "LessonDeliveryBuildWitness",
        "type": "object"
      },
      "LessonDeliveryContextRequest": {
        "additionalProperties": false,
        "properties": {
          "locale": {
            "default": "en-US",
            "enum": ["en", "en-US", "en-GB"],
            "title": "Locale",
            "type": "string"
          },
          "pnp": {
            "$ref": "#/components/schemas/LessonDeliveryPnpContext",
            "default": {
              "supports": []
            }
          },
          "preferences": {
            "$ref": "#/components/schemas/LessonDeliveryPreferences",
            "default": {
              "explanation_depth": "standard",
              "media_preference": "balanced",
              "pace": "steady"
            }
          },
          "prerequisite_state": {
            "default": "satisfied",
            "enum": ["satisfied", "missing", "unknown"],
            "title": "Prerequisite State",
            "type": "string"
          },
          "progress": {
            "$ref": "#/components/schemas/LessonDeliveryProgressContext",
            "default": {
              "completed_block_ids": [],
              "percent": 0,
              "state": "not_started"
            }
          },
          "rationale": {
            "default": "Exercise the learner delivery renderer with an explicit sample context.",
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          }
        },
        "title": "LessonDeliveryContextRequest",
        "type": "object"
      },
      "LessonDeliveryDocument": {
        "additionalProperties": false,
        "properties": {
          "accessibility_variants": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAccessibilityVariantDraft"
            },
            "title": "Accessibility Variants",
            "type": "array"
          },
          "activities": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierActivityDraft"
            },
            "title": "Activities",
            "type": "array"
          },
          "activity_runtime_registry": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityRuntimeRegistryEntry"
            },
            "title": "Activity Runtime Registry",
            "type": "array"
          },
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssessmentProjection"
            },
            "title": "Assessments",
            "type": "array"
          },
          "blocks": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockLearnerRender"
            },
            "title": "Blocks",
            "type": "array"
          },
          "build": {
            "$ref": "#/components/schemas/LessonDeliveryBuildWitness"
          },
          "content_items": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierContentItemDraft"
            },
            "title": "Content Items",
            "type": "array"
          },
          "context": {
            "$ref": "#/components/schemas/LessonDeliveryProjectedContext"
          },
          "course_title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Course Title",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Document Sha256",
            "type": "string"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "legacy_content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legacy Content"
          },
          "media": {
            "items": {
              "$ref": "#/components/schemas/LessonMediaLearnerRender"
            },
            "title": "Media",
            "type": "array"
          },
          "module_title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Module Title",
            "type": "string"
          },
          "redactions": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierRedaction"
            },
            "title": "Redactions",
            "type": "array"
          },
          "renderer": {
            "$ref": "#/components/schemas/LessonDeliveryRendererContract"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "build",
          "renderer",
          "context",
          "title",
          "description",
          "module_title",
          "course_title",
          "duration_minutes",
          "legacy_content",
          "content_items",
          "activities",
          "assessments",
          "accessibility_variants",
          "blocks",
          "media",
          "activity_runtime_registry",
          "redactions",
          "document_sha256"
        ],
        "title": "LessonDeliveryDocument",
        "type": "object"
      },
      "LessonDeliveryMatrixPreviewContract": {
        "additionalProperties": false,
        "properties": {
          "contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Contract Sha256",
            "type": "string"
          },
          "document": {
            "$ref": "#/components/schemas/LessonDeliveryDocument"
          },
          "environment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDeliveryPreviewEnvironment"
              },
              {
                "type": "null"
              }
            ]
          },
          "identity": {
            "$ref": "#/components/schemas/LessonDeliverySyntheticIdentity",
            "default": {
              "display_name": "Sample learner",
              "enrollment_authority": false,
              "grade_authority": false,
              "identity_source": "generated_sample",
              "integrity_authority": false,
              "role": "preview_participant",
              "subject_id": "sample-learner-00000000"
            }
          },
          "parity": {
            "$ref": "#/components/schemas/LessonDeliveryParityEvidence"
          },
          "preview_schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Preview Schema Version",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewSession"
          },
          "write_isolation": {
            "$ref": "#/components/schemas/LessonDeliveryWriteIsolation",
            "default": {
              "credentials": "not_issued",
              "denied_sinks": [
                "attempts",
                "grades",
                "credentials",
                "analytics",
                "notifications",
                "integrity",
                "lti",
                "lms"
              ],
              "event_scope": "bounded_parent_memory_only",
              "mutation_transport": "disabled",
              "persistence_hooks": "none",
              "scoring": "local_nonpersistent_only"
            }
          }
        },
        "required": ["session", "parity", "document", "contract_sha256"],
        "title": "LessonDeliveryMatrixPreviewContract",
        "type": "object"
      },
      "LessonDeliveryMatrixPreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonDeliveryContextRequest",
            "default": {
              "locale": "en-US",
              "pnp": {
                "supports": []
              },
              "preferences": {
                "explanation_depth": "standard",
                "media_preference": "balanced",
                "pace": "steady"
              },
              "prerequisite_state": "satisfied",
              "progress": {
                "completed_block_ids": [],
                "percent": 0,
                "state": "not_started"
              },
              "rationale": "Exercise the learner delivery renderer with an explicit sample context."
            }
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "preview_preset_id": {
            "anyOf": [
              {
                "enum": [
                  "desktop-pointer-light-online",
                  "desktop-keyboard-dark-high-latency",
                  "phone-touch-dark-limited-data",
                  "phone-keyboard-reduced-intermittent",
                  "tablet-touch-high-contrast-online",
                  "rtl-phone-direction-only-online",
                  "offline-phone-warm-cache",
                  "offline-desktop-cold-cache"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preview Preset Id"
          },
          "session_minutes": {
            "default": 15,
            "maximum": 30.0,
            "minimum": 5.0,
            "title": "Session Minutes",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256"
        ],
        "title": "LessonDeliveryMatrixPreviewRequest",
        "type": "object"
      },
      "LessonDeliveryParityEvidence": {
        "additionalProperties": false,
        "properties": {
          "build_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Build Sha256",
            "type": "string"
          },
          "conformance_claim": {
            "const": "exact_contract_and_markup_tested",
            "default": "exact_contract_and_markup_tested",
            "title": "Conformance Claim",
            "type": "string"
          },
          "learner_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Document Sha256",
            "type": "string"
          },
          "preview_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Document Sha256",
            "type": "string"
          },
          "preview_only_chrome_outside_renderer": {
            "const": true,
            "default": true,
            "title": "Preview Only Chrome Outside Renderer",
            "type": "boolean"
          },
          "renderer_contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Renderer Contract Sha256",
            "type": "string"
          },
          "same_document_required": {
            "const": true,
            "default": true,
            "title": "Same Document Required",
            "type": "boolean"
          },
          "same_renderer_required": {
            "const": true,
            "default": true,
            "title": "Same Renderer Required",
            "type": "boolean"
          }
        },
        "required": [
          "preview_document_sha256",
          "learner_document_sha256",
          "build_sha256",
          "renderer_contract_sha256"
        ],
        "title": "LessonDeliveryParityEvidence",
        "type": "object"
      },
      "LessonDeliveryPnpContext": {
        "additionalProperties": false,
        "properties": {
          "supports": {
            "default": [],
            "items": {
              "enum": [
                "captions",
                "transcript",
                "audio_description",
                "plain_language",
                "keyboard",
                "extended_time"
              ],
              "type": "string"
            },
            "title": "Supports",
            "type": "array"
          }
        },
        "title": "LessonDeliveryPnpContext",
        "type": "object"
      },
      "LessonDeliveryPreferences": {
        "additionalProperties": false,
        "properties": {
          "explanation_depth": {
            "default": "standard",
            "enum": ["concise", "standard", "expanded"],
            "title": "Explanation Depth",
            "type": "string"
          },
          "media_preference": {
            "default": "balanced",
            "enum": ["balanced", "text_first", "low_bandwidth"],
            "title": "Media Preference",
            "type": "string"
          },
          "pace": {
            "default": "steady",
            "enum": ["steady", "guided", "self_directed"],
            "title": "Pace",
            "type": "string"
          }
        },
        "title": "LessonDeliveryPreferences",
        "type": "object"
      },
      "LessonDeliveryPreviewAccuracyBoundary": {
        "additionalProperties": false,
        "properties": {
          "actual_browser_capabilities_measured_separately": {
            "const": true,
            "default": true,
            "title": "Actual Browser Capabilities Measured Separately",
            "type": "boolean"
          },
          "assistive_technology_emulated": {
            "const": false,
            "default": false,
            "title": "Assistive Technology Emulated",
            "type": "boolean"
          },
          "formal_accessibility_conformance_certified": {
            "const": false,
            "default": false,
            "title": "Formal Accessibility Conformance Certified",
            "type": "boolean"
          },
          "hardware_emulated": {
            "const": false,
            "default": false,
            "title": "Hardware Emulated",
            "type": "boolean"
          },
          "input_emulation": {
            "const": "requested_semantics_only",
            "default": "requested_semantics_only",
            "title": "Input Emulation",
            "type": "string"
          },
          "network_emulation": {
            "const": "controlled_fetch_pacing_failure_and_session_cache",
            "default": "controlled_fetch_pacing_failure_and_session_cache",
            "title": "Network Emulation",
            "type": "string"
          },
          "theme_emulation": {
            "const": "scoped_tokens_and_renderer_rules",
            "default": "scoped_tokens_and_renderer_rules",
            "title": "Theme Emulation",
            "type": "string"
          },
          "viewport_emulation": {
            "const": "css_container_only",
            "default": "css_container_only",
            "title": "Viewport Emulation",
            "type": "string"
          }
        },
        "title": "LessonDeliveryPreviewAccuracyBoundary",
        "type": "object"
      },
      "LessonDeliveryPreviewAppearancePreset": {
        "additionalProperties": false,
        "properties": {
          "application": {
            "const": "scoped_design_tokens",
            "default": "scoped_design_tokens",
            "title": "Application",
            "type": "string"
          },
          "contrast": {
            "enum": ["standard", "more"],
            "title": "Contrast",
            "type": "string"
          },
          "forced_colors": {
            "const": false,
            "default": false,
            "title": "Forced Colors",
            "type": "boolean"
          },
          "motion": {
            "enum": ["full", "reduced"],
            "title": "Motion",
            "type": "string"
          },
          "theme": {
            "enum": ["light", "dark"],
            "title": "Theme",
            "type": "string"
          }
        },
        "required": ["theme", "contrast", "motion"],
        "title": "LessonDeliveryPreviewAppearancePreset",
        "type": "object"
      },
      "LessonDeliveryPreviewCachePreset": {
        "additionalProperties": false,
        "properties": {
          "durable": {
            "const": false,
            "default": false,
            "title": "Durable",
            "type": "boolean"
          },
          "mode": {
            "enum": [
              "session_write_through",
              "cache_first_explicit_network",
              "session_warm_required",
              "session_empty"
            ],
            "title": "Mode",
            "type": "string"
          },
          "network_fallback_allowed": {
            "title": "Network Fallback Allowed",
            "type": "boolean"
          },
          "provenance_required": {
            "const": true,
            "default": true,
            "title": "Provenance Required",
            "type": "boolean"
          },
          "read_allowed": {
            "title": "Read Allowed",
            "type": "boolean"
          },
          "scope": {
            "const": "browser_parent_memory",
            "default": "browser_parent_memory",
            "title": "Scope",
            "type": "string"
          },
          "write_allowed": {
            "title": "Write Allowed",
            "type": "boolean"
          }
        },
        "required": ["mode", "read_allowed", "write_allowed", "network_fallback_allowed"],
        "title": "LessonDeliveryPreviewCachePreset",
        "type": "object"
      },
      "LessonDeliveryPreviewCapabilityMeasurement": {
        "additionalProperties": false,
        "properties": {
          "applied_direction": {
            "enum": ["ltr", "rtl"],
            "title": "Applied Direction",
            "type": "string"
          },
          "assistive_technology_emulated": {
            "const": false,
            "default": false,
            "title": "Assistive Technology Emulated",
            "type": "boolean"
          },
          "container_height_px": {
            "maximum": 4096.0,
            "minimum": 1.0,
            "title": "Container Height Px",
            "type": "integer"
          },
          "container_width_px": {
            "maximum": 4096.0,
            "minimum": 1.0,
            "title": "Container Width Px",
            "type": "integer"
          },
          "content_scroll_height_px": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Content Scroll Height Px",
            "type": "integer"
          },
          "content_scroll_width_px": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Content Scroll Width Px",
            "type": "integer"
          },
          "device_pixel_ratio": {
            "maximum": 8.0,
            "minimum": 0.5,
            "title": "Device Pixel Ratio",
            "type": "number"
          },
          "hardware_device_emulated": {
            "const": false,
            "default": false,
            "title": "Hardware Device Emulated",
            "type": "boolean"
          },
          "navigator_online": {
            "title": "Navigator Online",
            "type": "boolean"
          },
          "observed_color_scheme": {
            "enum": ["light", "dark", "unknown"],
            "title": "Observed Color Scheme",
            "type": "string"
          },
          "observed_contrast": {
            "enum": ["standard", "more", "unknown"],
            "title": "Observed Contrast",
            "type": "string"
          },
          "observed_hover": {
            "enum": ["hover", "none", "unknown"],
            "title": "Observed Hover",
            "type": "string"
          },
          "observed_motion": {
            "enum": ["full", "reduced", "unknown"],
            "title": "Observed Motion",
            "type": "string"
          },
          "observed_pointer": {
            "enum": ["fine", "coarse", "none", "unknown"],
            "title": "Observed Pointer",
            "type": "string"
          },
          "rendered_locale": {
            "enum": ["en", "en-US", "en-GB"],
            "title": "Rendered Locale",
            "type": "string"
          },
          "source": {
            "const": "browser_runtime",
            "default": "browser_runtime",
            "title": "Source",
            "type": "string"
          }
        },
        "required": [
          "container_width_px",
          "container_height_px",
          "content_scroll_width_px",
          "content_scroll_height_px",
          "device_pixel_ratio",
          "observed_pointer",
          "observed_hover",
          "observed_color_scheme",
          "observed_contrast",
          "observed_motion",
          "navigator_online",
          "applied_direction",
          "rendered_locale"
        ],
        "title": "LessonDeliveryPreviewCapabilityMeasurement",
        "type": "object"
      },
      "LessonDeliveryPreviewEnvironment": {
        "additionalProperties": false,
        "properties": {
          "cache_namespace": {
            "pattern": "^lesson-preview-cache-[a-f0-9]{24}$",
            "title": "Cache Namespace",
            "type": "string"
          },
          "document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Document Sha256",
            "type": "string"
          },
          "environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Sha256",
            "type": "string"
          },
          "expected_outcomes": {
            "items": {
              "$ref": "#/components/schemas/LessonDeliveryPreviewExpectedOutcome"
            },
            "title": "Expected Outcomes",
            "type": "array"
          },
          "learner_identity_bound": {
            "const": false,
            "default": false,
            "title": "Learner Identity Bound",
            "type": "boolean"
          },
          "matrix_cell_id": {
            "enum": [
              "desktop-pointer-light-online",
              "desktop-keyboard-dark-high-latency",
              "phone-touch-dark-limited-data",
              "phone-keyboard-reduced-intermittent",
              "tablet-touch-high-contrast-online",
              "rtl-phone-direction-only-online",
              "offline-phone-warm-cache",
              "offline-desktop-cold-cache"
            ],
            "title": "Matrix Cell Id",
            "type": "string"
          },
          "preset": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewPreset"
          },
          "preset_registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preset Registry Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "valid_matrix_cell": {
            "const": true,
            "default": true,
            "title": "Valid Matrix Cell",
            "type": "boolean"
          }
        },
        "required": [
          "matrix_cell_id",
          "preset_registry_sha256",
          "preset",
          "expected_outcomes",
          "document_sha256",
          "cache_namespace",
          "environment_sha256"
        ],
        "title": "LessonDeliveryPreviewEnvironment",
        "type": "object"
      },
      "LessonDeliveryPreviewExpectedOutcome": {
        "additionalProperties": false,
        "properties": {
          "behavior_code": {
            "pattern": "^[a-z][a-z0-9_]{2,79}$",
            "title": "Behavior Code",
            "type": "string"
          },
          "explanation": {
            "maxLength": 500,
            "minLength": 8,
            "title": "Explanation",
            "type": "string"
          },
          "status": {
            "enum": ["supported", "degraded", "unsupported", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "surface": {
            "enum": [
              "content",
              "layout",
              "input",
              "media",
              "interaction",
              "accessibility",
              "localization"
            ],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["surface", "status", "behavior_code", "explanation"],
        "title": "LessonDeliveryPreviewExpectedOutcome",
        "type": "object"
      },
      "LessonDeliveryPreviewFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "content_exact_build",
              "layout_contained",
              "layout_overflow",
              "input_semantics_available",
              "input_capability_differs_from_host",
              "media_network_verified",
              "media_cache_verified",
              "media_data_saver_held",
              "media_cache_miss",
              "media_transfer_failed",
              "media_not_applicable",
              "network_retry_observed",
              "interaction_local_only",
              "accessibility_structural_only",
              "localization_exact",
              "localization_direction_only"
            ],
            "title": "Code",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 12,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^lesson-preview-finding-[a-f0-9]{24}$",
            "title": "Finding Id",
            "type": "string"
          },
          "finding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Finding Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["supported", "degraded", "unsupported", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "maxLength": 500,
            "minLength": 8,
            "title": "Summary",
            "type": "string"
          },
          "surface": {
            "enum": [
              "content",
              "layout",
              "input",
              "media",
              "interaction",
              "accessibility",
              "localization"
            ],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["finding_id", "surface", "status", "code", "summary", "finding_sha256"],
        "title": "LessonDeliveryPreviewFinding",
        "type": "object"
      },
      "LessonDeliveryPreviewInputPreset": {
        "additionalProperties": false,
        "properties": {
          "hover": {
            "title": "Hover",
            "type": "boolean"
          },
          "input_id": {
            "enum": ["pointer_keyboard", "touch", "keyboard_only", "touch_keyboard"],
            "title": "Input Id",
            "type": "string"
          },
          "keyboard": {
            "title": "Keyboard",
            "type": "boolean"
          },
          "pointer": {
            "enum": ["fine", "coarse", "none"],
            "title": "Pointer",
            "type": "string"
          },
          "requested_capabilities_only": {
            "const": true,
            "default": true,
            "title": "Requested Capabilities Only",
            "type": "boolean"
          },
          "touch": {
            "title": "Touch",
            "type": "boolean"
          }
        },
        "required": ["input_id", "pointer", "hover", "keyboard", "touch"],
        "title": "LessonDeliveryPreviewInputPreset",
        "type": "object"
      },
      "LessonDeliveryPreviewLocalePreset": {
        "additionalProperties": false,
        "properties": {
          "content_locale": {
            "enum": ["en", "en-US", "en-GB"],
            "title": "Content Locale",
            "type": "string"
          },
          "direction": {
            "enum": ["ltr", "rtl"],
            "title": "Direction",
            "type": "string"
          },
          "fallback_locale": {
            "anyOf": [
              {
                "enum": ["en", "en-US", "en-GB"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fallback Locale"
          },
          "fidelity": {
            "enum": ["exact", "direction_only_fallback"],
            "title": "Fidelity",
            "type": "string"
          },
          "requested_locale": {
            "enum": ["en-US", "en-GB", "ar-EG"],
            "title": "Requested Locale",
            "type": "string"
          }
        },
        "required": ["requested_locale", "content_locale", "direction", "fidelity"],
        "title": "LessonDeliveryPreviewLocalePreset",
        "type": "object"
      },
      "LessonDeliveryPreviewMeasurements": {
        "additionalProperties": false,
        "properties": {
          "accessibility_scope": {
            "const": "dom_keyboard_and_automated_rules_not_at",
            "default": "dom_keyboard_and_automated_rules_not_at",
            "title": "Accessibility Scope",
            "type": "string"
          },
          "block_count": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Block Count",
            "type": "integer"
          },
          "capability": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewCapabilityMeasurement"
          },
          "focusable_control_count": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Focusable Control Count",
            "type": "integer"
          },
          "hidden_network_success_count": {
            "default": 0,
            "maximum": 0.0,
            "minimum": 0.0,
            "title": "Hidden Network Success Count",
            "type": "integer"
          },
          "horizontal_overflow_px": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Horizontal Overflow Px",
            "type": "integer"
          },
          "interactive_control_count": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Interactive Control Count",
            "type": "integer"
          },
          "local_interactions_only": {
            "const": true,
            "default": true,
            "title": "Local Interactions Only",
            "type": "boolean"
          },
          "measured_at": {
            "format": "date-time",
            "title": "Measured At",
            "type": "string"
          },
          "measurement_schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Measurement Schema Version",
            "type": "string"
          },
          "media": {
            "items": {
              "$ref": "#/components/schemas/LessonDeliveryPreviewMediaObservation"
            },
            "maxItems": 256,
            "title": "Media",
            "type": "array"
          },
          "transport_profile_applied": {
            "const": true,
            "default": true,
            "title": "Transport Profile Applied",
            "type": "boolean"
          },
          "transport_profile_id": {
            "enum": ["fast", "high_latency", "limited_data", "intermittent", "offline"],
            "title": "Transport Profile Id",
            "type": "string"
          }
        },
        "required": [
          "measured_at",
          "transport_profile_id",
          "capability",
          "block_count",
          "interactive_control_count",
          "focusable_control_count",
          "horizontal_overflow_px"
        ],
        "title": "LessonDeliveryPreviewMeasurements",
        "type": "object"
      },
      "LessonDeliveryPreviewMediaObservation": {
        "additionalProperties": false,
        "properties": {
          "byte_length": {
            "maximum": 2147483647.0,
            "minimum": 0.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "hidden_success": {
            "const": false,
            "default": false,
            "title": "Hidden Success",
            "type": "boolean"
          },
          "integrity": {
            "enum": ["verified", "failed", "not_loaded"],
            "title": "Integrity",
            "type": "string"
          },
          "provenance": {
            "enum": ["verified_network", "verified_session_memory", "text_alternative", "none"],
            "title": "Provenance",
            "type": "string"
          },
          "reason_code": {
            "enum": [
              "network_loaded",
              "cache_loaded",
              "limited_data_held",
              "offline_cache_miss",
              "simulated_drop",
              "transport_failed",
              "integrity_failed",
              "no_safe_rendition"
            ],
            "title": "Reason Code",
            "type": "string"
          },
          "rendition_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          },
          "request_count": {
            "maximum": 4.0,
            "minimum": 0.0,
            "title": "Request Count",
            "type": "integer"
          },
          "retry_count": {
            "maximum": 3.0,
            "minimum": 0.0,
            "title": "Retry Count",
            "type": "integer"
          },
          "state": {
            "enum": ["network_loaded", "cache_loaded", "held", "fallback", "failed"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "rendition_id",
          "content_sha256",
          "state",
          "provenance",
          "integrity",
          "byte_length",
          "request_count",
          "retry_count",
          "reason_code"
        ],
        "title": "LessonDeliveryPreviewMediaObservation",
        "type": "object"
      },
      "LessonDeliveryPreviewNetworkPreset": {
        "additionalProperties": false,
        "properties": {
          "connectivity": {
            "enum": ["online", "intermittent", "offline"],
            "title": "Connectivity",
            "type": "string"
          },
          "data_saver": {
            "title": "Data Saver",
            "type": "boolean"
          },
          "downstream_kbps": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 64.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Downstream Kbps"
          },
          "fail_attempts": {
            "items": {
              "type": "integer"
            },
            "maxItems": 3,
            "title": "Fail Attempts",
            "type": "array"
          },
          "latency_ms": {
            "maximum": 2000.0,
            "minimum": 0.0,
            "title": "Latency Ms",
            "type": "integer"
          },
          "max_simulated_wait_ms": {
            "default": 2500,
            "maximum": 5000.0,
            "minimum": 250.0,
            "title": "Max Simulated Wait Ms",
            "type": "integer"
          },
          "profile_id": {
            "enum": ["fast", "high_latency", "limited_data", "intermittent", "offline"],
            "title": "Profile Id",
            "type": "string"
          },
          "transport": {
            "const": "controlled_fetch",
            "default": "controlled_fetch",
            "title": "Transport",
            "type": "string"
          }
        },
        "required": ["profile_id", "connectivity", "latency_ms", "data_saver"],
        "title": "LessonDeliveryPreviewNetworkPreset",
        "type": "object"
      },
      "LessonDeliveryPreviewPreset": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewAccuracyBoundary",
            "default": {
              "actual_browser_capabilities_measured_separately": true,
              "assistive_technology_emulated": false,
              "formal_accessibility_conformance_certified": false,
              "hardware_emulated": false,
              "input_emulation": "requested_semantics_only",
              "network_emulation": "controlled_fetch_pacing_failure_and_session_cache",
              "theme_emulation": "scoped_tokens_and_renderer_rules",
              "viewport_emulation": "css_container_only"
            }
          },
          "appearance": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewAppearancePreset"
          },
          "cache": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewCachePreset"
          },
          "input": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewInputPreset"
          },
          "label": {
            "maxLength": 100,
            "minLength": 3,
            "title": "Label",
            "type": "string"
          },
          "locale": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewLocalePreset"
          },
          "network": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewNetworkPreset"
          },
          "pnp_supports": {
            "items": {
              "enum": [
                "captions",
                "transcript",
                "audio_description",
                "plain_language",
                "keyboard",
                "extended_time"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Pnp Supports",
            "type": "array"
          },
          "preset_id": {
            "enum": [
              "desktop-pointer-light-online",
              "desktop-keyboard-dark-high-latency",
              "phone-touch-dark-limited-data",
              "phone-keyboard-reduced-intermittent",
              "tablet-touch-high-contrast-online",
              "rtl-phone-direction-only-online",
              "offline-phone-warm-cache",
              "offline-desktop-cold-cache"
            ],
            "title": "Preset Id",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 12,
            "title": "Purpose",
            "type": "string"
          },
          "viewport": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewViewportPreset"
          }
        },
        "required": [
          "preset_id",
          "label",
          "purpose",
          "viewport",
          "input",
          "appearance",
          "locale",
          "pnp_supports",
          "network",
          "cache"
        ],
        "title": "LessonDeliveryPreviewPreset",
        "type": "object"
      },
      "LessonDeliveryPreviewPresetRegistry": {
        "additionalProperties": false,
        "properties": {
          "custom_cells_supported": {
            "const": false,
            "default": false,
            "title": "Custom Cells Supported",
            "type": "boolean"
          },
          "finite_matrix": {
            "const": true,
            "default": true,
            "title": "Finite Matrix",
            "type": "boolean"
          },
          "presets": {
            "items": {
              "$ref": "#/components/schemas/LessonDeliveryPreviewPreset"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Presets",
            "type": "array"
          },
          "registry_id": {
            "const": "metis.lesson-delivery-preview-presets",
            "default": "metis.lesson-delivery-preview-presets",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "registry_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Registry Version",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "surfaces": {
            "items": {
              "enum": [
                "content",
                "layout",
                "input",
                "media",
                "interaction",
                "accessibility",
                "localization"
              ],
              "type": "string"
            },
            "title": "Surfaces",
            "type": "array"
          }
        },
        "required": ["presets", "surfaces", "registry_sha256"],
        "title": "LessonDeliveryPreviewPresetRegistry",
        "type": "object"
      },
      "LessonDeliveryPreviewReport": {
        "additionalProperties": false,
        "properties": {
          "access_scope": {
            "const": "course_author_or_admin",
            "default": "course_author_or_admin",
            "title": "Access Scope",
            "type": "string"
          },
          "assistive_technology_emulation_claimed": {
            "const": false,
            "default": false,
            "title": "Assistive Technology Emulation Claimed",
            "type": "boolean"
          },
          "author_identity_embedded": {
            "const": false,
            "default": false,
            "title": "Author Identity Embedded",
            "type": "boolean"
          },
          "build_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Build Sha256",
            "type": "string"
          },
          "configuration": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewReportConfiguration"
          },
          "conformance_certification": {
            "const": "not_claimed",
            "default": "not_claimed",
            "title": "Conformance Certification",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Document Sha256",
            "type": "string"
          },
          "environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Sha256",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/LessonDeliveryPreviewFinding"
            },
            "maxItems": 128,
            "title": "Findings",
            "type": "array"
          },
          "hardware_emulation_claimed": {
            "const": false,
            "default": false,
            "title": "Hardware Emulation Claimed",
            "type": "boolean"
          },
          "learner_identity_embedded": {
            "const": false,
            "default": false,
            "title": "Learner Identity Embedded",
            "type": "boolean"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "measurements": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewMeasurements"
          },
          "preview_contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Contract Sha256",
            "type": "string"
          },
          "report_id": {
            "pattern": "^lesson-preview-report-[a-f0-9]{24}$",
            "title": "Report Id",
            "type": "string"
          },
          "report_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Report Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "server_persistence": {
            "const": true,
            "default": true,
            "title": "Server Persistence",
            "type": "boolean"
          },
          "share_path": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Share Path",
            "type": "string"
          },
          "storage_scope": {
            "const": "authorized_server_report",
            "default": "authorized_server_report",
            "title": "Storage Scope",
            "type": "string"
          }
        },
        "required": [
          "report_id",
          "lesson_id",
          "build_sha256",
          "document_sha256",
          "environment_sha256",
          "preview_contract_sha256",
          "configuration",
          "measurements",
          "findings",
          "created_at",
          "expires_at",
          "share_path",
          "report_sha256"
        ],
        "title": "LessonDeliveryPreviewReport",
        "type": "object"
      },
      "LessonDeliveryPreviewReportConfiguration": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewSafeContext"
          },
          "environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Sha256",
            "type": "string"
          },
          "preset": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewPreset"
          },
          "preset_registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preset Registry Sha256",
            "type": "string"
          }
        },
        "required": ["preset_registry_sha256", "environment_sha256", "preset", "context"],
        "title": "LessonDeliveryPreviewReportConfiguration",
        "type": "object"
      },
      "LessonDeliveryPreviewReportRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonDeliveryContextRequest"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Document Sha256",
            "type": "string"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Environment Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "measurements": {
            "$ref": "#/components/schemas/LessonDeliveryPreviewMeasurements"
          },
          "preview_contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Contract Sha256",
            "type": "string"
          },
          "preview_preset_id": {
            "enum": [
              "desktop-pointer-light-online",
              "desktop-keyboard-dark-high-latency",
              "phone-touch-dark-limited-data",
              "phone-keyboard-reduced-intermittent",
              "tablet-touch-high-contrast-online",
              "rtl-phone-direction-only-online",
              "offline-phone-warm-cache",
              "offline-desktop-cold-cache"
            ],
            "title": "Preview Preset Id",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "expected_document_sha256",
          "expected_environment_sha256",
          "preview_contract_sha256",
          "preview_preset_id",
          "context",
          "measurements"
        ],
        "title": "LessonDeliveryPreviewReportRequest",
        "type": "object"
      },
      "LessonDeliveryPreviewSafeContext": {
        "additionalProperties": false,
        "properties": {
          "completed_block_count": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Completed Block Count",
            "type": "integer"
          },
          "learner_identity_included": {
            "const": false,
            "default": false,
            "title": "Learner Identity Included",
            "type": "boolean"
          },
          "locale": {
            "enum": ["en", "en-US", "en-GB"],
            "title": "Locale",
            "type": "string"
          },
          "pnp": {
            "$ref": "#/components/schemas/LessonDeliveryPnpContext"
          },
          "preferences": {
            "$ref": "#/components/schemas/LessonDeliveryPreferences"
          },
          "prerequisite_state": {
            "enum": ["satisfied", "missing", "unknown"],
            "title": "Prerequisite State",
            "type": "string"
          },
          "progress_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Progress Percent",
            "type": "integer"
          },
          "progress_state": {
            "enum": ["not_started", "in_progress", "completed"],
            "title": "Progress State",
            "type": "string"
          },
          "rationale_included": {
            "const": false,
            "default": false,
            "title": "Rationale Included",
            "type": "boolean"
          }
        },
        "required": [
          "locale",
          "preferences",
          "pnp",
          "prerequisite_state",
          "progress_state",
          "progress_percent",
          "completed_block_count"
        ],
        "title": "LessonDeliveryPreviewSafeContext",
        "type": "object"
      },
      "LessonDeliveryPreviewSession": {
        "additionalProperties": false,
        "properties": {
          "bearer_token": {
            "title": "Bearer Token",
            "type": "null"
          },
          "duration_seconds": {
            "maximum": 1800.0,
            "minimum": 300.0,
            "title": "Duration Seconds",
            "type": "integer"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "max_local_events": {
            "default": 256,
            "maximum": 512.0,
            "minimum": 1.0,
            "title": "Max Local Events",
            "type": "integer"
          },
          "resumable": {
            "const": false,
            "default": false,
            "title": "Resumable",
            "type": "boolean"
          },
          "server_persistence": {
            "const": false,
            "default": false,
            "title": "Server Persistence",
            "type": "boolean"
          },
          "session_id": {
            "pattern": "^lesson-preview-[a-f0-9]{24}$",
            "title": "Session Id",
            "type": "string"
          },
          "state_location": {
            "const": "browser_parent_memory",
            "default": "browser_parent_memory",
            "title": "State Location",
            "type": "string"
          }
        },
        "required": ["session_id", "issued_at", "expires_at", "duration_seconds"],
        "title": "LessonDeliveryPreviewSession",
        "type": "object"
      },
      "LessonDeliveryPreviewViewportPreset": {
        "additionalProperties": false,
        "properties": {
          "application": {
            "const": "css_container",
            "default": "css_container",
            "title": "Application",
            "type": "string"
          },
          "device_pixel_ratio": {
            "maximum": 4.0,
            "minimum": 1.0,
            "title": "Device Pixel Ratio",
            "type": "number"
          },
          "height_px": {
            "maximum": 1600.0,
            "minimum": 480.0,
            "title": "Height Px",
            "type": "integer"
          },
          "orientation": {
            "enum": ["portrait", "landscape"],
            "title": "Orientation",
            "type": "string"
          },
          "viewport_id": {
            "enum": ["desktop", "tablet", "phone"],
            "title": "Viewport Id",
            "type": "string"
          },
          "width_px": {
            "maximum": 2560.0,
            "minimum": 320.0,
            "title": "Width Px",
            "type": "integer"
          }
        },
        "required": ["viewport_id", "width_px", "height_px", "device_pixel_ratio", "orientation"],
        "title": "LessonDeliveryPreviewViewportPreset",
        "type": "object"
      },
      "LessonDeliveryProgressContext": {
        "additionalProperties": false,
        "properties": {
          "completed_block_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100000,
            "title": "Completed Block Ids",
            "type": "array"
          },
          "percent": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Percent",
            "type": "integer"
          },
          "state": {
            "default": "not_started",
            "enum": ["not_started", "in_progress", "completed"],
            "title": "State",
            "type": "string"
          }
        },
        "title": "LessonDeliveryProgressContext",
        "type": "object"
      },
      "LessonDeliveryProjectedContext": {
        "additionalProperties": false,
        "properties": {
          "canonical_learner_lookup": {
            "const": false,
            "default": false,
            "title": "Canonical Learner Lookup",
            "type": "boolean"
          },
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "learner_profile_lookup": {
            "const": false,
            "default": false,
            "title": "Learner Profile Lookup",
            "type": "boolean"
          },
          "locale": {
            "default": "en-US",
            "enum": ["en", "en-US", "en-GB"],
            "title": "Locale",
            "type": "string"
          },
          "pnp": {
            "$ref": "#/components/schemas/LessonDeliveryPnpContext",
            "default": {
              "supports": []
            }
          },
          "preferences": {
            "$ref": "#/components/schemas/LessonDeliveryPreferences",
            "default": {
              "explanation_depth": "standard",
              "media_preference": "balanced",
              "pace": "steady"
            }
          },
          "prerequisite_state": {
            "default": "satisfied",
            "enum": ["satisfied", "missing", "unknown"],
            "title": "Prerequisite State",
            "type": "string"
          },
          "progress": {
            "$ref": "#/components/schemas/LessonDeliveryProgressContext",
            "default": {
              "completed_block_ids": [],
              "percent": 0,
              "state": "not_started"
            }
          },
          "protected_data_copy": {
            "const": false,
            "default": false,
            "title": "Protected Data Copy",
            "type": "boolean"
          },
          "rationale": {
            "default": "Exercise the learner delivery renderer with an explicit sample context.",
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "source": {
            "const": "request_selected",
            "default": "request_selected",
            "title": "Source",
            "type": "string"
          }
        },
        "required": ["context_sha256"],
        "title": "LessonDeliveryProjectedContext",
        "type": "object"
      },
      "LessonDeliveryReadRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonDeliveryContextRequest",
            "default": {
              "locale": "en-US",
              "pnp": {
                "supports": []
              },
              "preferences": {
                "explanation_depth": "standard",
                "media_preference": "balanced",
                "pace": "steady"
              },
              "prerequisite_state": "satisfied",
              "progress": {
                "completed_block_ids": [],
                "percent": 0,
                "state": "not_started"
              },
              "rationale": "Exercise the learner delivery renderer with an explicit sample context."
            }
          }
        },
        "title": "LessonDeliveryReadRequest",
        "type": "object"
      },
      "LessonDeliveryRendererContract": {
        "additionalProperties": false,
        "properties": {
          "activity_registry_version": {
            "const": "3.20.0",
            "default": "3.20.0",
            "title": "Activity Registry Version",
            "type": "string"
          },
          "block_registry_version": {
            "const": "3.6.0",
            "default": "3.6.0",
            "title": "Block Registry Version",
            "type": "string"
          },
          "block_schema_version": {
            "const": "1.1.0",
            "default": "1.1.0",
            "title": "Block Schema Version",
            "type": "string"
          },
          "interaction_protocol_version": {
            "const": "metis.activity-preview/1",
            "default": "metis.activity-preview/1",
            "title": "Interaction Protocol Version",
            "type": "string"
          },
          "renderer_contract_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Renderer Contract Sha256",
            "type": "string"
          },
          "renderer_id": {
            "const": "metis.lesson-delivery-react",
            "default": "metis.lesson-delivery-react",
            "title": "Renderer Id",
            "type": "string"
          },
          "renderer_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Renderer Version",
            "type": "string"
          },
          "target": {
            "const": "learner-web",
            "default": "learner-web",
            "title": "Target",
            "type": "string"
          },
          "target_contract_version": {
            "const": "learner-web/1.0.0",
            "default": "learner-web/1.0.0",
            "title": "Target Contract Version",
            "type": "string"
          }
        },
        "required": ["renderer_contract_sha256"],
        "title": "LessonDeliveryRendererContract",
        "type": "object"
      },
      "LessonDeliveryResponse": {
        "additionalProperties": false,
        "properties": {
          "access_receipt": {
            "$ref": "#/components/schemas/LessonDeliveryAccessReceipt"
          },
          "document": {
            "$ref": "#/components/schemas/LessonDeliveryDocument"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["document", "access_receipt"],
        "title": "LessonDeliveryResponse",
        "type": "object"
      },
      "LessonDeliverySyntheticIdentity": {
        "additionalProperties": false,
        "properties": {
          "display_name": {
            "const": "Sample learner",
            "default": "Sample learner",
            "title": "Display Name",
            "type": "string"
          },
          "enrollment_authority": {
            "const": false,
            "default": false,
            "title": "Enrollment Authority",
            "type": "boolean"
          },
          "grade_authority": {
            "const": false,
            "default": false,
            "title": "Grade Authority",
            "type": "boolean"
          },
          "identity_source": {
            "const": "generated_sample",
            "default": "generated_sample",
            "title": "Identity Source",
            "type": "string"
          },
          "integrity_authority": {
            "const": false,
            "default": false,
            "title": "Integrity Authority",
            "type": "boolean"
          },
          "role": {
            "const": "preview_participant",
            "default": "preview_participant",
            "title": "Role",
            "type": "string"
          },
          "subject_id": {
            "const": "sample-learner-00000000",
            "default": "sample-learner-00000000",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "title": "LessonDeliverySyntheticIdentity",
        "type": "object"
      },
      "LessonDeliveryWriteIsolation": {
        "additionalProperties": false,
        "properties": {
          "credentials": {
            "const": "not_issued",
            "default": "not_issued",
            "title": "Credentials",
            "type": "string"
          },
          "denied_sinks": {
            "default": [
              "attempts",
              "grades",
              "credentials",
              "analytics",
              "notifications",
              "integrity",
              "lti",
              "lms"
            ],
            "items": {
              "enum": [
                "attempts",
                "grades",
                "credentials",
                "analytics",
                "notifications",
                "integrity",
                "lti",
                "lms"
              ],
              "type": "string"
            },
            "title": "Denied Sinks",
            "type": "array"
          },
          "event_scope": {
            "const": "bounded_parent_memory_only",
            "default": "bounded_parent_memory_only",
            "title": "Event Scope",
            "type": "string"
          },
          "mutation_transport": {
            "const": "disabled",
            "default": "disabled",
            "title": "Mutation Transport",
            "type": "string"
          },
          "persistence_hooks": {
            "const": "none",
            "default": "none",
            "title": "Persistence Hooks",
            "type": "string"
          },
          "scoring": {
            "const": "local_nonpersistent_only",
            "default": "local_nonpersistent_only",
            "title": "Scoring",
            "type": "string"
          }
        },
        "title": "LessonDeliveryWriteIsolation",
        "type": "object"
      },
      "LessonDossierAccessibilityVariantDraft": {
        "additionalProperties": false,
        "properties": {
          "content_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Ref"
          },
          "kind": {
            "enum": [
              "alt_text",
              "captions",
              "transcript",
              "audio_description",
              "tactile",
              "plain_language",
              "non_audio_alternative"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "status": {
            "enum": ["complete", "needs_review", "missing"],
            "title": "Status",
            "type": "string"
          },
          "target_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Target Id",
            "type": "string"
          },
          "variant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": ["variant_id", "target_id", "kind", "locale", "status"],
        "title": "LessonDossierAccessibilityVariantDraft",
        "type": "object"
      },
      "LessonDossierActivityDraft": {
        "additionalProperties": false,
        "properties": {
          "activity_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Activity Id",
            "type": "string"
          },
          "dependency_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Dependency Refs",
            "type": "array"
          },
          "instructions": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Instructions",
            "type": "string"
          },
          "kind": {
            "enum": [
              "discussion",
              "practice",
              "reflection",
              "lab",
              "fieldwork",
              "simulation",
              "project"
            ],
            "title": "Kind",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "safety_risk": {
            "default": "none",
            "enum": ["none", "low", "elevated"],
            "title": "Safety Risk",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["activity_id", "position", "kind", "title", "instructions"],
        "title": "LessonDossierActivityDraft",
        "type": "object"
      },
      "LessonDossierArtifactEventRequest": {
        "additionalProperties": false,
        "properties": {
          "artifact_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Artifact Ref",
            "type": "string"
          },
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "event_kind": {
            "enum": ["published_build", "use_recorded"],
            "title": "Event Kind",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "event_kind",
          "artifact_ref",
          "artifact_sha256",
          "summary"
        ],
        "title": "LessonDossierArtifactEventRequest",
        "type": "object"
      },
      "LessonDossierAssessmentItemProjection": {
        "additionalProperties": false,
        "properties": {
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "item_type": {
            "title": "Item Type",
            "type": "string"
          },
          "order": {
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "points": {
            "minimum": 0.0,
            "title": "Points",
            "type": "number"
          },
          "prompt": {
            "title": "Prompt",
            "type": "string"
          }
        },
        "required": ["item_id", "order", "prompt", "item_type", "points"],
        "title": "LessonDossierAssessmentItemProjection",
        "type": "object"
      },
      "LessonDossierAssessmentLinkDraft": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Assessment Id",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "purpose": {
            "enum": ["diagnostic", "practice", "formative", "summative"],
            "title": "Purpose",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "rubric_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Rubric Ids",
            "type": "array"
          }
        },
        "required": ["assessment_id", "position", "purpose"],
        "title": "LessonDossierAssessmentLinkDraft",
        "type": "object"
      },
      "LessonDossierAssessmentProjection": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_type": {
            "title": "Assessment Type",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "dependency": {
            "$ref": "#/components/schemas/LessonDossierDependency"
          },
          "is_published": {
            "title": "Is Published",
            "type": "boolean"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssessmentItemProjection"
            },
            "title": "Items",
            "type": "array"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Objective Ids",
            "type": "array"
          },
          "position": {
            "title": "Position",
            "type": "integer"
          },
          "purpose": {
            "enum": ["diagnostic", "practice", "formative", "summative"],
            "title": "Purpose",
            "type": "string"
          },
          "question_count": {
            "minimum": 0.0,
            "title": "Question Count",
            "type": "integer"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "rubric_ids": {
            "items": {
              "type": "string"
            },
            "title": "Rubric Ids",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "position",
          "title",
          "assessment_type",
          "question_count",
          "items",
          "is_published",
          "purpose",
          "required",
          "objective_ids",
          "rubric_ids",
          "dependency",
          "deep_link"
        ],
        "title": "LessonDossierAssessmentProjection",
        "type": "object"
      },
      "LessonDossierAssetDraft": {
        "additionalProperties": false,
        "properties": {
          "asset_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asset Revision Id"
          },
          "authority": {
            "anyOf": [
              {
                "const": "isis",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authority"
          },
          "authority_revision": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authority Revision"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["image", "audio", "video", "document", "dataset", "code", "interactive"],
            "title": "Kind",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "output_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Id"
          },
          "output_revision_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Revision Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "rendition_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rendition Id"
          },
          "rendition_role": {
            "anyOf": [
              {
                "enum": ["primary", "poster", "thumbnail", "offline", "low-bandwidth"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rendition Role"
          },
          "rights_status": {
            "enum": ["cleared", "needs_review", "blocked"],
            "title": "Rights Status",
            "type": "string"
          },
          "source_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Id"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "asset_id",
          "position",
          "kind",
          "title",
          "locator",
          "content_sha256",
          "rights_status"
        ],
        "title": "LessonDossierAssetDraft",
        "type": "object"
      },
      "LessonDossierConflict": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "coverage",
              "prerequisite",
              "source",
              "rights",
              "dependency",
              "accessibility",
              "assessment"
            ],
            "title": "Category",
            "type": "string"
          },
          "conflict_id": {
            "title": "Conflict Id",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "remediation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Remediation",
            "type": "string"
          },
          "severity": {
            "enum": ["warning", "blocker"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["conflict_id", "category", "severity", "message", "remediation", "deep_link"],
        "title": "LessonDossierConflict",
        "type": "object"
      },
      "LessonDossierContentItemDraft": {
        "additionalProperties": false,
        "properties": {
          "item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "legacy_content",
              "prose",
              "example",
              "media",
              "activity_link",
              "assessment_link",
              "resource"
            ],
            "title": "Kind",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["item_id", "kind", "position", "title", "summary"],
        "title": "LessonDossierContentItemDraft",
        "type": "object"
      },
      "LessonDossierDependency": {
        "additionalProperties": false,
        "properties": {
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "dependency_refs": {
            "items": {
              "type": "string"
            },
            "title": "Dependency Refs",
            "type": "array"
          },
          "state": {
            "enum": ["ready", "blocked", "stale", "missing"],
            "title": "State",
            "type": "string"
          },
          "target_id": {
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id", "dependency_refs", "state", "blockers"],
        "title": "LessonDossierDependency",
        "type": "object"
      },
      "LessonDossierDraft": {
        "additionalProperties": false,
        "properties": {
          "accessibility_variants": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAccessibilityVariantDraft"
            },
            "maxItems": 100000,
            "title": "Accessibility Variants",
            "type": "array"
          },
          "activities": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierActivityDraft"
            },
            "maxItems": 100000,
            "title": "Activities",
            "type": "array"
          },
          "assessment_links": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssessmentLinkDraft"
            },
            "maxItems": 10000,
            "title": "Assessment Links",
            "type": "array"
          },
          "assets": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssetDraft"
            },
            "maxItems": 100000,
            "title": "Assets",
            "type": "array"
          },
          "blocks": {
            "items": {
              "discriminator": {
                "mapping": {
                  "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                  "audio": "#/components/schemas/LessonAudioBlock",
                  "callout": "#/components/schemas/LessonCalloutBlock",
                  "code": "#/components/schemas/LessonCodeBlock",
                  "equation": "#/components/schemas/LessonEquationBlock",
                  "example": "#/components/schemas/LessonExampleBlock",
                  "image": "#/components/schemas/LessonImageBlock",
                  "interaction": "#/components/schemas/LessonInteractionBlock",
                  "practice": "#/components/schemas/LessonPracticeBlock",
                  "prose": "#/components/schemas/LessonProseBlock",
                  "reflection": "#/components/schemas/LessonReflectionBlock",
                  "video": "#/components/schemas/LessonVideoBlock"
                },
                "propertyName": "kind"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonProseBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonCalloutBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonExampleBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonEquationBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonCodeBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonImageBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonAudioBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonVideoBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonInteractionBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonPracticeBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonReflectionBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
                }
              ]
            },
            "maxItems": 100000,
            "title": "Blocks",
            "type": "array"
          },
          "content_items": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierContentItemDraft"
            },
            "maxItems": 100000,
            "title": "Content Items",
            "type": "array"
          },
          "deleted_blocks": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockTombstone"
            },
            "maxItems": 100000,
            "title": "Deleted Blocks",
            "type": "array"
          },
          "duration_load_overrides": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadOverrideRecord"
            },
            "maxItems": 100000,
            "title": "Duration Load Overrides",
            "type": "array"
          },
          "inclusivity_reviews": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityReviewRecord"
            },
            "maxItems": 100000,
            "title": "Inclusivity Reviews",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierObjectiveDraft"
            },
            "maxItems": 10000,
            "title": "Objectives",
            "type": "array"
          },
          "prerequisites": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierPrerequisiteDraft"
            },
            "maxItems": 10000,
            "title": "Prerequisites",
            "type": "array"
          },
          "readability_reviews": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityReviewRecord"
            },
            "maxItems": 100000,
            "title": "Readability Reviews",
            "type": "array"
          },
          "rubric_revisions": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricRevision"
            },
            "maxItems": 10000,
            "title": "Rubric Revisions",
            "type": "array"
          },
          "rubrics": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierRubricDraft"
            },
            "maxItems": 10000,
            "title": "Rubrics",
            "type": "array"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierSourceDraft"
            },
            "maxItems": 10000,
            "title": "Sources",
            "type": "array"
          },
          "terminology_reviews": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyReviewRecord"
            },
            "maxItems": 100000,
            "title": "Terminology Reviews",
            "type": "array"
          }
        },
        "title": "LessonDossierDraft",
        "type": "object"
      },
      "LessonDossierFreshness": {
        "additionalProperties": false,
        "properties": {
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "observed_revision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Revision"
          },
          "relationship": {
            "enum": [
              "objectives",
              "prerequisites",
              "sources",
              "content",
              "blocks",
              "activities",
              "assessments",
              "rubrics",
              "readability",
              "terminology",
              "inclusivity",
              "duration_load",
              "assets",
              "accessibility",
              "gates",
              "reviews",
              "history"
            ],
            "title": "Relationship",
            "type": "string"
          },
          "source_revision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Revision"
          },
          "state": {
            "enum": ["current", "stale", "missing"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["relationship", "state", "observed_at", "explanation"],
        "title": "LessonDossierFreshness",
        "type": "object"
      },
      "LessonDossierGate": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": ["quality", "safety", "accessibility", "correctness"],
            "title": "Category",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "title": "Evidence",
            "type": "array"
          },
          "gate_id": {
            "title": "Gate Id",
            "type": "string"
          },
          "remediation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          },
          "status": {
            "enum": ["pass", "warning", "block", "missing"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["gate_id", "category", "status", "evidence", "deep_link"],
        "title": "LessonDossierGate",
        "type": "object"
      },
      "LessonDossierHistory": {
        "additionalProperties": false,
        "properties": {
          "audits": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierHistoryEvent"
            },
            "title": "Audits",
            "type": "array"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierHistoryEvent"
            },
            "title": "Decisions",
            "type": "array"
          },
          "event_chain_valid": {
            "title": "Event Chain Valid",
            "type": "boolean"
          },
          "published_builds": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierHistoryEvent"
            },
            "title": "Published Builds",
            "type": "array"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierHistoryEvent"
            },
            "title": "Reviews",
            "type": "array"
          },
          "revision_chain_valid": {
            "title": "Revision Chain Valid",
            "type": "boolean"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierRevisionSummary"
            },
            "title": "Revisions",
            "type": "array"
          },
          "uses": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierHistoryEvent"
            },
            "title": "Uses",
            "type": "array"
          }
        },
        "required": [
          "revisions",
          "reviews",
          "decisions",
          "audits",
          "published_builds",
          "uses",
          "revision_chain_valid",
          "event_chain_valid"
        ],
        "title": "LessonDossierHistory",
        "type": "object"
      },
      "LessonDossierHistoryEvent": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "artifact_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Ref"
          },
          "artifact_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Sha256"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_revision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dossier Revision Id"
          },
          "event_id": {
            "title": "Event Id",
            "type": "string"
          },
          "event_kind": {
            "enum": [
              "revision_created",
              "comment",
              "review_requested",
              "changes_requested",
              "approved",
              "assist_decided",
              "previewed",
              "published_build",
              "use_recorded"
            ],
            "title": "Event Kind",
            "type": "string"
          },
          "event_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Event Sha256",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "previous_event_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Event Sha256"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "event_kind",
          "dossier_revision_id",
          "dossier_revision",
          "lesson_revision",
          "course_revision",
          "actor_id",
          "actor_role",
          "summary",
          "changed_paths",
          "event_sha256",
          "created_at",
          "deep_link"
        ],
        "title": "LessonDossierHistoryEvent",
        "type": "object"
      },
      "LessonDossierObjectiveDraft": {
        "additionalProperties": false,
        "properties": {
          "authority_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Authority Ref",
            "type": "string"
          },
          "coverage": {
            "enum": ["introduced", "practiced", "assessed", "mastered", "missing"],
            "title": "Coverage",
            "type": "string"
          },
          "objective_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Objective Id",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "statement": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "objective_id",
          "revision_id",
          "statement",
          "coverage",
          "authority_ref",
          "updated_at"
        ],
        "title": "LessonDossierObjectiveDraft",
        "type": "object"
      },
      "LessonDossierPrerequisiteDraft": {
        "additionalProperties": false,
        "properties": {
          "evidence": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence"
          },
          "prerequisite_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Prerequisite Id",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "status": {
            "enum": ["satisfied", "missing", "conflict", "unknown"],
            "title": "Status",
            "type": "string"
          },
          "target_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["lesson", "objective", "concept", "skill"],
            "title": "Target Kind",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["prerequisite_id", "target_kind", "target_id", "title", "status"],
        "title": "LessonDossierPrerequisiteDraft",
        "type": "object"
      },
      "LessonDossierPreview": {
        "additionalProperties": false,
        "properties": {
          "accessibility_variants": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAccessibilityVariantDraft"
            },
            "title": "Accessibility Variants",
            "type": "array"
          },
          "activities": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierActivityDraft"
            },
            "title": "Activities",
            "type": "array"
          },
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssessmentProjection"
            },
            "title": "Assessments",
            "type": "array"
          },
          "assets": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssetDraft"
            },
            "title": "Assets",
            "type": "array"
          },
          "blocks": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockLearnerRender"
            },
            "title": "Blocks",
            "type": "array"
          },
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "content_items": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierContentItemDraft"
            },
            "title": "Content Items",
            "type": "array"
          },
          "content_type": {
            "title": "Content Type",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "redactions": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierRedaction"
            },
            "title": "Redactions",
            "type": "array"
          },
          "schema_version": {
            "const": "3.7.0",
            "default": "3.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/LessonDossierWitness"
          }
        },
        "required": [
          "witness",
          "locale",
          "title",
          "description",
          "content_type",
          "content",
          "content_items",
          "activities",
          "assessments",
          "assets",
          "accessibility_variants",
          "blocks",
          "redactions",
          "preview_sha256",
          "generated_at"
        ],
        "title": "LessonDossierPreview",
        "type": "object"
      },
      "LessonDossierPreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256"
        ],
        "title": "LessonDossierPreviewRequest",
        "type": "object"
      },
      "LessonDossierProjection": {
        "additionalProperties": false,
        "properties": {
          "accessibility_variants": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAccessibilityVariantDraft"
            },
            "title": "Accessibility Variants",
            "type": "array"
          },
          "activities": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierActivityDraft"
            },
            "title": "Activities",
            "type": "array"
          },
          "activity_runtime_registry": {
            "items": {
              "$ref": "#/components/schemas/LessonActivityRuntimeRegistryEntry"
            },
            "title": "Activity Runtime Registry",
            "type": "array"
          },
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssessmentProjection"
            },
            "title": "Assessments",
            "type": "array"
          },
          "assets": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierAssetDraft"
            },
            "title": "Assets",
            "type": "array"
          },
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "block_registry": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockRegistryEntry"
            },
            "title": "Block Registry",
            "type": "array"
          },
          "block_validations": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockValidation"
            },
            "title": "Block Validations",
            "type": "array"
          },
          "blocks": {
            "items": {
              "discriminator": {
                "mapping": {
                  "assessment_link": "#/components/schemas/LessonAssessmentLinkBlock",
                  "audio": "#/components/schemas/LessonAudioBlock",
                  "callout": "#/components/schemas/LessonCalloutBlock",
                  "code": "#/components/schemas/LessonCodeBlock",
                  "equation": "#/components/schemas/LessonEquationBlock",
                  "example": "#/components/schemas/LessonExampleBlock",
                  "image": "#/components/schemas/LessonImageBlock",
                  "interaction": "#/components/schemas/LessonInteractionBlock",
                  "practice": "#/components/schemas/LessonPracticeBlock",
                  "prose": "#/components/schemas/LessonProseBlock",
                  "reflection": "#/components/schemas/LessonReflectionBlock",
                  "video": "#/components/schemas/LessonVideoBlock"
                },
                "propertyName": "kind"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/LessonProseBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonCalloutBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonExampleBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonEquationBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonCodeBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonImageBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonAudioBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonVideoBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonInteractionBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonPracticeBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonReflectionBlock"
                },
                {
                  "$ref": "#/components/schemas/LessonAssessmentLinkBlock"
                }
              ]
            },
            "title": "Blocks",
            "type": "array"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierConflict"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "content_items": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierContentItemDraft"
            },
            "title": "Content Items",
            "type": "array"
          },
          "content_type": {
            "title": "Content Type",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "deleted_blocks": {
            "items": {
              "$ref": "#/components/schemas/LessonBlockTombstone"
            },
            "title": "Deleted Blocks",
            "type": "array"
          },
          "dependencies": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierDependency"
            },
            "title": "Dependencies",
            "type": "array"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_load_overrides": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadOverrideRecord"
            },
            "title": "Duration Load Overrides",
            "type": "array"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "freshness": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierFreshness"
            },
            "title": "Freshness",
            "type": "array"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierGate"
            },
            "title": "Gates",
            "type": "array"
          },
          "history": {
            "$ref": "#/components/schemas/LessonDossierHistory"
          },
          "inclusivity_reviews": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityReviewRecord"
            },
            "title": "Inclusivity Reviews",
            "type": "array"
          },
          "maturity": {
            "enum": [
              "idea",
              "planned",
              "authoring",
              "in_review",
              "approved",
              "published",
              "archived"
            ],
            "title": "Maturity",
            "type": "string"
          },
          "missing_requirements": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierRequirement"
            },
            "title": "Missing Requirements",
            "type": "array"
          },
          "module_title": {
            "title": "Module Title",
            "type": "string"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierObjectiveDraft"
            },
            "title": "Objectives",
            "type": "array"
          },
          "prerequisites": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierPrerequisiteDraft"
            },
            "title": "Prerequisites",
            "type": "array"
          },
          "readability_reviews": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityReviewRecord"
            },
            "title": "Readability Reviews",
            "type": "array"
          },
          "readiness": {
            "$ref": "#/components/schemas/LessonDossierReadiness"
          },
          "redactions": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierRedaction"
            },
            "title": "Redactions",
            "type": "array"
          },
          "rubric_revisions": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricRevision"
            },
            "title": "Rubric Revisions",
            "type": "array"
          },
          "rubrics": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierRubricDraft"
            },
            "title": "Rubrics",
            "type": "array"
          },
          "schema_version": {
            "const": "3.7.0",
            "default": "3.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/LessonDossierSourceProjection"
            },
            "title": "Sources",
            "type": "array"
          },
          "terminology_reviews": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyReviewRecord"
            },
            "title": "Terminology Reviews",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/LessonDossierWitness"
          }
        },
        "required": [
          "witness",
          "title",
          "description",
          "content_type",
          "content",
          "duration_minutes",
          "maturity",
          "module_title",
          "course_title",
          "objectives",
          "prerequisites",
          "sources",
          "content_items",
          "activities",
          "assessments",
          "rubrics",
          "rubric_revisions",
          "readability_reviews",
          "terminology_reviews",
          "inclusivity_reviews",
          "duration_load_overrides",
          "assets",
          "accessibility_variants",
          "blocks",
          "deleted_blocks",
          "block_registry",
          "activity_runtime_registry",
          "block_validations",
          "block_document_sha256",
          "dependencies",
          "conflicts",
          "missing_requirements",
          "gates",
          "readiness",
          "freshness",
          "redactions",
          "history",
          "deep_link"
        ],
        "title": "LessonDossierProjection",
        "type": "object"
      },
      "LessonDossierReadiness": {
        "additionalProperties": false,
        "properties": {
          "blocker_codes": {
            "items": {
              "type": "string"
            },
            "title": "Blocker Codes",
            "type": "array"
          },
          "current_approval_event_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Approval Event Id"
          },
          "maturity": {
            "enum": [
              "idea",
              "planned",
              "authoring",
              "in_review",
              "approved",
              "published",
              "archived"
            ],
            "title": "Maturity",
            "type": "string"
          },
          "remediations": {
            "items": {
              "type": "string"
            },
            "title": "Remediations",
            "type": "array"
          },
          "state": {
            "enum": ["ready", "blocked"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["state", "maturity", "blocker_codes", "remediations"],
        "title": "LessonDossierReadiness",
        "type": "object"
      },
      "LessonDossierRedaction": {
        "additionalProperties": false,
        "properties": {
          "field_path": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "reason": {
            "enum": ["protected_source", "answer_key", "learner_data", "secret", "role"],
            "title": "Reason",
            "type": "string"
          },
          "replacement": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Replacement",
            "type": "string"
          }
        },
        "required": ["field_path", "reason", "replacement"],
        "title": "LessonDossierRedaction",
        "type": "object"
      },
      "LessonDossierRequirement": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "pattern": "^[a-z][a-z0-9_]{2,79}$",
            "title": "Code",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "evidence": {
            "title": "Evidence",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "remediation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          },
          "satisfied": {
            "title": "Satisfied",
            "type": "boolean"
          }
        },
        "required": ["code", "label", "satisfied", "evidence", "deep_link"],
        "title": "LessonDossierRequirement",
        "type": "object"
      },
      "LessonDossierReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "comment": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Comment",
            "type": "string"
          },
          "decision": {
            "enum": ["comment", "request_review", "changes_requested", "approve"],
            "title": "Decision",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "decision",
          "comment"
        ],
        "title": "LessonDossierReviewRequest",
        "type": "object"
      },
      "LessonDossierRevisionSummary": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "assist_attribution": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonAssistRevisionAttribution"
              },
              {
                "type": "null"
              }
            ]
          },
          "base_revision_number": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Revision Number"
          },
          "base_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Base Revision Sha256"
          },
          "changed_entities": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Changed Entities",
            "type": "array"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "document_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Sha256"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "restored_from_revision_number": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Restored From Revision Number"
          },
          "revision_id": {
            "title": "Revision Id",
            "type": "string"
          },
          "revision_kind": {
            "default": "operation",
            "enum": ["operation", "checkpoint", "restore", "assist_accept"],
            "title": "Revision Kind",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "revision_id",
          "revision_number",
          "lesson_revision",
          "module_revision",
          "course_revision",
          "actor_id",
          "actor_role",
          "reason",
          "changed_paths",
          "self_sha256",
          "created_at",
          "deep_link"
        ],
        "title": "LessonDossierRevisionSummary",
        "type": "object"
      },
      "LessonDossierRubricDraft": {
        "additionalProperties": false,
        "properties": {
          "authority_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Authority Ref",
            "type": "string"
          },
          "criterion_count": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Criterion Count",
            "type": "integer"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "rubric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          },
          "scale": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Scale",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "rubric_id",
          "revision_id",
          "title",
          "criterion_count",
          "scale",
          "authority_ref"
        ],
        "title": "LessonDossierRubricDraft",
        "type": "object"
      },
      "LessonDossierSourceDraft": {
        "additionalProperties": false,
        "properties": {
          "attribution": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attribution"
          },
          "author": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Author",
            "type": "string"
          },
          "authority_status": {
            "enum": ["trusted", "review", "unknown"],
            "title": "Authority Status",
            "type": "string"
          },
          "citation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Citation Id",
            "type": "string"
          },
          "citation_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Citation Locator",
            "type": "string"
          },
          "currency_status": {
            "enum": ["current", "stale", "unknown"],
            "title": "Currency Status",
            "type": "string"
          },
          "excerpt": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "license": {
            "maxLength": 255,
            "minLength": 1,
            "title": "License",
            "type": "string"
          },
          "protected": {
            "default": false,
            "title": "Protected",
            "type": "boolean"
          },
          "published_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "publisher": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Publisher"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "rights_status": {
            "enum": ["cleared", "needs_review", "blocked"],
            "title": "Rights Status",
            "type": "string"
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_version_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Version Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "source_version_id",
          "title",
          "citation_id",
          "citation_locator",
          "author",
          "authority_status",
          "currency_status",
          "reviewed_at",
          "rights_status",
          "license"
        ],
        "title": "LessonDossierSourceDraft",
        "type": "object"
      },
      "LessonDossierSourceProjection": {
        "additionalProperties": false,
        "properties": {
          "attribution": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attribution"
          },
          "author": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Author",
            "type": "string"
          },
          "authority_status": {
            "enum": ["trusted", "review", "unknown"],
            "title": "Authority Status",
            "type": "string"
          },
          "citation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Citation Id",
            "type": "string"
          },
          "citation_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Citation Locator",
            "type": "string"
          },
          "currency_status": {
            "enum": ["current", "stale", "unknown"],
            "title": "Currency Status",
            "type": "string"
          },
          "deep_link": {
            "pattern": "^/",
            "title": "Deep Link",
            "type": "string"
          },
          "excerpt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "license": {
            "maxLength": 255,
            "minLength": 1,
            "title": "License",
            "type": "string"
          },
          "protected": {
            "default": false,
            "title": "Protected",
            "type": "boolean"
          },
          "published_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "publisher": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Publisher"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "rights_status": {
            "enum": ["cleared", "needs_review", "blocked"],
            "title": "Rights Status",
            "type": "string"
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_version_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Version Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "source_version_id",
          "title",
          "citation_id",
          "citation_locator",
          "author",
          "authority_status",
          "currency_status",
          "reviewed_at",
          "rights_status",
          "license",
          "deep_link"
        ],
        "title": "LessonDossierSourceProjection",
        "type": "object"
      },
      "LessonDossierUpdateRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "anyOf": [
              {
                "maxLength": 1000000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "content_type": {
            "enum": ["text", "video", "interactive", "quiz", "code_exercise"],
            "title": "Content Type",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "dossier": {
            "$ref": "#/components/schemas/LessonDossierDraft"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "maximum": 5000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "reason",
          "title",
          "content_type",
          "dossier"
        ],
        "title": "LessonDossierUpdateRequest",
        "type": "object"
      },
      "LessonDossierWitness": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_revision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dossier Revision Id"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "title": "Module Id",
            "type": "string"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "tenant_id",
          "dossier_revision",
          "dossier_sha256",
          "observed_at"
        ],
        "title": "LessonDossierWitness",
        "type": "object"
      },
      "LessonDurationChannels": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "independent": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "passive": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "synchronous": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "total": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "unit": {
            "const": "second",
            "default": "second",
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["active", "passive", "synchronous", "independent", "total"],
        "title": "LessonDurationChannels",
        "type": "object"
      },
      "LessonDurationLoadAssessmentQuantity": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_version_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Assessment Version Id",
            "type": "string"
          },
          "item_count": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Item Count",
            "type": "integer"
          },
          "seconds_per_item": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Ref",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "assessment_version_id",
          "item_count",
          "seconds_per_item",
          "source_ref"
        ],
        "title": "LessonDurationLoadAssessmentQuantity",
        "type": "object"
      },
      "LessonDurationLoadConstraint": {
        "additionalProperties": false,
        "properties": {
          "constraint_id": {
            "pattern": "^duration_constraint_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Constraint Id",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "lower": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Lower",
            "type": "integer"
          },
          "metric": {
            "enum": [
              "total_seconds",
              "synchronous_seconds",
              "independent_seconds",
              "uninterrupted_seconds",
              "intrinsic_peak",
              "extraneous_peak",
              "germane_peak"
            ],
            "title": "Metric",
            "type": "string"
          },
          "operator": {
            "enum": ["minimum", "maximum", "range"],
            "title": "Operator",
            "type": "string"
          },
          "policy_code": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Policy Code",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "source": {
            "enum": ["brief", "institution"],
            "title": "Source",
            "type": "string"
          },
          "unit": {
            "enum": ["second", "planning_point_0_to_5"],
            "title": "Unit",
            "type": "string"
          },
          "upper": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Upper",
            "type": "integer"
          }
        },
        "required": [
          "constraint_id",
          "source",
          "policy_code",
          "policy_version",
          "evidence_ref",
          "metric",
          "operator",
          "lower",
          "upper",
          "unit",
          "rationale"
        ],
        "title": "LessonDurationLoadConstraint",
        "type": "object"
      },
      "LessonDurationLoadConstraintComparison": {
        "additionalProperties": false,
        "properties": {
          "comparison_id": {
            "title": "Comparison Id",
            "type": "string"
          },
          "evidence_ref": {
            "title": "Evidence Ref",
            "type": "string"
          },
          "metric": {
            "enum": [
              "total_seconds",
              "synchronous_seconds",
              "independent_seconds",
              "uninterrupted_seconds",
              "intrinsic_peak",
              "extraneous_peak",
              "germane_peak"
            ],
            "title": "Metric",
            "type": "string"
          },
          "operator": {
            "enum": ["minimum", "maximum", "range"],
            "title": "Operator",
            "type": "string"
          },
          "policy_code": {
            "title": "Policy Code",
            "type": "string"
          },
          "policy_version": {
            "title": "Policy Version",
            "type": "string"
          },
          "remediation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          },
          "result": {
            "enum": [
              "within",
              "below",
              "above",
              "straddles",
              "inconclusive_unknown",
              "not_available"
            ],
            "title": "Result",
            "type": "string"
          },
          "source": {
            "enum": ["brief", "institution", "learner_band"],
            "title": "Source",
            "type": "string"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          },
          "target_lower": {
            "anyOf": [
              {
                "maximum": 100000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Lower"
          },
          "target_upper": {
            "anyOf": [
              {
                "maximum": 100000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Upper"
          },
          "unit": {
            "enum": ["second", "planning_point_0_to_5"],
            "title": "Unit",
            "type": "string"
          }
        },
        "required": [
          "comparison_id",
          "source",
          "policy_code",
          "policy_version",
          "evidence_ref",
          "metric",
          "operator",
          "unit",
          "result",
          "statement"
        ],
        "title": "LessonDurationLoadConstraintComparison",
        "type": "object"
      },
      "LessonDurationLoadContext": {
        "additionalProperties": false,
        "properties": {
          "assessment_quantities": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadAssessmentQuantity"
            },
            "maxItems": 10000,
            "title": "Assessment Quantities",
            "type": "array"
          },
          "break_after_segment_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Break After Segment Ids",
            "type": "array"
          },
          "constraints": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadConstraint"
            },
            "maxItems": 100,
            "title": "Constraints",
            "type": "array"
          },
          "delivery_mode": {
            "enum": ["independent", "synchronous", "blended"],
            "title": "Delivery Mode",
            "type": "string"
          },
          "device_profile": {
            "enum": ["large_pointer", "small_touch", "keyboard_screen_reader", "unknown"],
            "title": "Device Profile",
            "type": "string"
          },
          "difficulty": {
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "instruction_language": {
            "enum": ["primary", "additional", "unknown"],
            "title": "Instruction Language",
            "type": "string"
          },
          "learner_band": {
            "enum": ["foundational", "developing", "proficient", "advanced"],
            "title": "Learner Band",
            "type": "string"
          },
          "locale": {
            "default": "en-US",
            "enum": ["en", "en-US", "en-GB"],
            "title": "Locale",
            "type": "string"
          },
          "media_quantities": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadMediaQuantity"
            },
            "maxItems": 10000,
            "title": "Media Quantities",
            "type": "array"
          },
          "planning_rationale": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Planning Rationale",
            "type": "string"
          },
          "prerequisite_readiness": {
            "enum": ["ready", "partial", "missing", "unknown"],
            "title": "Prerequisite Readiness",
            "type": "string"
          },
          "supports": {
            "default": [],
            "items": {
              "enum": [
                "captions",
                "transcript",
                "audio_description",
                "plain_language",
                "keyboard_alternative",
                "extended_time",
                "low_bandwidth"
              ],
              "type": "string"
            },
            "title": "Supports",
            "type": "array"
          },
          "synchronous_segment_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Synchronous Segment Ids",
            "type": "array"
          }
        },
        "required": [
          "difficulty",
          "learner_band",
          "prerequisite_readiness",
          "instruction_language",
          "device_profile",
          "delivery_mode",
          "planning_rationale"
        ],
        "title": "LessonDurationLoadContext",
        "type": "object"
      },
      "LessonDurationLoadEstimate": {
        "additionalProperties": false,
        "properties": {
          "calculated_constraints": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadConstraintComparison"
            },
            "title": "Calculated Constraints",
            "type": "array"
          },
          "calculated_segments": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadSegment"
            },
            "title": "Calculated Segments",
            "type": "array"
          },
          "calculated_summary": {
            "$ref": "#/components/schemas/LessonDurationLoadSummary"
          },
          "context": {
            "$ref": "#/components/schemas/LessonDurationLoadContext"
          },
          "data_gaps": {
            "items": {
              "type": "string"
            },
            "title": "Data Gaps",
            "type": "array"
          },
          "effective_constraints": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadConstraintComparison"
            },
            "title": "Effective Constraints",
            "type": "array"
          },
          "effective_segments": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadSegment"
            },
            "title": "Effective Segments",
            "type": "array"
          },
          "effective_summary": {
            "$ref": "#/components/schemas/LessonDurationLoadSummary"
          },
          "estimate_id": {
            "pattern": "^duration-estimate-[a-f0-9]{24}$",
            "title": "Estimate Id",
            "type": "string"
          },
          "estimate_is_fact": {
            "const": false,
            "default": false,
            "title": "Estimate Is Fact",
            "type": "boolean"
          },
          "estimate_is_observation": {
            "const": false,
            "default": false,
            "title": "Estimate Is Observation",
            "type": "boolean"
          },
          "estimate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Sha256",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "title": "Limitations",
            "type": "array"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "override_dispositions": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadOverrideDisposition"
            },
            "title": "Override Dispositions",
            "type": "array"
          },
          "profile": {
            "$ref": "#/components/schemas/LessonDurationLoadModelProfile"
          },
          "remediations": {
            "items": {
              "type": "string"
            },
            "title": "Remediations",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/LessonDurationLoadWitness"
          }
        },
        "required": [
          "estimate_id",
          "profile",
          "witness",
          "context",
          "calculated_segments",
          "effective_segments",
          "calculated_summary",
          "effective_summary",
          "override_dispositions",
          "calculated_constraints",
          "effective_constraints",
          "data_gaps",
          "remediations",
          "limitations",
          "estimate_sha256",
          "observed_at"
        ],
        "title": "LessonDurationLoadEstimate",
        "type": "object"
      },
      "LessonDurationLoadEstimateRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonDurationLoadContext"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "context"
        ],
        "title": "LessonDurationLoadEstimateRequest",
        "type": "object"
      },
      "LessonDurationLoadFactor": {
        "additionalProperties": false,
        "properties": {
          "effect": {
            "enum": ["duration", "intrinsic", "extraneous", "germane"],
            "title": "Effect",
            "type": "string"
          },
          "factor": {
            "enum": ["difficulty", "prerequisite", "language", "device", "support", "modality"],
            "title": "Factor",
            "type": "string"
          },
          "multiplier": {
            "pattern": "^(?:0\\.\\d{1,2}|[1-9](?:\\.\\d{1,2})?)$",
            "title": "Multiplier",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["factor", "effect", "multiplier", "rationale"],
        "title": "LessonDurationLoadFactor",
        "type": "object"
      },
      "LessonDurationLoadMediaQuantity": {
        "additionalProperties": false,
        "properties": {
          "asset_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Revision Id",
            "type": "string"
          },
          "duration_seconds": {
            "maximum": 86400.0,
            "minimum": 1.0,
            "title": "Duration Seconds",
            "type": "integer"
          },
          "source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Ref",
            "type": "string"
          }
        },
        "required": ["asset_id", "asset_revision_id", "duration_seconds", "source_ref"],
        "title": "LessonDurationLoadMediaQuantity",
        "type": "object"
      },
      "LessonDurationLoadModelProfile": {
        "additionalProperties": false,
        "properties": {
          "arithmetic": {
            "const": "bounded_interval_seconds_v1",
            "default": "bounded_interval_seconds_v1",
            "title": "Arithmetic",
            "type": "string"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Assumptions",
            "type": "array"
          },
          "automatic_fact_claim": {
            "const": false,
            "default": false,
            "title": "Automatic Fact Claim",
            "type": "boolean"
          },
          "config_id": {
            "const": "metis.lesson-duration-load.en-v1",
            "default": "metis.lesson-duration-load.en-v1",
            "title": "Config Id",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Config Version",
            "type": "string"
          },
          "duration_is_observation": {
            "const": false,
            "default": false,
            "title": "Duration Is Observation",
            "type": "boolean"
          },
          "learner_band_uninterrupted_max_seconds": {
            "additionalProperties": {
              "type": "integer"
            },
            "propertyNames": {
              "enum": ["foundational", "developing", "proficient", "advanced"]
            },
            "title": "Learner Band Uninterrupted Max Seconds",
            "type": "object"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "load_is_observation": {
            "const": false,
            "default": false,
            "title": "Load Is Observation",
            "type": "boolean"
          },
          "load_model": {
            "const": "intrinsic_extraneous_germane_planning_proxy_v1",
            "default": "intrinsic_extraneous_germane_planning_proxy_v1",
            "title": "Load Model",
            "type": "string"
          },
          "model_id": {
            "const": "metis.lesson-duration-load",
            "default": "metis.lesson-duration-load",
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Model Version",
            "type": "string"
          },
          "rates": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadRate"
            },
            "maxItems": 32,
            "minItems": 8,
            "title": "Rates",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "supported_locales": {
            "default": ["en", "en-US", "en-GB"],
            "items": {
              "enum": ["en", "en-US", "en-GB"],
              "type": "string"
            },
            "title": "Supported Locales",
            "type": "array"
          }
        },
        "required": [
          "config_sha256",
          "rates",
          "learner_band_uninterrupted_max_seconds",
          "assumptions",
          "limitations",
          "self_sha256"
        ],
        "title": "LessonDurationLoadModelProfile",
        "type": "object"
      },
      "LessonDurationLoadOverrideDisposition": {
        "additionalProperties": false,
        "properties": {
          "override_id": {
            "title": "Override Id",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "segment_id": {
            "title": "Segment Id",
            "type": "string"
          },
          "status": {
            "enum": [
              "applied",
              "superseded",
              "stale_subject",
              "stale_context",
              "stale_model",
              "missing_segment"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["override_id", "segment_id", "status", "reason"],
        "title": "LessonDurationLoadOverrideDisposition",
        "type": "object"
      },
      "LessonDurationLoadOverrideReceipt": {
        "additionalProperties": false,
        "properties": {
          "calculated_values_mutated": {
            "const": false,
            "default": false,
            "title": "Calculated Values Mutated",
            "type": "boolean"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Changed Paths",
            "type": "array"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "estimate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Sha256",
            "type": "string"
          },
          "override_id": {
            "title": "Override Id",
            "type": "string"
          },
          "segment_id": {
            "title": "Segment Id",
            "type": "string"
          },
          "subject_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Set Sha256",
            "type": "string"
          }
        },
        "required": [
          "override_id",
          "estimate_sha256",
          "segment_id",
          "subject_set_sha256",
          "changed_paths"
        ],
        "title": "LessonDurationLoadOverrideReceipt",
        "type": "object"
      },
      "LessonDurationLoadOverrideRecord": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "calculated": {
            "$ref": "#/components/schemas/LessonDurationLoadOverrideValues"
          },
          "calculated_values_mutated": {
            "const": false,
            "default": false,
            "title": "Calculated Values Mutated",
            "type": "boolean"
          },
          "config_id": {
            "title": "Config Id",
            "type": "string"
          },
          "config_version": {
            "title": "Config Version",
            "type": "string"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "estimate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Estimate Sha256",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "model_id": {
            "title": "Model Id",
            "type": "string"
          },
          "model_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Model Sha256",
            "type": "string"
          },
          "model_version": {
            "title": "Model Version",
            "type": "string"
          },
          "override_id": {
            "pattern": "^duration-override-[0-9a-f-]{36}$",
            "title": "Override Id",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "replacement": {
            "$ref": "#/components/schemas/LessonDurationLoadOverrideValues"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "segment_id": {
            "title": "Segment Id",
            "type": "string"
          },
          "subject_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Set Sha256",
            "type": "string"
          }
        },
        "required": [
          "override_id",
          "estimate_sha256",
          "segment_id",
          "subject_set_sha256",
          "context_sha256",
          "model_id",
          "model_version",
          "model_sha256",
          "config_id",
          "config_version",
          "calculated",
          "replacement",
          "reason",
          "evidence_ref",
          "actor_id",
          "actor_role",
          "recorded_at"
        ],
        "title": "LessonDurationLoadOverrideRecord",
        "type": "object"
      },
      "LessonDurationLoadOverrideRequest": {
        "additionalProperties": false,
        "properties": {
          "estimate_request": {
            "$ref": "#/components/schemas/LessonDurationLoadEstimateRequest"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "expected_estimate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Estimate Sha256",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "replacement": {
            "$ref": "#/components/schemas/LessonDurationLoadOverrideValues"
          },
          "segment_id": {
            "title": "Segment Id",
            "type": "string"
          }
        },
        "required": [
          "estimate_request",
          "expected_estimate_sha256",
          "segment_id",
          "replacement",
          "reason",
          "evidence_ref"
        ],
        "title": "LessonDurationLoadOverrideRequest",
        "type": "object"
      },
      "LessonDurationLoadOverrideResponse": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "receipt": {
            "$ref": "#/components/schemas/LessonDurationLoadOverrideReceipt"
          }
        },
        "required": ["projection", "receipt"],
        "title": "LessonDurationLoadOverrideResponse",
        "type": "object"
      },
      "LessonDurationLoadOverrideValues": {
        "additionalProperties": false,
        "properties": {
          "duration": {
            "$ref": "#/components/schemas/LessonDurationChannels"
          },
          "load": {
            "$ref": "#/components/schemas/LessonLoadVector"
          }
        },
        "required": ["duration", "load"],
        "title": "LessonDurationLoadOverrideValues",
        "type": "object"
      },
      "LessonDurationLoadPeak": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": ["intrinsic", "extraneous", "germane"],
            "title": "Dimension",
            "type": "string"
          },
          "expected": {
            "pattern": "^(?:[0-4](?:\\.\\d{1,2})?|5(?:\\.0{1,2})?)$",
            "title": "Expected",
            "type": "string"
          },
          "segment_id": {
            "title": "Segment Id",
            "type": "string"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["dimension", "segment_id", "expected", "statement"],
        "title": "LessonDurationLoadPeak",
        "type": "object"
      },
      "LessonDurationLoadQuantityEvidence": {
        "additionalProperties": false,
        "properties": {
          "source_ref": {
            "title": "Source Ref",
            "type": "string"
          },
          "status": {
            "enum": ["exact", "derived", "missing"],
            "title": "Status",
            "type": "string"
          },
          "subject_revision_ref": {
            "title": "Subject Revision Ref",
            "type": "string"
          },
          "subject_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Sha256",
            "type": "string"
          },
          "unit": {
            "enum": [
              "word",
              "line",
              "equation",
              "image",
              "media_second",
              "activity",
              "assessment_item"
            ],
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "maximum": 100000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["status", "unit", "source_ref", "subject_revision_ref", "subject_sha256"],
        "title": "LessonDurationLoadQuantityEvidence",
        "type": "object"
      },
      "LessonDurationLoadRate": {
        "additionalProperties": false,
        "properties": {
          "active_share_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Active Share Percent",
            "type": "integer"
          },
          "applicability": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Applicability",
            "type": "string"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Assumptions",
            "type": "array"
          },
          "baseline_load": {
            "$ref": "#/components/schemas/LessonLoadVector"
          },
          "block_kinds": {
            "default": [],
            "items": {
              "enum": [
                "prose",
                "callout",
                "example",
                "equation",
                "code",
                "image",
                "audio",
                "video",
                "interaction",
                "practice",
                "reflection",
                "assessment_link"
              ],
              "type": "string"
            },
            "title": "Block Kinds",
            "type": "array"
          },
          "quantity_unit": {
            "enum": [
              "word",
              "line",
              "equation",
              "image",
              "media_second",
              "activity",
              "assessment_item"
            ],
            "title": "Quantity Unit",
            "type": "string"
          },
          "rate_id": {
            "pattern": "^duration_rate_[a-z0-9][a-z0-9_.-]{2,127}$",
            "title": "Rate Id",
            "type": "string"
          },
          "seconds_per_unit": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "segment_kind": {
            "enum": ["block", "activity", "media", "assessment"],
            "title": "Segment Kind",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          }
        },
        "required": [
          "rate_id",
          "segment_kind",
          "quantity_unit",
          "seconds_per_unit",
          "baseline_load",
          "active_share_percent",
          "applicability",
          "assumptions",
          "source_refs"
        ],
        "title": "LessonDurationLoadRate",
        "type": "object"
      },
      "LessonDurationLoadRun": {
        "additionalProperties": false,
        "properties": {
          "duration": {
            "$ref": "#/components/schemas/LessonDurationRange"
          },
          "kind": {
            "enum": ["sustained_high_load", "uninterrupted"],
            "title": "Kind",
            "type": "string"
          },
          "load_dimensions": {
            "default": [],
            "items": {
              "enum": ["intrinsic", "extraneous", "germane"],
              "type": "string"
            },
            "title": "Load Dimensions",
            "type": "array"
          },
          "run_id": {
            "title": "Run Id",
            "type": "string"
          },
          "segment_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Segment Ids",
            "type": "array"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["run_id", "kind", "segment_ids", "duration", "statement"],
        "title": "LessonDurationLoadRun",
        "type": "object"
      },
      "LessonDurationLoadSegment": {
        "additionalProperties": false,
        "properties": {
          "applied_factors": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadFactor"
            },
            "title": "Applied Factors",
            "type": "array"
          },
          "assessment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "assessment_version_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Version Id"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asset Id"
          },
          "asset_revision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asset Revision Id"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "block_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Id"
          },
          "block_kind": {
            "anyOf": [
              {
                "enum": [
                  "prose",
                  "callout",
                  "example",
                  "equation",
                  "code",
                  "image",
                  "audio",
                  "video",
                  "interaction",
                  "practice",
                  "reflection",
                  "assessment_link"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Kind"
          },
          "confidence": {
            "enum": ["high", "medium", "low", "not_available"],
            "title": "Confidence",
            "type": "string"
          },
          "data_gaps": {
            "items": {
              "type": "string"
            },
            "title": "Data Gaps",
            "type": "array"
          },
          "duration": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDurationChannels"
              },
              {
                "type": "null"
              }
            ]
          },
          "load": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonLoadVector"
              },
              {
                "type": "null"
              }
            ]
          },
          "modality": {
            "enum": [
              "read",
              "inspect",
              "listen",
              "watch",
              "interact",
              "practice",
              "reflect",
              "assess"
            ],
            "title": "Modality",
            "type": "string"
          },
          "quantity": {
            "$ref": "#/components/schemas/LessonDurationLoadQuantityEvidence"
          },
          "segment_id": {
            "pattern": "^(?:block|activity|media|assessment):[A-Za-z0-9._:-]+$",
            "title": "Segment Id",
            "type": "string"
          },
          "segment_kind": {
            "enum": ["block", "activity", "media", "assessment"],
            "title": "Segment Kind",
            "type": "string"
          },
          "sequence": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Sequence",
            "type": "integer"
          },
          "status": {
            "enum": ["calculated", "data_gap", "not_applicable", "error"],
            "title": "Status",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision_ref": {
            "title": "Subject Revision Ref",
            "type": "string"
          },
          "subject_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Sha256",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "segment_id",
          "sequence",
          "segment_kind",
          "subject_id",
          "subject_revision_ref",
          "subject_sha256",
          "modality",
          "status",
          "quantity",
          "duration",
          "load",
          "confidence",
          "applied_factors",
          "assumptions",
          "uncertainty",
          "data_gaps"
        ],
        "title": "LessonDurationLoadSegment",
        "type": "object"
      },
      "LessonDurationLoadSequenceSignal": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": ["modality_switch", "redundancy", "pacing", "break"],
            "title": "Kind",
            "type": "string"
          },
          "remediation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          },
          "segment_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Segment Ids",
            "type": "array"
          },
          "severity": {
            "enum": ["note", "review"],
            "title": "Severity",
            "type": "string"
          },
          "signal_id": {
            "title": "Signal Id",
            "type": "string"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["signal_id", "kind", "segment_ids", "severity", "statement"],
        "title": "LessonDurationLoadSequenceSignal",
        "type": "object"
      },
      "LessonDurationLoadSummary": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "calculated_segment_count": {
            "minimum": 0.0,
            "title": "Calculated Segment Count",
            "type": "integer"
          },
          "calculation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Calculation Sha256",
            "type": "string"
          },
          "confidence": {
            "enum": ["high", "medium", "low", "not_available"],
            "title": "Confidence",
            "type": "string"
          },
          "duration": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonDurationChannels"
              },
              {
                "type": "null"
              }
            ]
          },
          "missing_segment_ids": {
            "items": {
              "type": "string"
            },
            "title": "Missing Segment Ids",
            "type": "array"
          },
          "peaks": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadPeak"
            },
            "maxItems": 3,
            "title": "Peaks",
            "type": "array"
          },
          "segment_count": {
            "minimum": 0.0,
            "title": "Segment Count",
            "type": "integer"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadSequenceSignal"
            },
            "title": "Signals",
            "type": "array"
          },
          "status": {
            "enum": ["complete", "known_subtotal", "unavailable"],
            "title": "Status",
            "type": "string"
          },
          "sustained_runs": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadRun"
            },
            "title": "Sustained Runs",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          },
          "uninterrupted_runs": {
            "items": {
              "$ref": "#/components/schemas/LessonDurationLoadRun"
            },
            "title": "Uninterrupted Runs",
            "type": "array"
          }
        },
        "required": [
          "status",
          "duration",
          "segment_count",
          "calculated_segment_count",
          "missing_segment_ids",
          "confidence",
          "peaks",
          "sustained_runs",
          "uninterrupted_runs",
          "signals",
          "assumptions",
          "uncertainty",
          "calculation_sha256"
        ],
        "title": "LessonDurationLoadSummary",
        "type": "object"
      },
      "LessonDurationLoadWitness": {
        "additionalProperties": false,
        "properties": {
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "title": "Module Id",
            "type": "string"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          },
          "subject_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Set Sha256",
            "type": "string"
          }
        },
        "required": [
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "dossier_revision",
          "dossier_sha256",
          "block_document_sha256",
          "subject_set_sha256",
          "context_sha256"
        ],
        "title": "LessonDurationLoadWitness",
        "type": "object"
      },
      "LessonDurationRange": {
        "additionalProperties": false,
        "properties": {
          "expected": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Expected",
            "type": "integer"
          },
          "lower": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Lower",
            "type": "integer"
          },
          "upper": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Upper",
            "type": "integer"
          }
        },
        "required": ["lower", "expected", "upper"],
        "title": "LessonDurationRange",
        "type": "object"
      },
      "LessonEquationBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "braille_text": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Braille Text"
          },
          "equation_number": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Equation Number"
          },
          "image_fallback": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonEquationImageFallback"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "const": "equation",
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "mathml": {
            "maxLength": 100000,
            "minLength": 7,
            "title": "Mathml",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "plain_text": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plain Text"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "spoken_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Spoken Text",
            "type": "string"
          },
          "variables": {
            "items": {
              "$ref": "#/components/schemas/LessonMathVariable"
            },
            "maxItems": 500,
            "title": "Variables",
            "type": "array"
          }
        },
        "required": ["block_id", "position", "accessibility", "kind", "mathml", "spoken_text"],
        "title": "LessonEquationBlock",
        "type": "object"
      },
      "LessonEquationImageFallback": {
        "additionalProperties": false,
        "properties": {
          "alt_text": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Alt Text",
            "type": "string"
          },
          "asset_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Revision Id",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "rendition_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          }
        },
        "required": ["asset_id", "asset_revision_id", "rendition_id", "content_sha256", "alt_text"],
        "title": "LessonEquationImageFallback",
        "type": "object"
      },
      "LessonExampleBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "analysis_steps": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Analysis Steps",
            "type": "array"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "heading": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Heading",
            "type": "string"
          },
          "input_refs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "title": "Input Refs",
            "type": "array"
          },
          "kind": {
            "const": "example",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "output_refs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "title": "Output Refs",
            "type": "array"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "result_description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Result Description"
          },
          "scenario": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Scenario",
            "type": "string"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "takeaway": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Takeaway",
            "type": "string"
          },
          "test_refs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonCodeReference"
            },
            "title": "Test Refs",
            "type": "array"
          }
        },
        "required": [
          "block_id",
          "position",
          "accessibility",
          "kind",
          "heading",
          "scenario",
          "analysis_steps",
          "takeaway"
        ],
        "title": "LessonExampleBlock",
        "type": "object"
      },
      "LessonGalleryAccessibilityBundle": {
        "additionalProperties": false,
        "properties": {
          "alt_text": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alt Text"
          },
          "audio_description_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Description Ref"
          },
          "captions_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Captions Ref"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "long_description": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Long Description"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_na_reasons": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonGalleryReviewedNaReason"
            },
            "title": "Reviewed Na Reasons",
            "type": "array"
          },
          "sign_language_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Language Ref"
          },
          "status": {
            "enum": ["approved", "needs-review"],
            "title": "Status",
            "type": "string"
          },
          "text_description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Description"
          },
          "transcript_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Ref"
          }
        },
        "required": ["status", "locale", "reviewed_at", "expires_at"],
        "title": "LessonGalleryAccessibilityBundle",
        "type": "object"
      },
      "LessonGalleryAttachmentRequest": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "selection": {
            "$ref": "#/components/schemas/LessonGallerySelection"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "block_id",
          "position",
          "reason",
          "selection"
        ],
        "title": "LessonGalleryAttachmentRequest",
        "type": "object"
      },
      "LessonGalleryAttachmentResponse": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "receipt": {
            "$ref": "#/components/schemas/LessonBlockOperationReceipt"
          }
        },
        "required": ["projection", "receipt"],
        "title": "LessonGalleryAttachmentResponse",
        "type": "object"
      },
      "LessonGalleryEvidenceGate": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "fail", "needs-review"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "evidence_ref", "evaluated_at", "expires_at"],
        "title": "LessonGalleryEvidenceGate",
        "type": "object"
      },
      "LessonGalleryGateEvidence": {
        "additionalProperties": false,
        "properties": {
          "consent": {
            "$ref": "#/components/schemas/LessonGalleryEvidenceGate"
          },
          "provenance": {
            "$ref": "#/components/schemas/LessonGalleryEvidenceGate"
          },
          "quality": {
            "$ref": "#/components/schemas/LessonGalleryEvidenceGate"
          },
          "rights": {
            "$ref": "#/components/schemas/LessonGalleryEvidenceGate"
          },
          "safety": {
            "$ref": "#/components/schemas/LessonGalleryEvidenceGate"
          },
          "source": {
            "$ref": "#/components/schemas/LessonGalleryEvidenceGate"
          }
        },
        "required": ["source", "rights", "consent", "provenance", "quality", "safety"],
        "title": "LessonGalleryGateEvidence",
        "type": "object"
      },
      "LessonGalleryItem": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonGalleryAccessibilityBundle"
          },
          "consent_evidence_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Evidence Ref"
          },
          "consent_na_reason": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonGalleryReviewedNaReason"
              },
              {
                "type": "null"
              }
            ]
          },
          "delivery_variants": {
            "items": {
              "$ref": "#/components/schemas/LessonGalleryRendition"
            },
            "minItems": 1,
            "title": "Delivery Variants",
            "type": "array"
          },
          "gate_evidence": {
            "$ref": "#/components/schemas/LessonGalleryGateEvidence"
          },
          "media_kind": {
            "enum": ["image", "audio", "video"],
            "title": "Media Kind",
            "type": "string"
          },
          "media_readiness": {
            "$ref": "#/components/schemas/LessonGalleryMediaReadiness"
          },
          "provenance_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Provenance Ref",
            "type": "string"
          },
          "release_expires_at": {
            "format": "date-time",
            "title": "Release Expires At",
            "type": "string"
          },
          "rights_evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Rights Evidence Ref",
            "type": "string"
          },
          "selected_rendition": {
            "$ref": "#/components/schemas/LessonGalleryRendition"
          },
          "selection": {
            "$ref": "#/components/schemas/LessonGallerySelection"
          },
          "source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Ref",
            "type": "string"
          },
          "status": {
            "enum": ["eligible", "expiring"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "target_gate": {
            "$ref": "#/components/schemas/LessonGalleryTargetGate"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "selection",
          "title",
          "summary",
          "media_kind",
          "status",
          "release_expires_at",
          "source_ref",
          "rights_evidence_ref",
          "provenance_ref",
          "accessibility",
          "media_readiness",
          "selected_rendition",
          "delivery_variants",
          "gate_evidence",
          "target_gate"
        ],
        "title": "LessonGalleryItem",
        "type": "object"
      },
      "LessonGalleryMediaGate": {
        "additionalProperties": false,
        "properties": {
          "alternative_asset_revision_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alternative Asset Revision Id"
          },
          "asset_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Revision Id",
            "type": "string"
          },
          "evaluated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluated At"
          },
          "evaluator_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluator Id"
          },
          "evaluator_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluator Version"
          },
          "evidence_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Ref"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "gate_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Gate Id",
            "type": "string"
          },
          "gate_revision": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Gate Revision",
            "type": "string"
          },
          "kind": {
            "enum": ["technical", "captions", "transcript", "synchronization"],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "policy_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "profile_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Profile Id",
            "type": "string"
          },
          "profile_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Profile Version",
            "type": "string"
          },
          "reason_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Reason Codes",
            "type": "array"
          },
          "state": {
            "enum": [
              "pass",
              "fail",
              "needs-review",
              "unavailable",
              "not-configured",
              "partial",
              "not-applicable"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "gate_revision",
          "kind",
          "state",
          "asset_revision_id",
          "locale",
          "profile_id",
          "profile_version",
          "policy_id",
          "policy_version",
          "evaluated_at",
          "expires_at"
        ],
        "title": "LessonGalleryMediaGate",
        "type": "object"
      },
      "LessonGalleryMediaProfile": {
        "additionalProperties": false,
        "properties": {
          "accessibility_needs": {
            "items": {
              "enum": [
                "alternative-text",
                "long-description",
                "transcript",
                "captions",
                "audio-description",
                "sign-language",
                "text-description",
                "synchronization"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Accessibility Needs",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_kind": {
            "enum": ["image", "audio", "video"],
            "title": "Media Kind",
            "type": "string"
          },
          "policy_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "profile_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Profile Id",
            "type": "string"
          },
          "profile_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Profile Version",
            "type": "string"
          },
          "target": {
            "enum": ["learner-web", "learner-mobile", "lms", "print"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "profile_id",
          "profile_version",
          "policy_id",
          "policy_version",
          "media_kind",
          "target",
          "locale",
          "accessibility_needs"
        ],
        "title": "LessonGalleryMediaProfile",
        "type": "object"
      },
      "LessonGalleryMediaReadiness": {
        "additionalProperties": false,
        "properties": {
          "authority_revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Authority Revision",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/LessonGalleryMediaGate"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Gates",
            "type": "array"
          },
          "measurements": {
            "$ref": "#/components/schemas/LessonGalleryTechnicalMeasurementSet"
          },
          "profile": {
            "$ref": "#/components/schemas/LessonGalleryMediaProfile"
          }
        },
        "required": ["profile", "measurements", "gates", "authority_revision"],
        "title": "LessonGalleryMediaReadiness",
        "type": "object"
      },
      "LessonGalleryPage": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/LessonGalleryItem"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["items", "next_cursor", "total", "evaluated_at"],
        "title": "LessonGalleryPage",
        "type": "object"
      },
      "LessonGalleryRendition": {
        "additionalProperties": false,
        "properties": {
          "approved": {
            "title": "Approved",
            "type": "boolean"
          },
          "byte_length": {
            "maximum": 10000000000.0,
            "minimum": 1.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "capabilities": {
            "items": {
              "enum": ["online", "offline", "low-bandwidth"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Capabilities",
            "type": "array"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "duration_ms": {
            "anyOf": [
              {
                "maximum": 86400000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms"
          },
          "height": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Height"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "pattern": "^(?:/[^/]|https://)",
            "title": "Locator",
            "type": "string"
          },
          "media_type": {
            "maxLength": 255,
            "pattern": "^[a-z0-9][a-z0-9.+-]+/[a-z0-9][a-z0-9.+-]+$",
            "title": "Media Type",
            "type": "string"
          },
          "rendition_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "poster", "thumbnail", "offline", "low-bandwidth"],
            "title": "Role",
            "type": "string"
          },
          "width": {
            "anyOf": [
              {
                "maximum": 100000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Width"
          }
        },
        "required": [
          "rendition_id",
          "role",
          "approved",
          "content_sha256",
          "media_type",
          "byte_length",
          "locator",
          "capabilities"
        ],
        "title": "LessonGalleryRendition",
        "type": "object"
      },
      "LessonGalleryReviewedNaReason": {
        "additionalProperties": false,
        "properties": {
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "feature": {
            "enum": ["long-description", "audio-description", "sign-language", "consent"],
            "title": "Feature",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewed By",
            "type": "string"
          }
        },
        "required": ["feature", "reason", "reviewed_by", "reviewed_at", "evidence_ref"],
        "title": "LessonGalleryReviewedNaReason",
        "type": "object"
      },
      "LessonGallerySelection": {
        "additionalProperties": false,
        "properties": {
          "asset_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Revision Id",
            "type": "string"
          },
          "authority_revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Authority Revision",
            "type": "string"
          },
          "capabilities": {
            "items": {
              "enum": ["online", "offline", "low-bandwidth"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Capabilities",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "output_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Output Id",
            "type": "string"
          },
          "output_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Output Revision Id",
            "type": "string"
          },
          "rendition_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          },
          "rendition_role": {
            "enum": ["primary", "poster", "thumbnail", "offline", "low-bandwidth"],
            "title": "Rendition Role",
            "type": "string"
          },
          "selection_token": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Selection Token",
            "type": "string"
          },
          "target": {
            "enum": ["learner-web", "learner-mobile", "lms", "print"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "asset_id",
          "asset_revision_id",
          "output_id",
          "output_revision_id",
          "rendition_id",
          "rendition_role",
          "authority_revision",
          "target",
          "locale",
          "capabilities",
          "selection_token"
        ],
        "title": "LessonGallerySelection",
        "type": "object"
      },
      "LessonGalleryTargetGate": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "fail", "needs-review"],
            "title": "Status",
            "type": "string"
          },
          "target": {
            "enum": ["learner-web", "learner-mobile", "lms", "print"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["status", "evidence_ref", "evaluated_at", "expires_at", "target"],
        "title": "LessonGalleryTargetGate",
        "type": "object"
      },
      "LessonGalleryTechnicalMeasurement": {
        "additionalProperties": false,
        "properties": {
          "metric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Metric Id",
            "type": "string"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["metric_id", "value", "unit"],
        "title": "LessonGalleryTechnicalMeasurement",
        "type": "object"
      },
      "LessonGalleryTechnicalMeasurementSet": {
        "additionalProperties": false,
        "properties": {
          "asset_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Revision Id",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evaluator_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Evaluator Id",
            "type": "string"
          },
          "evaluator_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Evaluator Version",
            "type": "string"
          },
          "evidence_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Ref"
          },
          "measured_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measured At"
          },
          "measurement_set_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Measurement Set Id",
            "type": "string"
          },
          "measurement_set_revision": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Measurement Set Revision",
            "type": "string"
          },
          "measurements": {
            "items": {
              "$ref": "#/components/schemas/LessonGalleryTechnicalMeasurement"
            },
            "title": "Measurements",
            "type": "array"
          },
          "profile_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Profile Id",
            "type": "string"
          },
          "profile_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Profile Version",
            "type": "string"
          },
          "rendition_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          },
          "state": {
            "enum": ["available", "unavailable", "not-configured", "partial"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "measurement_set_id",
          "measurement_set_revision",
          "asset_revision_id",
          "rendition_id",
          "content_sha256",
          "profile_id",
          "profile_version",
          "evaluator_id",
          "evaluator_version",
          "measured_at",
          "measurements"
        ],
        "title": "LessonGalleryTechnicalMeasurementSet",
        "type": "object"
      },
      "LessonGovernedAttachment": {
        "additionalProperties": false,
        "properties": {
          "accessibility_na_evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Accessibility Na Evidence Refs",
            "type": "array"
          },
          "accessibility_na_reasons": {
            "items": {
              "$ref": "#/components/schemas/LessonGalleryReviewedNaReason"
            },
            "maxItems": 20,
            "title": "Accessibility Na Reasons",
            "type": "array"
          },
          "accessibility_snapshot_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accessibility Snapshot Sha256"
          },
          "asset_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Asset Revision Id",
            "type": "string"
          },
          "authority": {
            "anyOf": [
              {
                "const": "isis",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authority"
          },
          "authority_revision": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authority Revision"
          },
          "capabilities": {
            "default": [],
            "items": {
              "enum": ["online", "offline", "low-bandwidth"],
              "type": "string"
            },
            "title": "Capabilities",
            "type": "array"
          },
          "consent_evidence_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Evidence Ref"
          },
          "consent_na_evidence_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Na Evidence Ref"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "gallery_target": {
            "anyOf": [
              {
                "enum": ["learner-web", "learner-mobile", "lms", "print"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gallery Target"
          },
          "gate_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Expires At"
          },
          "gate_snapshot_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gate Snapshot Sha256"
          },
          "media_policy_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Policy Id"
          },
          "media_policy_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Policy Version"
          },
          "media_profile_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Profile Id"
          },
          "media_profile_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Profile Version"
          },
          "media_readiness_authority_revision": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Readiness Authority Revision"
          },
          "media_readiness_snapshot_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Readiness Snapshot Sha256"
          },
          "output_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Id"
          },
          "output_revision_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Revision Id"
          },
          "provenance_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provenance Ref"
          },
          "rendition_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rendition Id",
            "type": "string"
          },
          "rendition_role": {
            "anyOf": [
              {
                "enum": ["primary", "poster", "thumbnail", "offline", "low-bandwidth"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rendition Role"
          },
          "rights_evidence": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rights Evidence"
          },
          "rights_status": {
            "enum": ["cleared", "needs_review", "blocked"],
            "title": "Rights Status",
            "type": "string"
          },
          "selection_token": {
            "anyOf": [
              {
                "maxLength": 4096,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selection Token"
          },
          "source_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ref"
          }
        },
        "required": [
          "asset_id",
          "asset_revision_id",
          "rendition_id",
          "content_sha256",
          "rights_status"
        ],
        "title": "LessonGovernedAttachment",
        "type": "object"
      },
      "LessonImageBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "alt_text": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alt Text"
          },
          "attachment": {
            "$ref": "#/components/schemas/LessonGovernedAttachment"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "caption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Caption",
            "type": "string"
          },
          "kind": {
            "const": "image",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "long_description": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Long Description"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          }
        },
        "required": ["block_id", "position", "accessibility", "kind", "attachment", "caption"],
        "title": "LessonImageBlock",
        "type": "object"
      },
      "LessonInclusivityAnalysis": {
        "additionalProperties": false,
        "properties": {
          "aggregate_score": {
            "const": "not_computed",
            "default": "not_computed",
            "title": "Aggregate Score",
            "type": "string"
          },
          "analysis_id": {
            "pattern": "^inclusivity-analysis-[a-f0-9]{24}$",
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "analyzed_at": {
            "format": "date-time",
            "title": "Analyzed At",
            "type": "string"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "author_blame": {
            "const": false,
            "default": false,
            "title": "Author Blame",
            "type": "boolean"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "context": {
            "$ref": "#/components/schemas/LessonInclusivityAnalysisContext"
          },
          "dimension_results": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityDimensionResult"
            },
            "title": "Dimension Results",
            "type": "array"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "profile": {
            "$ref": "#/components/schemas/LessonInclusivityProfile"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "truth_claim": {
            "const": false,
            "default": false,
            "title": "Truth Claim",
            "type": "boolean"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          },
          "unit_results": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityUnitResult"
            },
            "title": "Unit Results",
            "type": "array"
          },
          "witness": {
            "$ref": "#/components/schemas/LessonInclusivityWitness"
          }
        },
        "required": [
          "analysis_id",
          "analysis_sha256",
          "witness",
          "context",
          "profile",
          "unit_results",
          "dimension_results",
          "findings",
          "assumptions",
          "uncertainty",
          "analyzed_at"
        ],
        "title": "LessonInclusivityAnalysis",
        "type": "object"
      },
      "LessonInclusivityAnalysisContext": {
        "additionalProperties": false,
        "properties": {
          "assessment_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Assessment Ids",
            "type": "array"
          },
          "asset_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Asset Ids",
            "type": "array"
          },
          "block_contexts": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityBlockContext"
            },
            "maxItems": 10000,
            "title": "Block Contexts",
            "type": "array"
          },
          "block_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Block Ids",
            "type": "array"
          },
          "config_id": {
            "const": "metis.inclusivity-evidence.en-v1",
            "default": "metis.inclusivity-evidence.en-v1",
            "title": "Config Id",
            "type": "string"
          },
          "config_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Config Version",
            "type": "string"
          },
          "content_item_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Content Item Ids",
            "type": "array"
          },
          "counterevidence": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityCounterevidence"
            },
            "maxItems": 10000,
            "title": "Counterevidence",
            "type": "array"
          },
          "locale": {
            "default": "en-US",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "protected_data_attestation": {
            "const": "authored_content_only",
            "default": "authored_content_only",
            "title": "Protected Data Attestation",
            "type": "string"
          }
        },
        "title": "LessonInclusivityAnalysisContext",
        "type": "object"
      },
      "LessonInclusivityAnalysisRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonInclusivityAnalysisContext"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "context"
        ],
        "title": "LessonInclusivityAnalysisRequest",
        "type": "object"
      },
      "LessonInclusivityAnchor": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "assessment_version_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Version Id"
          },
          "asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asset Id"
          },
          "asset_revision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asset Revision Id"
          },
          "block_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Id"
          },
          "block_kind": {
            "anyOf": [
              {
                "enum": [
                  "prose",
                  "callout",
                  "example",
                  "equation",
                  "code",
                  "image",
                  "audio",
                  "video",
                  "interaction",
                  "practice",
                  "reflection",
                  "assessment_link"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Kind"
          },
          "content_item_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Item Id"
          },
          "end_offset": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Offset"
          },
          "excerpt": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "field_path": {
            "anyOf": [
              {
                "pattern": "^/",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Field Path"
          },
          "start_offset": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Offset"
          },
          "subject_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision_ref": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Subject Revision Ref",
            "type": "string"
          },
          "subject_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Sha256",
            "type": "string"
          },
          "unit": {
            "enum": ["text_span", "block", "content_item", "media", "assessment"],
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["unit", "subject_id", "subject_revision_ref", "subject_sha256"],
        "title": "LessonInclusivityAnchor",
        "type": "object"
      },
      "LessonInclusivityAttribution": {
        "additionalProperties": false,
        "properties": {
          "config_id": {
            "title": "Config Id",
            "type": "string"
          },
          "config_version": {
            "title": "Config Version",
            "type": "string"
          },
          "corpus_id": {
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_version": {
            "title": "Corpus Version",
            "type": "string"
          },
          "evaluator_id": {
            "title": "Evaluator Id",
            "type": "string"
          },
          "evaluator_version": {
            "title": "Evaluator Version",
            "type": "string"
          },
          "evidence_basis": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Evidence Basis",
            "type": "string"
          },
          "rule_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Rule Version",
            "type": "string"
          }
        },
        "required": [
          "rule_id",
          "rule_version",
          "evaluator_id",
          "evaluator_version",
          "config_id",
          "config_version",
          "corpus_id",
          "corpus_version",
          "evidence_basis"
        ],
        "title": "LessonInclusivityAttribution",
        "type": "object"
      },
      "LessonInclusivityBlockContext": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "treatment": {
            "enum": ["analyze", "quoted_source", "historical_evidence", "configured_exclusion"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["block_id", "treatment"],
        "title": "LessonInclusivityBlockContext",
        "type": "object"
      },
      "LessonInclusivityCounterevidence": {
        "additionalProperties": false,
        "properties": {
          "counterevidence_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Counterevidence Id",
            "type": "string"
          },
          "source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Ref",
            "type": "string"
          },
          "statement": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Statement",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["lesson", "block", "content_item", "media", "assessment"],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": ["counterevidence_id", "subject_kind", "subject_id", "statement", "source_ref"],
        "title": "LessonInclusivityCounterevidence",
        "type": "object"
      },
      "LessonInclusivityDimensionResult": {
        "additionalProperties": false,
        "properties": {
          "applicable_unit_count": {
            "minimum": 0.0,
            "title": "Applicable Unit Count",
            "type": "integer"
          },
          "dimension": {
            "enum": [
              "representation",
              "stereotyping",
              "exclusionary_language_context",
              "cultural_linguistic_bias",
              "accessibility",
              "construct_irrelevant_barrier"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "finding_count": {
            "minimum": 0.0,
            "title": "Finding Count",
            "type": "integer"
          },
          "interpretation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Interpretation",
            "type": "string"
          },
          "score": {
            "const": "not_aggregated",
            "default": "not_aggregated",
            "title": "Score",
            "type": "string"
          },
          "status": {
            "enum": ["no_evidence", "evidence_for_review", "not_applicable", "error"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "dimension",
          "finding_count",
          "applicable_unit_count",
          "status",
          "interpretation"
        ],
        "title": "LessonInclusivityDimensionResult",
        "type": "object"
      },
      "LessonInclusivityDimensionRubric": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Applicability",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "representation",
              "stereotyping",
              "exclusionary_language_context",
              "cultural_linguistic_bias",
              "accessibility",
              "construct_irrelevant_barrier"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "evidence_units": {
            "items": {
              "enum": ["text_span", "block", "content_item", "media", "assessment"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Evidence Units",
            "type": "array"
          },
          "label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "manual_bands": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityManualBand"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Manual Bands",
            "type": "array"
          },
          "review_question": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Review Question",
            "type": "string"
          },
          "rubric_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,119}$",
            "title": "Rubric Id",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "rubric_id",
          "version",
          "dimension",
          "label",
          "review_question",
          "applicability",
          "evidence_units",
          "manual_bands",
          "limitations"
        ],
        "title": "LessonInclusivityDimensionRubric",
        "type": "object"
      },
      "LessonInclusivityEvaluatorBinding": {
        "additionalProperties": false,
        "properties": {
          "calibration_fixture_set_id": {
            "const": "metis-inclusivity-calibration-v1",
            "default": "metis-inclusivity-calibration-v1",
            "title": "Calibration Fixture Set Id",
            "type": "string"
          },
          "calibration_fixture_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Calibration Fixture Set Sha256",
            "type": "string"
          },
          "config_id": {
            "const": "metis.inclusivity-evidence.en-v1",
            "default": "metis.inclusivity-evidence.en-v1",
            "title": "Config Id",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Config Version",
            "type": "string"
          },
          "corpus_id": {
            "const": "metis-inclusivity-rule-corpus",
            "default": "metis-inclusivity-rule-corpus",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "corpus_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Corpus Version",
            "type": "string"
          },
          "evaluator_id": {
            "const": "metis.inclusivity-evidence",
            "default": "metis.inclusivity-evidence",
            "title": "Evaluator Id",
            "type": "string"
          },
          "evaluator_source": {
            "const": "server_local_deterministic",
            "default": "server_local_deterministic",
            "title": "Evaluator Source",
            "type": "string"
          },
          "evaluator_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Evaluator Version",
            "type": "string"
          },
          "model_id": {
            "const": "calibrated-literal-evidence",
            "default": "calibrated-literal-evidence",
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Model Version",
            "type": "string"
          },
          "provider_id": {
            "const": "metis-local",
            "default": "metis-local",
            "title": "Provider Id",
            "type": "string"
          },
          "provider_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Provider Version",
            "type": "string"
          }
        },
        "required": ["config_sha256", "corpus_sha256", "calibration_fixture_set_sha256"],
        "title": "LessonInclusivityEvaluatorBinding",
        "type": "object"
      },
      "LessonInclusivityFinding": {
        "additionalProperties": false,
        "properties": {
          "anchor": {
            "$ref": "#/components/schemas/LessonInclusivityAnchor"
          },
          "attribution": {
            "$ref": "#/components/schemas/LessonInclusivityAttribution"
          },
          "author_blame": {
            "const": false,
            "default": false,
            "title": "Author Blame",
            "type": "boolean"
          },
          "automatic_edit": {
            "const": false,
            "default": false,
            "title": "Automatic Edit",
            "type": "boolean"
          },
          "category": {
            "enum": [
              "representation_prompt",
              "generalized_group_trait",
              "exclusionary_default",
              "cultural_assumption",
              "language_gate",
              "missing_accessibility_support",
              "construct_irrelevant_language",
              "sensory_dependency"
            ],
            "title": "Category",
            "type": "string"
          },
          "confidence": {
            "pattern": "^(?:0(?:\\.\\d{1,2})?|1(?:\\.0{1,2})?)$",
            "title": "Confidence",
            "type": "string"
          },
          "counterevidence": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityCounterevidence"
            },
            "title": "Counterevidence",
            "type": "array"
          },
          "counterevidence_status": {
            "enum": ["absent", "present", "mixed"],
            "title": "Counterevidence Status",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "representation",
              "stereotyping",
              "exclusionary_language_context",
              "cultural_linguistic_bias",
              "accessibility",
              "construct_irrelevant_barrier"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^inclusivity-finding-[a-f0-9]{24}$",
            "title": "Finding Id",
            "type": "string"
          },
          "proposal": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Proposal",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "score": {
            "pattern": "^(?:0(?:\\.\\d{1,2})?|1(?:\\.0{1,2})?)$",
            "title": "Score",
            "type": "string"
          },
          "severity": {
            "enum": ["note", "review", "specialist"],
            "title": "Severity",
            "type": "string"
          },
          "suggested_decisions": {
            "items": {
              "enum": ["accept", "reject", "reframe", "request_specialist"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Suggested Decisions",
            "type": "array"
          },
          "truth_claim": {
            "const": false,
            "default": false,
            "title": "Truth Claim",
            "type": "boolean"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "dimension",
          "category",
          "severity",
          "anchor",
          "rationale",
          "score",
          "confidence",
          "uncertainty",
          "counterevidence",
          "counterevidence_status",
          "attribution",
          "proposal",
          "suggested_decisions"
        ],
        "title": "LessonInclusivityFinding",
        "type": "object"
      },
      "LessonInclusivityManualBand": {
        "additionalProperties": false,
        "properties": {
          "band_id": {
            "enum": ["monitor", "human_review", "specialist_review"],
            "title": "Band Id",
            "type": "string"
          },
          "instruction": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Instruction",
            "type": "string"
          },
          "label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "maximum_score": {
            "pattern": "^(?:0(?:\\.\\d{1,2})?|1(?:\\.0{1,2})?)$",
            "title": "Maximum Score",
            "type": "string"
          },
          "minimum_score": {
            "pattern": "^(?:0(?:\\.\\d{1,2})?|1(?:\\.0{1,2})?)$",
            "title": "Minimum Score",
            "type": "string"
          }
        },
        "required": ["band_id", "minimum_score", "maximum_score", "label", "instruction"],
        "title": "LessonInclusivityManualBand",
        "type": "object"
      },
      "LessonInclusivityProfile": {
        "additionalProperties": false,
        "properties": {
          "aggregate_score": {
            "const": "not_computed",
            "default": "not_computed",
            "title": "Aggregate Score",
            "type": "string"
          },
          "analyzed_content_kinds": {
            "items": {
              "enum": [
                "prose",
                "callout",
                "example",
                "equation",
                "code",
                "image",
                "audio",
                "video",
                "interaction",
                "practice",
                "reflection",
                "assessment_link"
              ],
              "type": "string"
            },
            "title": "Analyzed Content Kinds",
            "type": "array"
          },
          "author_blame": {
            "const": false,
            "default": false,
            "title": "Author Blame",
            "type": "boolean"
          },
          "evaluator": {
            "$ref": "#/components/schemas/LessonInclusivityEvaluatorBinding"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "protected_data_policy": {
            "$ref": "#/components/schemas/LessonInclusivityProtectedDataPolicy"
          },
          "rubrics": {
            "items": {
              "$ref": "#/components/schemas/LessonInclusivityDimensionRubric"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Rubrics",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "score_meaning": {
            "const": "rule_evidence_strength_not_bias_or_truth",
            "default": "rule_evidence_strength_not_bias_or_truth",
            "title": "Score Meaning",
            "type": "string"
          },
          "supported_languages": {
            "default": ["en"],
            "items": {
              "const": "en",
              "type": "string"
            },
            "title": "Supported Languages",
            "type": "array"
          },
          "supported_locales": {
            "default": ["en", "en-US", "en-GB"],
            "items": {
              "type": "string"
            },
            "title": "Supported Locales",
            "type": "array"
          },
          "truth_claim": {
            "const": false,
            "default": false,
            "title": "Truth Claim",
            "type": "boolean"
          }
        },
        "required": [
          "evaluator",
          "analyzed_content_kinds",
          "rubrics",
          "protected_data_policy",
          "limitations"
        ],
        "title": "LessonInclusivityProfile",
        "type": "object"
      },
      "LessonInclusivityProtectedDataPolicy": {
        "additionalProperties": false,
        "properties": {
          "allowed_inputs": {
            "default": ["authored_content", "public_course_metadata"],
            "items": {
              "enum": ["authored_content", "public_course_metadata"],
              "type": "string"
            },
            "title": "Allowed Inputs",
            "type": "array"
          },
          "decision_requires_authorized_human": {
            "const": true,
            "default": true,
            "title": "Decision Requires Authorized Human",
            "type": "boolean"
          },
          "forbidden_inputs": {
            "default": [
              "learner_identity",
              "enrollment",
              "grade",
              "attempt",
              "accommodation_record",
              "demographic_profile",
              "inferred_protected_trait"
            ],
            "items": {
              "enum": [
                "learner_identity",
                "enrollment",
                "grade",
                "attempt",
                "accommodation_record",
                "demographic_profile",
                "inferred_protected_trait"
              ],
              "type": "string"
            },
            "title": "Forbidden Inputs",
            "type": "array"
          },
          "infer_protected_traits": {
            "const": false,
            "default": false,
            "title": "Infer Protected Traits",
            "type": "boolean"
          },
          "persist_input_excerpt": {
            "const": false,
            "default": false,
            "title": "Persist Input Excerpt",
            "type": "boolean"
          },
          "policy_id": {
            "const": "metis.inclusivity.no-protected-learner-data",
            "default": "metis.inclusivity.no-protected-learner-data",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Policy Version",
            "type": "string"
          },
          "provider_transmission": {
            "const": false,
            "default": false,
            "title": "Provider Transmission",
            "type": "boolean"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["rationale"],
        "title": "LessonInclusivityProtectedDataPolicy",
        "type": "object"
      },
      "LessonInclusivityReviewReceipt": {
        "additionalProperties": false,
        "properties": {
          "analysis_id": {
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "decision": {
            "enum": ["accept", "reject", "reframe", "request_specialist"],
            "title": "Decision",
            "type": "string"
          },
          "finding_id": {
            "title": "Finding Id",
            "type": "string"
          },
          "finding_mutated": {
            "const": false,
            "default": false,
            "title": "Finding Mutated",
            "type": "boolean"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "subject_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Set Sha256",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "analysis_id",
          "analysis_sha256",
          "finding_id",
          "decision",
          "subject_set_sha256",
          "changed_paths"
        ],
        "title": "LessonInclusivityReviewReceipt",
        "type": "object"
      },
      "LessonInclusivityReviewRecord": {
        "additionalProperties": false,
        "properties": {
          "analysis_id": {
            "pattern": "^inclusivity-analysis-[a-f0-9]{24}$",
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "config_id": {
            "title": "Config Id",
            "type": "string"
          },
          "config_version": {
            "title": "Config Version",
            "type": "string"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "decision": {
            "enum": ["accept", "reject", "reframe", "request_specialist"],
            "title": "Decision",
            "type": "string"
          },
          "disagreement": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disagreement"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "evaluator_id": {
            "title": "Evaluator Id",
            "type": "string"
          },
          "evaluator_proposal": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Evaluator Proposal",
            "type": "string"
          },
          "evaluator_version": {
            "title": "Evaluator Version",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^inclusivity-finding-[a-f0-9]{24}$",
            "title": "Finding Id",
            "type": "string"
          },
          "finding_mutated": {
            "const": false,
            "default": false,
            "title": "Finding Mutated",
            "type": "boolean"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          },
          "proposed_reframe": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Reframe"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "review_id": {
            "pattern": "^inclusivity-review-[A-Za-z0-9-]{8,80}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "enum": ["instructor", "admin"],
            "title": "Reviewer Role",
            "type": "string"
          },
          "specialist_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Specialist Domain"
          },
          "subject_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Set Sha256",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "analysis_id",
          "analysis_sha256",
          "finding_id",
          "evaluator_id",
          "evaluator_version",
          "config_id",
          "config_version",
          "lesson_revision",
          "module_revision",
          "course_revision",
          "dossier_revision",
          "dossier_sha256",
          "block_document_sha256",
          "subject_set_sha256",
          "decision",
          "reason",
          "evaluator_proposal",
          "reviewer_id",
          "reviewer_role",
          "reviewed_at"
        ],
        "title": "LessonInclusivityReviewRecord",
        "type": "object"
      },
      "LessonInclusivityReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonInclusivityAnalysisContext"
          },
          "decision": {
            "enum": ["accept", "reject", "reframe", "request_specialist"],
            "title": "Decision",
            "type": "string"
          },
          "disagreement": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disagreement"
          },
          "expected_analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Analysis Sha256",
            "type": "string"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "finding_id": {
            "pattern": "^inclusivity-finding-[a-f0-9]{24}$",
            "title": "Finding Id",
            "type": "string"
          },
          "proposed_reframe": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Reframe"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "specialist_domain": {
            "anyOf": [
              {
                "enum": [
                  "inclusive_pedagogy",
                  "cultural_linguistics",
                  "accessibility",
                  "assessment_validity",
                  "institution_policy"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Specialist Domain"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "expected_analysis_sha256",
          "context",
          "finding_id",
          "decision",
          "reason"
        ],
        "title": "LessonInclusivityReviewRequest",
        "type": "object"
      },
      "LessonInclusivityReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "receipt": {
            "$ref": "#/components/schemas/LessonInclusivityReviewReceipt"
          }
        },
        "required": ["projection", "receipt"],
        "title": "LessonInclusivityReviewResponse",
        "type": "object"
      },
      "LessonInclusivityUnitResult": {
        "additionalProperties": false,
        "properties": {
          "anchor": {
            "$ref": "#/components/schemas/LessonInclusivityAnchor"
          },
          "applicability": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Applicability",
            "type": "string"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "reason_code": {
            "enum": [
              "analyzed",
              "unsupported_language",
              "unsupported_locale",
              "unsupported_content_kind",
              "quoted_source",
              "historical_evidence",
              "configured_exclusion",
              "no_analyzable_text",
              "missing_revision_metadata",
              "invalid_subject"
            ],
            "title": "Reason Code",
            "type": "string"
          },
          "status": {
            "enum": ["analyzed", "not_applicable", "error"],
            "title": "Status",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "anchor",
          "status",
          "applicability",
          "reason_code",
          "findings",
          "assumptions",
          "uncertainty"
        ],
        "title": "LessonInclusivityUnitResult",
        "type": "object"
      },
      "LessonInclusivityWitness": {
        "additionalProperties": false,
        "properties": {
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "title": "Module Id",
            "type": "string"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          },
          "subject_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Set Sha256",
            "type": "string"
          }
        },
        "required": [
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "dossier_revision",
          "dossier_sha256",
          "block_document_sha256",
          "subject_set_sha256"
        ],
        "title": "LessonInclusivityWitness",
        "type": "object"
      },
      "LessonInteractionBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "activity_id": {
            "pattern": "^[a-z][a-z0-9-]{2,79}$",
            "title": "Activity Id",
            "type": "string"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "capability_ids": {
            "items": {
              "enum": ["pointer", "keyboard", "audio-output", "fullscreen"],
              "type": "string"
            },
            "title": "Capability Ids",
            "type": "array"
          },
          "configuration": {
            "$ref": "#/components/schemas/LessonActivityConfiguration"
          },
          "instructions": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Instructions",
            "type": "string"
          },
          "kind": {
            "const": "interaction",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "non_interactive_alternative": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Non Interactive Alternative",
            "type": "string"
          },
          "non_interactive_equivalent": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonActivityNonInteractiveEquivalent"
              },
              {
                "type": "null"
              }
            ]
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "runtime_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Runtime Version",
            "type": "string"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "block_id",
          "position",
          "accessibility",
          "kind",
          "activity_id",
          "runtime_version",
          "title",
          "instructions",
          "configuration",
          "capability_ids",
          "non_interactive_alternative"
        ],
        "title": "LessonInteractionBlock",
        "type": "object"
      },
      "LessonLoadRange": {
        "additionalProperties": false,
        "properties": {
          "expected": {
            "pattern": "^(?:[0-4](?:\\.\\d{1,2})?|5(?:\\.0{1,2})?)$",
            "title": "Expected",
            "type": "string"
          },
          "lower": {
            "pattern": "^(?:[0-4](?:\\.\\d{1,2})?|5(?:\\.0{1,2})?)$",
            "title": "Lower",
            "type": "string"
          },
          "upper": {
            "pattern": "^(?:[0-4](?:\\.\\d{1,2})?|5(?:\\.0{1,2})?)$",
            "title": "Upper",
            "type": "string"
          }
        },
        "required": ["lower", "expected", "upper"],
        "title": "LessonLoadRange",
        "type": "object"
      },
      "LessonLoadVector": {
        "additionalProperties": false,
        "properties": {
          "extraneous": {
            "$ref": "#/components/schemas/LessonLoadRange"
          },
          "germane": {
            "$ref": "#/components/schemas/LessonLoadRange"
          },
          "interpretation": {
            "const": "planning_proxy_not_observed_learner_state",
            "default": "planning_proxy_not_observed_learner_state",
            "title": "Interpretation",
            "type": "string"
          },
          "intrinsic": {
            "$ref": "#/components/schemas/LessonLoadRange"
          },
          "unit": {
            "const": "planning_point_0_to_5",
            "default": "planning_point_0_to_5",
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["intrinsic", "extraneous", "germane"],
        "title": "LessonLoadVector",
        "type": "object"
      },
      "LessonMathLearnerSemantics": {
        "additionalProperties": false,
        "properties": {
          "braille_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Braille Text",
            "type": "string"
          },
          "equation_number": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Equation Number",
            "type": "string"
          },
          "image_fallback_alt": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Fallback Alt"
          },
          "image_fallback_ref": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Fallback Ref"
          },
          "kind": {
            "const": "equation",
            "default": "equation",
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "mathml": {
            "maxLength": 100000,
            "minLength": 7,
            "title": "Mathml",
            "type": "string"
          },
          "plain_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Plain Text",
            "type": "string"
          },
          "raster_only": {
            "const": false,
            "default": false,
            "title": "Raster Only",
            "type": "boolean"
          },
          "semantic_tree": {
            "$ref": "#/components/schemas/LessonMathSemanticNode"
          },
          "speech_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Speech Text",
            "type": "string"
          },
          "variables": {
            "items": {
              "$ref": "#/components/schemas/LessonMathVariable"
            },
            "title": "Variables",
            "type": "array"
          }
        },
        "required": [
          "mathml",
          "semantic_tree",
          "label",
          "equation_number",
          "variables",
          "speech_text",
          "braille_text",
          "plain_text"
        ],
        "title": "LessonMathLearnerSemantics",
        "type": "object"
      },
      "LessonMathSemanticNode": {
        "additionalProperties": false,
        "properties": {
          "children": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonMathSemanticNode"
            },
            "title": "Children",
            "type": "array"
          },
          "element": {
            "pattern": "^[a-z][a-z0-9]*$",
            "title": "Element",
            "type": "string"
          },
          "node_id": {
            "pattern": "^math(?:\\.[0-9]+)*$",
            "title": "Node Id",
            "type": "string"
          },
          "role": {
            "enum": [
              "math",
              "row",
              "identifier",
              "number",
              "operator",
              "text",
              "string",
              "space",
              "fraction",
              "root",
              "script",
              "under_over",
              "table",
              "table_row",
              "table_cell",
              "fenced"
            ],
            "title": "Role",
            "type": "string"
          },
          "text": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "required": ["node_id", "element", "role"],
        "title": "LessonMathSemanticNode",
        "type": "object"
      },
      "LessonMathVariable": {
        "additionalProperties": false,
        "properties": {
          "meaning": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Meaning",
            "type": "string"
          },
          "symbol": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Symbol",
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          },
          "unit_system": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit System"
          }
        },
        "required": ["symbol", "meaning"],
        "title": "LessonMathVariable",
        "type": "object"
      },
      "LessonMediaDeliveryVariant": {
        "additionalProperties": false,
        "properties": {
          "byte_length": {
            "title": "Byte Length",
            "type": "integer"
          },
          "capabilities": {
            "items": {
              "enum": ["online", "offline", "low-bandwidth"],
              "type": "string"
            },
            "title": "Capabilities",
            "type": "array"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms"
          },
          "height": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Height"
          },
          "locator": {
            "title": "Locator",
            "type": "string"
          },
          "media_type": {
            "title": "Media Type",
            "type": "string"
          },
          "rendition_id": {
            "title": "Rendition Id",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "poster", "thumbnail", "offline", "low-bandwidth"],
            "title": "Role",
            "type": "string"
          },
          "width": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Width"
          }
        },
        "required": [
          "rendition_id",
          "role",
          "media_type",
          "content_sha256",
          "byte_length",
          "width",
          "height",
          "duration_ms",
          "locator",
          "capabilities"
        ],
        "title": "LessonMediaDeliveryVariant",
        "type": "object"
      },
      "LessonMediaLearnerRender": {
        "additionalProperties": false,
        "properties": {
          "alt_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alt Text"
          },
          "audio_description_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Description Ref"
          },
          "authority": {
            "const": "isis",
            "default": "isis",
            "title": "Authority",
            "type": "string"
          },
          "captions_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Captions Ref"
          },
          "lifecycle": {
            "enum": ["eligible", "withheld"],
            "title": "Lifecycle",
            "type": "string"
          },
          "long_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Long Description"
          },
          "media_kind": {
            "enum": ["image", "audio", "video"],
            "title": "Media Kind",
            "type": "string"
          },
          "permissions": {
            "items": {
              "enum": ["online", "offline", "low-bandwidth"],
              "type": "string"
            },
            "title": "Permissions",
            "type": "array"
          },
          "primary": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonMediaDeliveryVariant"
              },
              {
                "type": "null"
              }
            ]
          },
          "provenance_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provenance Ref"
          },
          "release_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Release Expires At"
          },
          "rights_evidence_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rights Evidence Ref"
          },
          "sign_language_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Language Ref"
          },
          "source_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ref"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "text_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Description"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "transcript_ref": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Ref"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/LessonMediaDeliveryVariant"
            },
            "title": "Variants",
            "type": "array"
          },
          "withheld_reason_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Withheld Reason Codes",
            "type": "array"
          }
        },
        "required": [
          "lifecycle",
          "title",
          "summary",
          "media_kind",
          "primary",
          "variants",
          "source_ref",
          "rights_evidence_ref",
          "provenance_ref",
          "alt_text",
          "long_description",
          "transcript_ref",
          "captions_ref",
          "audio_description_ref",
          "sign_language_ref",
          "text_description",
          "permissions",
          "release_expires_at"
        ],
        "title": "LessonMediaLearnerRender",
        "type": "object"
      },
      "LessonPracticeBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "assessment_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessment Id"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "feedback_policy": {
            "enum": ["none", "instructor", "rubric", "completion_only"],
            "title": "Feedback Policy",
            "type": "string"
          },
          "kind": {
            "const": "practice",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "prompt": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Prompt",
            "type": "string"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "response_mode": {
            "enum": ["short_text", "long_text", "choice", "upload", "performance"],
            "title": "Response Mode",
            "type": "string"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          }
        },
        "required": [
          "block_id",
          "position",
          "accessibility",
          "kind",
          "prompt",
          "response_mode",
          "feedback_policy"
        ],
        "title": "LessonPracticeBlock",
        "type": "object"
      },
      "LessonProseBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "body": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "emphasis": {
            "default": "standard",
            "enum": ["standard", "lead", "aside"],
            "title": "Emphasis",
            "type": "string"
          },
          "kind": {
            "const": "prose",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          }
        },
        "required": ["block_id", "position", "accessibility", "kind", "body"],
        "title": "LessonProseBlock",
        "type": "object"
      },
      "LessonReadabilityAnalysis": {
        "additionalProperties": false,
        "properties": {
          "analysis_id": {
            "pattern": "^readability-analysis-[a-f0-9]{24}$",
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "analyzed_at": {
            "format": "date-time",
            "title": "Analyzed At",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/LessonReadabilityAnalysisContext"
          },
          "policy_result": {
            "$ref": "#/components/schemas/LessonReadabilityPolicyResult"
          },
          "profile": {
            "$ref": "#/components/schemas/LessonReadabilityProfile"
          },
          "raw_evidence": {
            "$ref": "#/components/schemas/LessonReadabilityRawEvidence"
          },
          "schema_version": {
            "const": "1.1.0",
            "default": "1.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/LessonReadabilityWitness"
          }
        },
        "required": [
          "analysis_id",
          "analysis_sha256",
          "witness",
          "context",
          "profile",
          "raw_evidence",
          "policy_result",
          "analyzed_at"
        ],
        "title": "LessonReadabilityAnalysis",
        "type": "object"
      },
      "LessonReadabilityAnalysisContext": {
        "additionalProperties": false,
        "properties": {
          "audience_age_max": {
            "default": 18,
            "maximum": 120.0,
            "minimum": 0.0,
            "title": "Audience Age Max",
            "type": "integer"
          },
          "audience_age_min": {
            "default": 14,
            "maximum": 120.0,
            "minimum": 0.0,
            "title": "Audience Age Min",
            "type": "integer"
          },
          "block_contexts": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityBlockContext"
            },
            "maxItems": 10000,
            "title": "Block Contexts",
            "type": "array"
          },
          "block_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Block Ids",
            "type": "array"
          },
          "content_kind": {
            "const": "lesson_authoring",
            "default": "lesson_authoring",
            "title": "Content Kind",
            "type": "string"
          },
          "grade_band": {
            "default": "grade_9_10",
            "enum": ["grade_6_8", "grade_9_10", "grade_11_12", "adult"],
            "title": "Grade Band",
            "type": "string"
          },
          "locale": {
            "default": "en-US",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.secondary-advisory",
            "default": "metis.secondary-advisory",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Policy Version",
            "type": "string"
          },
          "protected_terms": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityProtectedTerm"
            },
            "maxItems": 10000,
            "title": "Protected Terms",
            "type": "array"
          }
        },
        "title": "LessonReadabilityAnalysisContext",
        "type": "object"
      },
      "LessonReadabilityAnalysisRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonReadabilityAnalysisContext"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "context"
        ],
        "title": "LessonReadabilityAnalysisRequest",
        "type": "object"
      },
      "LessonReadabilityBlockContext": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "treatment": {
            "default": "analyze",
            "enum": [
              "analyze",
              "intentional_complexity",
              "quoted_source",
              "multilingual_intentional"
            ],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["block_id"],
        "title": "LessonReadabilityBlockContext",
        "type": "object"
      },
      "LessonReadabilityBlockEvidence": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "block_kind": {
            "enum": [
              "prose",
              "callout",
              "example",
              "equation",
              "code",
              "image",
              "audio",
              "video",
              "interaction",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Block Kind",
            "type": "string"
          },
          "character_count": {
            "minimum": 0.0,
            "title": "Character Count",
            "type": "integer"
          },
          "distributions": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityDistribution"
            },
            "title": "Distributions",
            "type": "array"
          },
          "excluded_regions": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityRegion"
            },
            "title": "Excluded Regions",
            "type": "array"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "measures": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityMeasure"
            },
            "title": "Measures",
            "type": "array"
          },
          "regions": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityRegion"
            },
            "title": "Regions",
            "type": "array"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          },
          "unavailable_measures": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityUnavailableMeasure"
            },
            "title": "Unavailable Measures",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "block_id",
          "block_kind",
          "locale",
          "text_sha256",
          "character_count",
          "measures",
          "unavailable_measures",
          "distributions",
          "regions",
          "excluded_regions",
          "assumptions",
          "uncertainty"
        ],
        "title": "LessonReadabilityBlockEvidence",
        "type": "object"
      },
      "LessonReadabilityContentRule": {
        "additionalProperties": false,
        "properties": {
          "block_kind": {
            "enum": [
              "prose",
              "callout",
              "example",
              "equation",
              "code",
              "image",
              "audio",
              "video",
              "interaction",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Block Kind",
            "type": "string"
          },
          "disposition": {
            "enum": ["analyze_named_fields", "not_applicable"],
            "title": "Disposition",
            "type": "string"
          },
          "field_paths": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Field Paths",
            "type": "array"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["block_kind", "disposition", "field_paths", "rationale"],
        "title": "LessonReadabilityContentRule",
        "type": "object"
      },
      "LessonReadabilityDistribution": {
        "additionalProperties": false,
        "properties": {
          "distribution": {
            "enum": [
              "eligible_words_per_sentence",
              "heuristic_syllables_per_eligible_word",
              "subordinate_markers_per_sentence",
              "clause_proxy_per_sentence"
            ],
            "title": "Distribution",
            "type": "string"
          },
          "excluded_observation_count": {
            "minimum": 0.0,
            "title": "Excluded Observation Count",
            "type": "integer"
          },
          "formula_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Formula Version",
            "type": "string"
          },
          "frequency_points": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityDistributionPoint"
            },
            "title": "Frequency Points",
            "type": "array"
          },
          "maximum": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum"
          },
          "mean": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mean"
          },
          "median": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Median"
          },
          "minimum": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum"
          },
          "not_applicable_reason": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Not Applicable Reason"
          },
          "percentile_25": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentile 25"
          },
          "percentile_75": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentile 75"
          },
          "percentile_90": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Percentile 90"
          },
          "percentile_method": {
            "const": "inclusive_linear_interpolation",
            "default": "inclusive_linear_interpolation",
            "title": "Percentile Method",
            "type": "string"
          },
          "population": {
            "enum": ["policy_eligible_sentences", "policy_eligible_words"],
            "title": "Population",
            "type": "string"
          },
          "sample_count": {
            "minimum": 0.0,
            "title": "Sample Count",
            "type": "integer"
          },
          "status": {
            "enum": ["computed", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "value_unit": {
            "enum": [
              "policy_eligible_words_per_sentence",
              "heuristic_syllables_per_policy_eligible_word",
              "subordinate_markers_per_sentence",
              "clause_proxy_per_sentence"
            ],
            "title": "Value Unit",
            "type": "string"
          }
        },
        "required": [
          "distribution",
          "population",
          "value_unit",
          "status",
          "sample_count",
          "excluded_observation_count",
          "frequency_points",
          "formula_version"
        ],
        "title": "LessonReadabilityDistribution",
        "type": "object"
      },
      "LessonReadabilityDistributionPoint": {
        "additionalProperties": false,
        "properties": {
          "frequency": {
            "minimum": 1.0,
            "title": "Frequency",
            "type": "integer"
          },
          "value": {
            "pattern": "^-?\\d+(?:\\.\\d+)?$",
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "frequency"],
        "title": "LessonReadabilityDistributionPoint",
        "type": "object"
      },
      "LessonReadabilityExclusionRule": {
        "additionalProperties": false,
        "properties": {
          "policy_treatment": {
            "const": "exclude",
            "default": "exclude",
            "title": "Policy Treatment",
            "type": "string"
          },
          "raw_treatment": {
            "enum": ["return_not_applicable", "retain_and_mark"],
            "title": "Raw Treatment",
            "type": "string"
          },
          "rule_id": {
            "enum": [
              "block.non_prose_kind",
              "block.locale_mismatch",
              "block.author_intentional_context",
              "span.quotation",
              "span.declared_protected_term",
              "word.likely_acronym",
              "word.likely_proper_noun"
            ],
            "title": "Rule Id",
            "type": "string"
          },
          "scope": {
            "enum": ["block", "span", "word"],
            "title": "Scope",
            "type": "string"
          },
          "specification": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Specification",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["rule_id", "scope", "raw_treatment", "version", "specification"],
        "title": "LessonReadabilityExclusionRule",
        "type": "object"
      },
      "LessonReadabilityLimit": {
        "additionalProperties": false,
        "properties": {
          "limit_id": {
            "enum": ["maximum_blocks", "maximum_analyzed_characters"],
            "title": "Limit Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "unit": {
            "enum": ["blocks", "characters"],
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "minimum": 1.0,
            "title": "Value",
            "type": "integer"
          }
        },
        "required": ["limit_id", "value", "unit", "rationale"],
        "title": "LessonReadabilityLimit",
        "type": "object"
      },
      "LessonReadabilityMeasure": {
        "additionalProperties": false,
        "properties": {
          "feature_group": {
            "enum": [
              "token",
              "sentence",
              "word",
              "syllable",
              "lexical",
              "syntactic",
              "cohesion",
              "domain"
            ],
            "title": "Feature Group",
            "type": "string"
          },
          "formula_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Formula Version",
            "type": "string"
          },
          "metric": {
            "enum": [
              "token_count",
              "sentence_count",
              "word_count",
              "syllable_count",
              "policy_eligible_sentence_count",
              "policy_eligible_word_count",
              "policy_eligible_syllable_count",
              "unique_word_count",
              "complex_word_count",
              "complex_word_ratio",
              "type_token_ratio",
              "mean_words_per_sentence",
              "maximum_words_per_sentence",
              "subordinate_marker_count",
              "mean_clauses_per_sentence",
              "adjacent_sentence_overlap",
              "domain_term_count",
              "flesch_reading_ease",
              "flesch_kincaid_grade"
            ],
            "title": "Metric",
            "type": "string"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "pattern": "^-?\\d+(?:\\.\\d+)?$",
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["metric", "feature_group", "value", "unit", "formula_version"],
        "title": "LessonReadabilityMeasure",
        "type": "object"
      },
      "LessonReadabilityMethodVersion": {
        "additionalProperties": false,
        "properties": {
          "component": {
            "enum": [
              "formula_set",
              "feature_set",
              "tokenizer",
              "sentence_segmenter",
              "normalization"
            ],
            "title": "Component",
            "type": "string"
          },
          "component_id": {
            "pattern": "^metis\\.[a-z0-9._-]{3,119}$",
            "title": "Component Id",
            "type": "string"
          },
          "specification": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Specification",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["component", "component_id", "version", "specification"],
        "title": "LessonReadabilityMethodVersion",
        "type": "object"
      },
      "LessonReadabilityMetricDefinition": {
        "additionalProperties": false,
        "properties": {
          "feature_group": {
            "enum": [
              "token",
              "sentence",
              "word",
              "syllable",
              "lexical",
              "syntactic",
              "cohesion",
              "domain"
            ],
            "title": "Feature Group",
            "type": "string"
          },
          "formula": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Formula",
            "type": "string"
          },
          "formula_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Formula Version",
            "type": "string"
          },
          "limitation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Limitation",
            "type": "string"
          },
          "metric": {
            "enum": [
              "token_count",
              "sentence_count",
              "word_count",
              "syllable_count",
              "policy_eligible_sentence_count",
              "policy_eligible_word_count",
              "policy_eligible_syllable_count",
              "unique_word_count",
              "complex_word_count",
              "complex_word_ratio",
              "type_token_ratio",
              "mean_words_per_sentence",
              "maximum_words_per_sentence",
              "subordinate_marker_count",
              "mean_clauses_per_sentence",
              "adjacent_sentence_overlap",
              "domain_term_count",
              "flesch_reading_ease",
              "flesch_kincaid_grade"
            ],
            "title": "Metric",
            "type": "string"
          },
          "unit": {
            "enum": [
              "count",
              "ratio",
              "words_per_sentence",
              "clauses_per_sentence",
              "score",
              "grade"
            ],
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["metric", "feature_group", "unit", "formula", "formula_version", "limitation"],
        "title": "LessonReadabilityMetricDefinition",
        "type": "object"
      },
      "LessonReadabilityNotApplicable": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "block_kind": {
            "enum": [
              "prose",
              "callout",
              "example",
              "equation",
              "code",
              "image",
              "audio",
              "video",
              "interaction",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Block Kind",
            "type": "string"
          },
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "reason_code": {
            "enum": [
              "unsupported_language",
              "unsupported_locale",
              "unsupported_audience",
              "unsupported_content_kind",
              "locale_mismatch",
              "intentional_complexity",
              "quoted_source",
              "multilingual_intentional",
              "no_analyzable_text"
            ],
            "title": "Reason Code",
            "type": "string"
          }
        },
        "required": ["block_id", "block_kind", "locale", "reason_code", "explanation"],
        "title": "LessonReadabilityNotApplicable",
        "type": "object"
      },
      "LessonReadabilityPolicyEvaluation": {
        "additionalProperties": false,
        "properties": {
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "metric": {
            "enum": [
              "token_count",
              "sentence_count",
              "word_count",
              "syllable_count",
              "policy_eligible_sentence_count",
              "policy_eligible_word_count",
              "policy_eligible_syllable_count",
              "unique_word_count",
              "complex_word_count",
              "complex_word_ratio",
              "type_token_ratio",
              "mean_words_per_sentence",
              "maximum_words_per_sentence",
              "subordinate_marker_count",
              "mean_clauses_per_sentence",
              "adjacent_sentence_overlap",
              "domain_term_count",
              "flesch_reading_ease",
              "flesch_kincaid_grade"
            ],
            "title": "Metric",
            "type": "string"
          },
          "observed_value": {
            "anyOf": [
              {
                "pattern": "^-?\\d+(?:\\.\\d+)?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Value"
          },
          "status": {
            "enum": ["within_band", "advisory", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "threshold_id": {
            "title": "Threshold Id",
            "type": "string"
          },
          "threshold_value": {
            "pattern": "^-?\\d+(?:\\.\\d+)?$",
            "title": "Threshold Value",
            "type": "string"
          },
          "unit": {
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["threshold_id", "metric", "threshold_value", "unit", "status", "explanation"],
        "title": "LessonReadabilityPolicyEvaluation",
        "type": "object"
      },
      "LessonReadabilityPolicyResult": {
        "additionalProperties": false,
        "properties": {
          "advisory_only": {
            "const": true,
            "default": true,
            "title": "Advisory Only",
            "type": "boolean"
          },
          "aggregate_score": {
            "const": "not_computed",
            "default": "not_computed",
            "title": "Aggregate Score",
            "type": "string"
          },
          "evaluations": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityPolicyEvaluation"
            },
            "title": "Evaluations",
            "type": "array"
          },
          "policy_id": {
            "const": "metis.secondary-advisory",
            "default": "metis.secondary-advisory",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Policy Version",
            "type": "string"
          },
          "suggestions": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilitySuggestion"
            },
            "title": "Suggestions",
            "type": "array"
          }
        },
        "required": ["evaluations", "suggestions"],
        "title": "LessonReadabilityPolicyResult",
        "type": "object"
      },
      "LessonReadabilityPolicyThreshold": {
        "additionalProperties": false,
        "properties": {
          "comparison": {
            "enum": ["maximum", "minimum"],
            "title": "Comparison",
            "type": "string"
          },
          "label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "metric": {
            "enum": [
              "token_count",
              "sentence_count",
              "word_count",
              "syllable_count",
              "policy_eligible_sentence_count",
              "policy_eligible_word_count",
              "policy_eligible_syllable_count",
              "unique_word_count",
              "complex_word_count",
              "complex_word_ratio",
              "type_token_ratio",
              "mean_words_per_sentence",
              "maximum_words_per_sentence",
              "subordinate_marker_count",
              "mean_clauses_per_sentence",
              "adjacent_sentence_overlap",
              "domain_term_count",
              "flesch_reading_ease",
              "flesch_kincaid_grade"
            ],
            "title": "Metric",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "threshold_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,119}$",
            "title": "Threshold Id",
            "type": "string"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "pattern": "^-?\\d+(?:\\.\\d+)?$",
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["threshold_id", "metric", "comparison", "value", "unit", "label", "rationale"],
        "title": "LessonReadabilityPolicyThreshold",
        "type": "object"
      },
      "LessonReadabilityProfile": {
        "additionalProperties": false,
        "properties": {
          "aggregate_score": {
            "const": "not_computed",
            "default": "not_computed",
            "title": "Aggregate Score",
            "type": "string"
          },
          "analyzed_content_kinds": {
            "items": {
              "enum": [
                "prose",
                "callout",
                "example",
                "equation",
                "code",
                "image",
                "audio",
                "video",
                "interaction",
                "practice",
                "reflection",
                "assessment_link"
              ],
              "type": "string"
            },
            "title": "Analyzed Content Kinds",
            "type": "array"
          },
          "automatically_not_applicable_content_kinds": {
            "items": {
              "enum": [
                "prose",
                "callout",
                "example",
                "equation",
                "code",
                "image",
                "audio",
                "video",
                "interaction",
                "practice",
                "reflection",
                "assessment_link"
              ],
              "type": "string"
            },
            "title": "Automatically Not Applicable Content Kinds",
            "type": "array"
          },
          "content_rules": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityContentRule"
            },
            "title": "Content Rules",
            "type": "array"
          },
          "engine_id": {
            "const": "metis.english-readability",
            "default": "metis.english-readability",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_source": {
            "const": "server_local_deterministic",
            "default": "server_local_deterministic",
            "title": "Engine Source",
            "type": "string"
          },
          "engine_version": {
            "const": "2.0.0",
            "default": "2.0.0",
            "title": "Engine Version",
            "type": "string"
          },
          "exclusion_rules": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityExclusionRule"
            },
            "title": "Exclusion Rules",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "limits": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityLimit"
            },
            "title": "Limits",
            "type": "array"
          },
          "method_versions": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityMethodVersion"
            },
            "title": "Method Versions",
            "type": "array"
          },
          "metric_definitions": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityMetricDefinition"
            },
            "title": "Metric Definitions",
            "type": "array"
          },
          "policy_id": {
            "const": "metis.secondary-advisory",
            "default": "metis.secondary-advisory",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_thresholds": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityPolicyThreshold"
            },
            "title": "Policy Thresholds",
            "type": "array"
          },
          "policy_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Policy Version",
            "type": "string"
          },
          "schema_version": {
            "const": "1.1.0",
            "default": "1.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "supported_age_max": {
            "default": 120,
            "title": "Supported Age Max",
            "type": "integer"
          },
          "supported_age_min": {
            "default": 11,
            "title": "Supported Age Min",
            "type": "integer"
          },
          "supported_grade_bands": {
            "default": ["grade_6_8", "grade_9_10", "grade_11_12", "adult"],
            "items": {
              "enum": ["grade_6_8", "grade_9_10", "grade_11_12", "adult"],
              "type": "string"
            },
            "title": "Supported Grade Bands",
            "type": "array"
          },
          "supported_languages": {
            "default": ["en"],
            "items": {
              "const": "en",
              "type": "string"
            },
            "title": "Supported Languages",
            "type": "array"
          },
          "supported_locales": {
            "default": ["en", "en-US", "en-GB"],
            "items": {
              "type": "string"
            },
            "title": "Supported Locales",
            "type": "array"
          }
        },
        "required": [
          "analyzed_content_kinds",
          "automatically_not_applicable_content_kinds",
          "method_versions",
          "content_rules",
          "exclusion_rules",
          "metric_definitions",
          "policy_thresholds",
          "limits",
          "limitations"
        ],
        "title": "LessonReadabilityProfile",
        "type": "object"
      },
      "LessonReadabilityProtectedTerm": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": ["proper_noun", "technical_term", "domain_term", "acronym"],
            "title": "Category",
            "type": "string"
          },
          "match": {
            "default": "case_insensitive",
            "enum": ["case_sensitive", "case_insensitive"],
            "title": "Match",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "term": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["term", "category", "rationale"],
        "title": "LessonReadabilityProtectedTerm",
        "type": "object"
      },
      "LessonReadabilityRawEvidence": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "blocks": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityBlockEvidence"
            },
            "title": "Blocks",
            "type": "array"
          },
          "lesson_distributions": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityDistribution"
            },
            "title": "Lesson Distributions",
            "type": "array"
          },
          "lesson_measures": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityMeasure"
            },
            "title": "Lesson Measures",
            "type": "array"
          },
          "not_applicable": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityNotApplicable"
            },
            "title": "Not Applicable",
            "type": "array"
          },
          "unavailable_lesson_measures": {
            "items": {
              "$ref": "#/components/schemas/LessonReadabilityUnavailableMeasure"
            },
            "title": "Unavailable Lesson Measures",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "lesson_measures",
          "unavailable_lesson_measures",
          "lesson_distributions",
          "blocks",
          "not_applicable",
          "assumptions",
          "uncertainty"
        ],
        "title": "LessonReadabilityRawEvidence",
        "type": "object"
      },
      "LessonReadabilityRegion": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "end_offset": {
            "exclusiveMinimum": 0.0,
            "title": "End Offset",
            "type": "integer"
          },
          "excerpt": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Excerpt",
            "type": "string"
          },
          "explanation": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "feature": {
            "enum": [
              "sentence",
              "complex_word",
              "subordinate_marker",
              "cohesion_gap",
              "protected_term",
              "quotation"
            ],
            "title": "Feature",
            "type": "string"
          },
          "field_path": {
            "pattern": "^/",
            "title": "Field Path",
            "type": "string"
          },
          "region_id": {
            "pattern": "^readability-region-[a-f0-9]{24}$",
            "title": "Region Id",
            "type": "string"
          },
          "start_offset": {
            "minimum": 0.0,
            "title": "Start Offset",
            "type": "integer"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "pattern": "^-?\\d+(?:\\.\\d+)?$",
            "title": "Value",
            "type": "string"
          }
        },
        "required": [
          "region_id",
          "block_id",
          "field_path",
          "start_offset",
          "end_offset",
          "excerpt",
          "feature",
          "value",
          "unit",
          "explanation"
        ],
        "title": "LessonReadabilityRegion",
        "type": "object"
      },
      "LessonReadabilityReviewReceipt": {
        "additionalProperties": false,
        "properties": {
          "analysis_id": {
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "decision": {
            "enum": ["accept", "dismiss", "revise"],
            "title": "Decision",
            "type": "string"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "suggestion_ids": {
            "items": {
              "type": "string"
            },
            "title": "Suggestion Ids",
            "type": "array"
          }
        },
        "required": [
          "review_id",
          "analysis_id",
          "analysis_sha256",
          "decision",
          "suggestion_ids",
          "changed_paths"
        ],
        "title": "LessonReadabilityReviewReceipt",
        "type": "object"
      },
      "LessonReadabilityReviewRecord": {
        "additionalProperties": false,
        "properties": {
          "analysis_id": {
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "block_ids": {
            "items": {
              "type": "string"
            },
            "title": "Block Ids",
            "type": "array"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "decision": {
            "enum": ["accept", "dismiss", "revise"],
            "title": "Decision",
            "type": "string"
          },
          "engine_id": {
            "const": "metis.english-readability",
            "default": "metis.english-readability",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "default": "2.0.0",
            "enum": ["1.0.0", "2.0.0"],
            "title": "Engine Version",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.secondary-advisory",
            "default": "metis.secondary-advisory",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Policy Version",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "review_id": {
            "pattern": "^readability-review-[A-Za-z0-9-]{8,80}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "enum": ["instructor", "admin"],
            "title": "Reviewer Role",
            "type": "string"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "suggestion_ids": {
            "items": {
              "type": "string"
            },
            "title": "Suggestion Ids",
            "type": "array"
          }
        },
        "required": [
          "review_id",
          "analysis_id",
          "analysis_sha256",
          "block_document_sha256",
          "block_ids",
          "decision",
          "suggestion_ids",
          "reason",
          "reviewer_id",
          "reviewer_role",
          "reviewed_at"
        ],
        "title": "LessonReadabilityReviewRecord",
        "type": "object"
      },
      "LessonReadabilityReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonReadabilityAnalysisContext"
          },
          "decision": {
            "enum": ["accept", "dismiss", "revise"],
            "title": "Decision",
            "type": "string"
          },
          "expected_analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Analysis Sha256",
            "type": "string"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "suggestion_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Suggestion Ids",
            "type": "array"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "expected_analysis_sha256",
          "context",
          "decision",
          "reason"
        ],
        "title": "LessonReadabilityReviewRequest",
        "type": "object"
      },
      "LessonReadabilityReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "receipt": {
            "$ref": "#/components/schemas/LessonReadabilityReviewReceipt"
          }
        },
        "required": ["projection", "receipt"],
        "title": "LessonReadabilityReviewResponse",
        "type": "object"
      },
      "LessonReadabilitySuggestion": {
        "additionalProperties": false,
        "properties": {
          "author_prompt": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Author Prompt",
            "type": "string"
          },
          "automatic_rewrite": {
            "const": false,
            "default": false,
            "title": "Automatic Rewrite",
            "type": "boolean"
          },
          "block_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block Id"
          },
          "category": {
            "enum": [
              "sentence_length",
              "lexical_complexity",
              "syntactic_complexity",
              "cohesion",
              "grade_fit"
            ],
            "title": "Category",
            "type": "string"
          },
          "evidence_metric": {
            "enum": [
              "token_count",
              "sentence_count",
              "word_count",
              "syllable_count",
              "policy_eligible_sentence_count",
              "policy_eligible_word_count",
              "policy_eligible_syllable_count",
              "unique_word_count",
              "complex_word_count",
              "complex_word_ratio",
              "type_token_ratio",
              "mean_words_per_sentence",
              "maximum_words_per_sentence",
              "subordinate_marker_count",
              "mean_clauses_per_sentence",
              "adjacent_sentence_overlap",
              "domain_term_count",
              "flesch_reading_ease",
              "flesch_kincaid_grade"
            ],
            "title": "Evidence Metric",
            "type": "string"
          },
          "priority": {
            "enum": ["consider", "review"],
            "title": "Priority",
            "type": "string"
          },
          "proposed_replacement": {
            "title": "Proposed Replacement",
            "type": "null"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "region_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Region Ids",
            "type": "array"
          },
          "suggestion_id": {
            "pattern": "^readability-suggestion-[a-f0-9]{24}$",
            "title": "Suggestion Id",
            "type": "string"
          }
        },
        "required": [
          "suggestion_id",
          "category",
          "priority",
          "evidence_metric",
          "rationale",
          "author_prompt"
        ],
        "title": "LessonReadabilitySuggestion",
        "type": "object"
      },
      "LessonReadabilityUnavailableMeasure": {
        "additionalProperties": false,
        "properties": {
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "metric": {
            "enum": [
              "token_count",
              "sentence_count",
              "word_count",
              "syllable_count",
              "policy_eligible_sentence_count",
              "policy_eligible_word_count",
              "policy_eligible_syllable_count",
              "unique_word_count",
              "complex_word_count",
              "complex_word_ratio",
              "type_token_ratio",
              "mean_words_per_sentence",
              "maximum_words_per_sentence",
              "subordinate_marker_count",
              "mean_clauses_per_sentence",
              "adjacent_sentence_overlap",
              "domain_term_count",
              "flesch_reading_ease",
              "flesch_kincaid_grade"
            ],
            "title": "Metric",
            "type": "string"
          },
          "reason_code": {
            "enum": [
              "no_policy_eligible_words",
              "no_policy_eligible_sentences",
              "no_adjacent_sentence_pairs"
            ],
            "title": "Reason Code",
            "type": "string"
          },
          "status": {
            "const": "not_applicable",
            "default": "not_applicable",
            "title": "Status",
            "type": "string"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          }
        },
        "required": ["metric", "reason_code", "unit", "explanation"],
        "title": "LessonReadabilityUnavailableMeasure",
        "type": "object"
      },
      "LessonReadabilityWitness": {
        "additionalProperties": false,
        "properties": {
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "title": "Module Id",
            "type": "string"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "dossier_revision",
          "dossier_sha256",
          "block_document_sha256"
        ],
        "title": "LessonReadabilityWitness",
        "type": "object"
      },
      "LessonReflectionBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "kind": {
            "const": "reflection",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "prompt": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Prompt",
            "type": "string"
          },
          "purpose": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "response_visibility": {
            "enum": ["private_to_learner", "instructor_review", "anonymous_aggregate"],
            "title": "Response Visibility",
            "type": "string"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          }
        },
        "required": [
          "block_id",
          "position",
          "accessibility",
          "kind",
          "prompt",
          "response_visibility",
          "purpose"
        ],
        "title": "LessonReflectionBlock",
        "type": "object"
      },
      "LessonResponse": {
        "description": "Lesson data returned in API responses.",
        "properties": {
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "content_type": {
            "title": "Content Type",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "evidence_bundle": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EvidenceBundleResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "is_free_preview": {
            "title": "Is Free Preview",
            "type": "boolean"
          },
          "is_published": {
            "title": "Is Published",
            "type": "boolean"
          },
          "maturity": {
            "default": "idea",
            "title": "Maturity",
            "type": "string"
          },
          "module_id": {
            "format": "uuid",
            "title": "Module Id",
            "type": "string"
          },
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "resource_urls": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Urls"
          },
          "revision": {
            "default": 1,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "content_type",
          "order",
          "is_published",
          "is_free_preview",
          "module_id",
          "created_at",
          "updated_at"
        ],
        "title": "LessonResponse",
        "type": "object"
      },
      "LessonRubricAssessorCriterionPreview": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "title": "Criterion Id",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "exemplars": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricAssessorExemplarPreview"
            },
            "title": "Exemplars",
            "type": "array"
          },
          "item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Item Ids",
            "type": "array"
          },
          "levels": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricAssessorLevelPreview"
            },
            "title": "Levels",
            "type": "array"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Objective Ids",
            "type": "array"
          },
          "required_evidence": {
            "items": {
              "type": "string"
            },
            "title": "Required Evidence",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "weight": {
            "title": "Weight",
            "type": "string"
          }
        },
        "required": [
          "criterion_id",
          "title",
          "description",
          "weight",
          "objective_ids",
          "item_ids",
          "required_evidence",
          "levels",
          "exemplars"
        ],
        "title": "LessonRubricAssessorCriterionPreview",
        "type": "object"
      },
      "LessonRubricAssessorExemplarPreview": {
        "additionalProperties": false,
        "properties": {
          "annotation": {
            "title": "Annotation",
            "type": "string"
          },
          "artifact_id": {
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_revision_id": {
            "title": "Artifact Revision Id",
            "type": "string"
          },
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "assessor_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessor Note"
          },
          "exemplar_id": {
            "title": "Exemplar Id",
            "type": "string"
          },
          "level_id": {
            "title": "Level Id",
            "type": "string"
          },
          "review_evidence_ref": {
            "title": "Review Evidence Ref",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          },
          "visibility": {
            "enum": ["learner", "assessor"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "exemplar_id",
          "artifact_id",
          "artifact_revision_id",
          "artifact_sha256",
          "level_id",
          "annotation",
          "visibility",
          "reviewer_id",
          "reviewed_at",
          "review_evidence_ref"
        ],
        "title": "LessonRubricAssessorExemplarPreview",
        "type": "object"
      },
      "LessonRubricAssessorLevelPreview": {
        "additionalProperties": false,
        "properties": {
          "assessor_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessor Note"
          },
          "descriptor": {
            "title": "Descriptor",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "level_id": {
            "title": "Level Id",
            "type": "string"
          },
          "points": {
            "title": "Points",
            "type": "integer"
          },
          "score_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Key"
          },
          "score_range": {
            "title": "Score Range",
            "type": "string"
          }
        },
        "required": ["level_id", "label", "descriptor", "points", "score_range"],
        "title": "LessonRubricAssessorLevelPreview",
        "type": "object"
      },
      "LessonRubricAssessorPreview": {
        "additionalProperties": false,
        "properties": {
          "caption": {
            "title": "Caption",
            "type": "string"
          },
          "columns": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricPreviewColumn"
            },
            "title": "Columns",
            "type": "array"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricAssessorCriterionPreview"
            },
            "title": "Criteria",
            "type": "array"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "nonvisual_summary": {
            "title": "Nonvisual Summary",
            "type": "string"
          },
          "role": {
            "const": "assessor",
            "default": "assessor",
            "title": "Role",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_revision_id": {
            "title": "Rubric Revision Id",
            "type": "string"
          },
          "rubric_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Sha256",
            "type": "string"
          },
          "scoring_method": {
            "const": "analytic_weighted_points",
            "title": "Scoring Method",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "rubric_id",
          "rubric_revision_id",
          "rubric_sha256",
          "title",
          "description",
          "locale",
          "scoring_method",
          "caption",
          "nonvisual_summary",
          "columns",
          "criteria",
          "generated_at"
        ],
        "title": "LessonRubricAssessorPreview",
        "type": "object"
      },
      "LessonRubricCriterionDraft": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "evidence_requirements": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricEvidenceRequirement"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Evidence Requirements",
            "type": "array"
          },
          "item_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Item Ids",
            "type": "array"
          },
          "levels": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricLevelDraft"
            },
            "maxItems": 1000,
            "minItems": 2,
            "title": "Levels",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "order": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "criterion_id",
          "order",
          "title",
          "description",
          "weight_basis_points",
          "locale",
          "objective_ids",
          "item_ids",
          "evidence_requirements",
          "levels"
        ],
        "title": "LessonRubricCriterionDraft",
        "type": "object"
      },
      "LessonRubricCriterionScore": {
        "additionalProperties": false,
        "properties": {
          "awarded_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Awarded Points"
          },
          "criterion_id": {
            "title": "Criterion Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricEvidenceInput"
            },
            "title": "Evidence",
            "type": "array"
          },
          "level_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Level Id"
          },
          "maximum_points": {
            "title": "Maximum Points",
            "type": "integer"
          },
          "moderated": {
            "title": "Moderated",
            "type": "boolean"
          },
          "raw_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Raw Points"
          },
          "status": {
            "enum": ["scored", "missing", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "weight": {
            "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "title": "Weight",
            "type": "string"
          },
          "weighted_contribution": {
            "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "title": "Weighted Contribution",
            "type": "string"
          }
        },
        "required": [
          "criterion_id",
          "status",
          "level_id",
          "raw_points",
          "awarded_points",
          "maximum_points",
          "weight",
          "weighted_contribution",
          "evidence",
          "moderated"
        ],
        "title": "LessonRubricCriterionScore",
        "type": "object"
      },
      "LessonRubricCriterionScoreInput": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricEvidenceInput"
            },
            "maxItems": 1000,
            "title": "Evidence",
            "type": "array"
          },
          "moderation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonRubricModeration"
              },
              {
                "type": "null"
              }
            ]
          },
          "points": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Points"
          },
          "status": {
            "enum": ["scored", "missing", "not_applicable"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["criterion_id", "status"],
        "title": "LessonRubricCriterionScoreInput",
        "type": "object"
      },
      "LessonRubricDraft": {
        "additionalProperties": false,
        "properties": {
          "authority_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Authority Ref",
            "type": "string"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricCriterionDraft"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "exemplars": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricExemplarDraft"
            },
            "maxItems": 10000,
            "title": "Exemplars",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "rubric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          },
          "scoring": {
            "$ref": "#/components/schemas/LessonRubricScoringPolicy"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "rubric_id",
          "title",
          "description",
          "locale",
          "authority_ref",
          "scoring",
          "criteria"
        ],
        "title": "LessonRubricDraft",
        "type": "object"
      },
      "LessonRubricEvidenceInput": {
        "additionalProperties": false,
        "properties": {
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "requirement_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requirement Id",
            "type": "string"
          }
        },
        "required": ["requirement_id", "evidence_ref"],
        "title": "LessonRubricEvidenceInput",
        "type": "object"
      },
      "LessonRubricEvidenceRequirement": {
        "additionalProperties": false,
        "properties": {
          "guidance": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Guidance",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "required": {
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "requirement_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requirement Id",
            "type": "string"
          }
        },
        "required": ["requirement_id", "label", "guidance", "locale"],
        "title": "LessonRubricEvidenceRequirement",
        "type": "object"
      },
      "LessonRubricExemplarDraft": {
        "additionalProperties": false,
        "properties": {
          "annotation": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Annotation",
            "type": "string"
          },
          "artifact_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Artifact Revision Id",
            "type": "string"
          },
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "assessor_note": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessor Note"
          },
          "consent_evidence_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Evidence Ref"
          },
          "consent_status": {
            "enum": ["obtained", "not_required", "missing"],
            "title": "Consent Status",
            "type": "string"
          },
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "exemplar_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Exemplar Id",
            "type": "string"
          },
          "level_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Level Id",
            "type": "string"
          },
          "redaction_evidence_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Redaction Evidence Ref"
          },
          "redaction_status": {
            "enum": ["complete", "not_required", "missing"],
            "title": "Redaction Status",
            "type": "string"
          },
          "review": {
            "$ref": "#/components/schemas/LessonRubricExemplarReview"
          },
          "rights_evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Rights Evidence Ref",
            "type": "string"
          },
          "rights_status": {
            "enum": ["cleared", "needs_review", "blocked"],
            "title": "Rights Status",
            "type": "string"
          },
          "visibility": {
            "enum": ["learner", "assessor"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "exemplar_id",
          "artifact_id",
          "artifact_revision_id",
          "artifact_sha256",
          "criterion_id",
          "level_id",
          "annotation",
          "visibility",
          "rights_status",
          "rights_evidence_ref",
          "consent_status",
          "redaction_status",
          "review"
        ],
        "title": "LessonRubricExemplarDraft",
        "type": "object"
      },
      "LessonRubricExemplarReview": {
        "additionalProperties": false,
        "properties": {
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "enum": ["instructor", "admin"],
            "title": "Reviewer Role",
            "type": "string"
          },
          "status": {
            "enum": ["approved", "pending", "rejected"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "reviewer_id", "reviewer_role", "reviewed_at", "evidence_ref"],
        "title": "LessonRubricExemplarReview",
        "type": "object"
      },
      "LessonRubricItemBinding": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_revision_id": {
            "title": "Rubric Revision Id",
            "type": "string"
          },
          "rubric_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Sha256",
            "type": "string"
          }
        },
        "required": [
          "assessment_id",
          "item_id",
          "rubric_id",
          "rubric_revision_id",
          "rubric_sha256"
        ],
        "title": "LessonRubricItemBinding",
        "type": "object"
      },
      "LessonRubricLearnerCriterionPreview": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "title": "Criterion Id",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "exemplars": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricLearnerExemplarPreview"
            },
            "title": "Exemplars",
            "type": "array"
          },
          "item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Item Ids",
            "type": "array"
          },
          "levels": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricLearnerLevelPreview"
            },
            "title": "Levels",
            "type": "array"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Objective Ids",
            "type": "array"
          },
          "required_evidence": {
            "items": {
              "type": "string"
            },
            "title": "Required Evidence",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "weight": {
            "title": "Weight",
            "type": "string"
          }
        },
        "required": [
          "criterion_id",
          "title",
          "description",
          "weight",
          "objective_ids",
          "item_ids",
          "required_evidence",
          "levels",
          "exemplars"
        ],
        "title": "LessonRubricLearnerCriterionPreview",
        "type": "object"
      },
      "LessonRubricLearnerExemplarPreview": {
        "additionalProperties": false,
        "properties": {
          "annotation": {
            "title": "Annotation",
            "type": "string"
          },
          "artifact_id": {
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_revision_id": {
            "title": "Artifact Revision Id",
            "type": "string"
          },
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "exemplar_id": {
            "title": "Exemplar Id",
            "type": "string"
          },
          "level_id": {
            "title": "Level Id",
            "type": "string"
          }
        },
        "required": [
          "exemplar_id",
          "artifact_id",
          "artifact_revision_id",
          "artifact_sha256",
          "level_id",
          "annotation"
        ],
        "title": "LessonRubricLearnerExemplarPreview",
        "type": "object"
      },
      "LessonRubricLearnerLevelPreview": {
        "additionalProperties": false,
        "properties": {
          "descriptor": {
            "title": "Descriptor",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "level_id": {
            "title": "Level Id",
            "type": "string"
          },
          "points": {
            "title": "Points",
            "type": "integer"
          },
          "score_range": {
            "title": "Score Range",
            "type": "string"
          }
        },
        "required": ["level_id", "label", "descriptor", "points", "score_range"],
        "title": "LessonRubricLearnerLevelPreview",
        "type": "object"
      },
      "LessonRubricLearnerPreview": {
        "additionalProperties": false,
        "properties": {
          "caption": {
            "title": "Caption",
            "type": "string"
          },
          "columns": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricPreviewColumn"
            },
            "title": "Columns",
            "type": "array"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricLearnerCriterionPreview"
            },
            "title": "Criteria",
            "type": "array"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "nonvisual_summary": {
            "title": "Nonvisual Summary",
            "type": "string"
          },
          "role": {
            "const": "learner",
            "default": "learner",
            "title": "Role",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_revision_id": {
            "title": "Rubric Revision Id",
            "type": "string"
          },
          "rubric_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Sha256",
            "type": "string"
          },
          "scoring_method": {
            "const": "analytic_weighted_points",
            "title": "Scoring Method",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "rubric_id",
          "rubric_revision_id",
          "rubric_sha256",
          "title",
          "description",
          "locale",
          "scoring_method",
          "caption",
          "nonvisual_summary",
          "columns",
          "criteria",
          "generated_at"
        ],
        "title": "LessonRubricLearnerPreview",
        "type": "object"
      },
      "LessonRubricLevelDraft": {
        "additionalProperties": false,
        "properties": {
          "assessor_note": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessor Note"
          },
          "descriptor": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Descriptor",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "level_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Level Id",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "maximum_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Maximum Points",
            "type": "integer"
          },
          "minimum_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Minimum Points",
            "type": "integer"
          },
          "order": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Points",
            "type": "integer"
          },
          "score_key": {
            "anyOf": [
              {
                "maxLength": 2000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Key"
          }
        },
        "required": [
          "level_id",
          "order",
          "label",
          "descriptor",
          "points",
          "minimum_points",
          "maximum_points",
          "locale"
        ],
        "title": "LessonRubricLevelDraft",
        "type": "object"
      },
      "LessonRubricModeration": {
        "additionalProperties": false,
        "properties": {
          "moderated_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Moderated Points",
            "type": "integer"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          }
        },
        "required": ["moderated_points", "reason", "reviewer_id", "reviewed_at"],
        "title": "LessonRubricModeration",
        "type": "object"
      },
      "LessonRubricPreviewColumn": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "enum": ["criterion", "weight", "evidence", "levels", "exemplars", "assessor_guidance"],
            "title": "Key",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "scope": {
            "enum": ["row", "column"],
            "title": "Scope",
            "type": "string"
          }
        },
        "required": ["key", "label", "scope"],
        "title": "LessonRubricPreviewColumn",
        "type": "object"
      },
      "LessonRubricPreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "role": {
            "enum": ["learner", "assessor"],
            "title": "Role",
            "type": "string"
          },
          "rubric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Revision Id",
            "type": "string"
          },
          "rubric_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Sha256",
            "type": "string"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "rubric_id",
          "rubric_revision_id",
          "rubric_sha256",
          "role"
        ],
        "title": "LessonRubricPreviewRequest",
        "type": "object"
      },
      "LessonRubricRevision": {
        "additionalProperties": false,
        "properties": {
          "authority_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Authority Ref",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Created By",
            "type": "string"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricCriterionDraft"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "exemplars": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricExemplarDraft"
            },
            "maxItems": 10000,
            "title": "Exemplars",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "parent_revision_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Revision Id"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "rubric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scoring": {
            "$ref": "#/components/schemas/LessonRubricScoringPolicy"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "rubric_id",
          "title",
          "description",
          "locale",
          "authority_ref",
          "scoring",
          "criteria",
          "revision_id",
          "revision_number",
          "rubric_sha256",
          "created_by",
          "created_at"
        ],
        "title": "LessonRubricRevision",
        "type": "object"
      },
      "LessonRubricRevisionReceipt": {
        "additionalProperties": false,
        "properties": {
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "operation": {
            "const": "create_rubric_revision",
            "default": "create_rubric_revision",
            "title": "Operation",
            "type": "string"
          },
          "parent_revision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Revision Id"
          },
          "revision_id": {
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Sha256",
            "type": "string"
          }
        },
        "required": [
          "rubric_id",
          "revision_id",
          "parent_revision_id",
          "revision_number",
          "rubric_sha256",
          "changed_paths"
        ],
        "title": "LessonRubricRevisionReceipt",
        "type": "object"
      },
      "LessonRubricRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "expected_rubric_revision_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Rubric Revision Id"
          },
          "expected_rubric_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Rubric Sha256"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "rubric": {
            "$ref": "#/components/schemas/LessonRubricDraft"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "reason",
          "rubric"
        ],
        "title": "LessonRubricRevisionRequest",
        "type": "object"
      },
      "LessonRubricRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "receipt": {
            "$ref": "#/components/schemas/LessonRubricRevisionReceipt"
          }
        },
        "required": ["projection", "receipt"],
        "title": "LessonRubricRevisionResponse",
        "type": "object"
      },
      "LessonRubricScore": {
        "additionalProperties": false,
        "properties": {
          "applicable_weight": {
            "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "title": "Applicable Weight",
            "type": "string"
          },
          "binding": {
            "$ref": "#/components/schemas/LessonRubricItemBinding"
          },
          "calculated_at": {
            "format": "date-time",
            "title": "Calculated At",
            "type": "string"
          },
          "calculation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Calculation Sha256",
            "type": "string"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricCriterionScore"
            },
            "title": "Criteria",
            "type": "array"
          },
          "decimal_places": {
            "title": "Decimal Places",
            "type": "integer"
          },
          "missing_policy": {
            "const": "zero",
            "title": "Missing Policy",
            "type": "string"
          },
          "moderation_count": {
            "minimum": 0.0,
            "title": "Moderation Count",
            "type": "integer"
          },
          "not_applicable_policy": {
            "const": "reweight",
            "title": "Not Applicable Policy",
            "type": "string"
          },
          "rounding": {
            "const": "half_up",
            "title": "Rounding",
            "type": "string"
          },
          "score_id": {
            "title": "Score Id",
            "type": "string"
          },
          "scoring_method": {
            "const": "analytic_weighted_points",
            "title": "Scoring Method",
            "type": "string"
          },
          "total_score": {
            "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$",
            "title": "Total Score",
            "type": "string"
          }
        },
        "required": [
          "score_id",
          "binding",
          "scoring_method",
          "missing_policy",
          "not_applicable_policy",
          "rounding",
          "decimal_places",
          "applicable_weight",
          "total_score",
          "criteria",
          "moderation_count",
          "calculation_sha256",
          "calculated_at"
        ],
        "title": "LessonRubricScore",
        "type": "object"
      },
      "LessonRubricScoreRequest": {
        "additionalProperties": false,
        "properties": {
          "binding": {
            "$ref": "#/components/schemas/LessonRubricItemBinding"
          },
          "criterion_scores": {
            "items": {
              "$ref": "#/components/schemas/LessonRubricCriterionScoreInput"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Criterion Scores",
            "type": "array"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "binding",
          "criterion_scores"
        ],
        "title": "LessonRubricScoreRequest",
        "type": "object"
      },
      "LessonRubricScoringPolicy": {
        "additionalProperties": false,
        "properties": {
          "decimal_places": {
            "default": 2,
            "maximum": 6.0,
            "minimum": 0.0,
            "title": "Decimal Places",
            "type": "integer"
          },
          "method": {
            "const": "analytic_weighted_points",
            "default": "analytic_weighted_points",
            "title": "Method",
            "type": "string"
          },
          "missing_policy": {
            "const": "zero",
            "default": "zero",
            "title": "Missing Policy",
            "type": "string"
          },
          "not_applicable_policy": {
            "const": "reweight",
            "default": "reweight",
            "title": "Not Applicable Policy",
            "type": "string"
          },
          "rounding": {
            "const": "half_up",
            "default": "half_up",
            "title": "Rounding",
            "type": "string"
          }
        },
        "title": "LessonRubricScoringPolicy",
        "type": "object"
      },
      "LessonTechnicalExportRequest": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "target": {
            "enum": ["learner_html", "plain_text", "pdf", "qti", "scorm", "common_cartridge"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "block_id",
          "target"
        ],
        "title": "LessonTechnicalExportRequest",
        "type": "object"
      },
      "LessonTechnicalExportResponse": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "block_kind": {
            "enum": ["equation", "code", "example"],
            "title": "Block Kind",
            "type": "string"
          },
          "execution_mode": {
            "enum": ["disabled", "not_applicable"],
            "title": "Execution Mode",
            "type": "string"
          },
          "format_version": {
            "const": "3.4.0",
            "default": "3.4.0",
            "title": "Format Version",
            "type": "string"
          },
          "media_type": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Media Type",
            "type": "string"
          },
          "payload": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Payload",
            "type": "string"
          },
          "payload_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Payload Sha256",
            "type": "string"
          },
          "plain_text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Plain Text",
            "type": "string"
          },
          "raster_only": {
            "const": false,
            "default": false,
            "title": "Raster Only",
            "type": "boolean"
          },
          "round_trip_verified": {
            "const": true,
            "default": true,
            "title": "Round Trip Verified",
            "type": "boolean"
          },
          "sanitized": {
            "const": true,
            "default": true,
            "title": "Sanitized",
            "type": "boolean"
          },
          "semantic_math_preserved": {
            "title": "Semantic Math Preserved",
            "type": "boolean"
          },
          "semantic_mathml": {
            "anyOf": [
              {
                "maxLength": 100000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Semantic Mathml"
          },
          "source_block_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Block Sha256",
            "type": "string"
          },
          "target": {
            "enum": ["learner_html", "plain_text", "pdf", "qti", "scorm", "common_cartridge"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "block_id",
          "block_kind",
          "target",
          "media_type",
          "payload",
          "payload_sha256",
          "source_block_sha256",
          "plain_text",
          "semantic_math_preserved",
          "execution_mode"
        ],
        "title": "LessonTechnicalExportResponse",
        "type": "object"
      },
      "LessonTemplateApplicability": {
        "additionalProperties": false,
        "properties": {
          "course_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Course Ids",
            "type": "array"
          },
          "delivery_modes": {
            "items": {
              "enum": ["online", "blended", "in_person", "offline"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Delivery Modes",
            "type": "array"
          },
          "institution_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Institution Ids",
            "type": "array"
          },
          "locales": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Locales",
            "type": "array"
          },
          "program_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Program Ids",
            "type": "array"
          },
          "region_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Region Ids",
            "type": "array"
          },
          "subject_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Subject Ids",
            "type": "array"
          }
        },
        "title": "LessonTemplateApplicability",
        "type": "object"
      },
      "LessonTemplateCatalog": {
        "additionalProperties": false,
        "properties": {
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "templates": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateVersion"
            },
            "title": "Templates",
            "type": "array"
          }
        },
        "required": ["templates", "catalog_sha256"],
        "title": "LessonTemplateCatalog",
        "type": "object"
      },
      "LessonTemplateConflict": {
        "additionalProperties": false,
        "properties": {
          "conflict_id": {
            "pattern": "^template-conflict-[a-f0-9]{40}$",
            "title": "Conflict Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "locked_field",
              "locked_block",
              "floor_weakening",
              "missing_parent",
              "version_mismatch",
              "inapplicable",
              "constraint_conflict"
            ],
            "title": "Kind",
            "type": "string"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "path": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          },
          "source": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source",
            "type": "string"
          }
        },
        "required": ["conflict_id", "kind", "path", "source", "message"],
        "title": "LessonTemplateConflict",
        "type": "object"
      },
      "LessonTemplateConstraint": {
        "additionalProperties": false,
        "properties": {
          "constraint_id": {
            "pattern": "^constraint-[a-z0-9-]{3,119}$",
            "title": "Constraint Id",
            "type": "string"
          },
          "kind": {
            "enum": ["minimum", "maximum", "allowed", "required", "forbidden"],
            "title": "Kind",
            "type": "string"
          },
          "locked": {
            "default": false,
            "title": "Locked",
            "type": "boolean"
          },
          "path": {
            "pattern": "^[a-z][a-z0-9_.-]{2,255}$",
            "title": "Path",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/LessonTemplateValue"
          }
        },
        "required": ["constraint_id", "path", "kind", "value", "rationale"],
        "title": "LessonTemplateConstraint",
        "type": "object"
      },
      "LessonTemplateConsumerContext": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "delivery_mode": {
            "default": "online",
            "enum": ["online", "blended", "in_person", "offline"],
            "title": "Delivery Mode",
            "type": "string"
          },
          "institution_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Id"
          },
          "lesson_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Lesson Id",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "program_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Program Id"
          },
          "region_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region Id"
          },
          "subject_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Id"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["lesson_id", "course_id", "tenant_id"],
        "title": "LessonTemplateConsumerContext",
        "type": "object"
      },
      "LessonTemplateConsumerHistory": {
        "additionalProperties": false,
        "properties": {
          "current": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonTemplateConsumerPin"
              },
              {
                "type": "null"
              }
            ]
          },
          "historical_revisions_preserved": {
            "const": true,
            "default": true,
            "title": "Historical Revisions Preserved",
            "type": "boolean"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "pins": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateConsumerPin"
            },
            "title": "Pins",
            "type": "array"
          }
        },
        "required": ["lesson_id", "current", "pins"],
        "title": "LessonTemplateConsumerHistory",
        "type": "object"
      },
      "LessonTemplateConsumerOverride": {
        "additionalProperties": false,
        "properties": {
          "override_id": {
            "pattern": "^override-[a-z0-9-]{3,119}$",
            "title": "Override Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "rule": {
            "$ref": "#/components/schemas/LessonTemplateFieldRule"
          }
        },
        "required": ["override_id", "rule", "rationale"],
        "title": "LessonTemplateConsumerOverride",
        "type": "object"
      },
      "LessonTemplateConsumerPin": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["instantiate", "migrate"],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["admin", "instructor"],
            "title": "Actor Role",
            "type": "string"
          },
          "consumer_revision": {
            "minimum": 1.0,
            "title": "Consumer Revision",
            "type": "integer"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "pin_id": {
            "pattern": "^template-pin-[a-f0-9]{40}$",
            "title": "Pin Id",
            "type": "string"
          },
          "pin_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Pin Sha256",
            "type": "string"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "previous_pin_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Pin Id"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "template": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          },
          "template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Template Sha256",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "pin_id",
          "lesson_id",
          "course_id",
          "tenant_id",
          "consumer_revision",
          "action",
          "template",
          "template_sha256",
          "preview_sha256",
          "dossier_revision",
          "dossier_sha256",
          "actor_id",
          "actor_role",
          "reason",
          "pin_sha256",
          "created_at"
        ],
        "title": "LessonTemplateConsumerPin",
        "type": "object"
      },
      "LessonTemplateConsumerPinRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["instantiate", "migrate"],
            "title": "Action",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/LessonTemplateConsumerContext"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Preview Sha256",
            "type": "string"
          },
          "expected_template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Template Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "overrides": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateConsumerOverride"
            },
            "maxItems": 2000,
            "title": "Overrides",
            "type": "array"
          },
          "previous_pin_id": {
            "anyOf": [
              {
                "pattern": "^template-pin-[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Pin Id"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "template": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          }
        },
        "required": [
          "action",
          "template",
          "expected_template_sha256",
          "expected_preview_sha256",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "context",
          "reason",
          "idempotency_key"
        ],
        "title": "LessonTemplateConsumerPinRequest",
        "type": "object"
      },
      "LessonTemplateContribution": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "disposition": {
            "enum": ["applied", "redundant", "rejected"],
            "title": "Disposition",
            "type": "string"
          },
          "operation": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Operation",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonTemplateVersionRef"
              },
              {
                "const": "consumer_override",
                "type": "string"
              }
            ],
            "title": "Source"
          }
        },
        "required": ["source", "operation", "disposition", "detail"],
        "title": "LessonTemplateContribution",
        "type": "object"
      },
      "LessonTemplateCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "definition": {
            "$ref": "#/components/schemas/LessonTemplateDefinition"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["definition", "idempotency_key"],
        "title": "LessonTemplateCreateRequest",
        "type": "object"
      },
      "LessonTemplateDefinition": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/LessonTemplateApplicability"
          },
          "code_floor_refs": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateVersionRef"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Code Floor Refs",
            "type": "array"
          },
          "constraints": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateConstraint"
            },
            "maxItems": 2000,
            "title": "Constraints",
            "type": "array"
          },
          "field_rules": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateFieldRule"
            },
            "maxItems": 2000,
            "title": "Field Rules",
            "type": "array"
          },
          "floors": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateDomainFloor"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Floors",
            "type": "array"
          },
          "parent": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonTemplateVersionRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "required_gates": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateGateRequirement"
            },
            "maxItems": 500,
            "title": "Required Gates",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/LessonTemplateScope"
          },
          "skeleton": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateSkeletonBlock"
            },
            "maxItems": 2000,
            "title": "Skeleton",
            "type": "array"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "template_key": {
            "pattern": "^[a-z][a-z0-9-]{2,119}$",
            "title": "Template Key",
            "type": "string"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "version": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "template_key",
          "version",
          "title",
          "summary",
          "scope",
          "applicability",
          "floors",
          "code_floor_refs"
        ],
        "title": "LessonTemplateDefinition",
        "type": "object"
      },
      "LessonTemplateDomainFloor": {
        "additionalProperties": false,
        "properties": {
          "domain": {
            "enum": [
              "safety",
              "rights",
              "sources",
              "accessibility",
              "assessment_integrity",
              "privacy",
              "standards"
            ],
            "title": "Domain",
            "type": "string"
          },
          "minimum_level": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Minimum Level",
            "type": "integer"
          },
          "prohibitions": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Prohibitions",
            "type": "array"
          },
          "required_evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Required Evidence",
            "type": "array"
          },
          "required_gate_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Required Gate Ids",
            "type": "array"
          }
        },
        "required": ["domain", "minimum_level"],
        "title": "LessonTemplateDomainFloor",
        "type": "object"
      },
      "LessonTemplateEffectiveBlock": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "block_key": {
            "title": "Block Key",
            "type": "string"
          },
          "contributions": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateContribution"
            },
            "minItems": 1,
            "title": "Contributions",
            "type": "array"
          },
          "default_locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Locale"
          },
          "kind": {
            "anyOf": [
              {
                "enum": [
                  "prose",
                  "callout",
                  "example",
                  "equation",
                  "code",
                  "image",
                  "audio",
                  "video",
                  "interaction",
                  "practice",
                  "reflection",
                  "assessment_link"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "locked": {
            "title": "Locked",
            "type": "boolean"
          },
          "purpose": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Purpose"
          },
          "required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required"
          },
          "source": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          },
          "state": {
            "enum": ["inherited", "defaulted", "overridden", "locked", "conflicting", "removed"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "block_key",
          "kind",
          "label",
          "purpose",
          "default_locale",
          "required",
          "active",
          "state",
          "locked",
          "source",
          "contributions"
        ],
        "title": "LessonTemplateEffectiveBlock",
        "type": "object"
      },
      "LessonTemplateEffectiveConstraint": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": ["minimum", "maximum", "allowed", "required", "forbidden"],
            "title": "Kind",
            "type": "string"
          },
          "locked": {
            "title": "Locked",
            "type": "boolean"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          },
          "state": {
            "enum": ["inherited", "defaulted", "overridden", "locked", "conflicting", "removed"],
            "title": "State",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/LessonTemplateValue"
          }
        },
        "required": ["path", "kind", "value", "locked", "state", "source"],
        "title": "LessonTemplateEffectiveConstraint",
        "type": "object"
      },
      "LessonTemplateEffectiveField": {
        "additionalProperties": false,
        "properties": {
          "contributions": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateContribution"
            },
            "minItems": 1,
            "title": "Contributions",
            "type": "array"
          },
          "locked": {
            "title": "Locked",
            "type": "boolean"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonTemplateVersionRef"
              },
              {
                "const": "consumer_override",
                "type": "string"
              }
            ],
            "title": "Source"
          },
          "state": {
            "enum": ["inherited", "defaulted", "overridden", "locked", "conflicting", "removed"],
            "title": "State",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonTemplateValue"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["path", "value", "state", "locked", "source", "contributions"],
        "title": "LessonTemplateEffectiveField",
        "type": "object"
      },
      "LessonTemplateEffectiveFloor": {
        "additionalProperties": false,
        "properties": {
          "contributions": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateFloorContribution"
            },
            "minItems": 1,
            "title": "Contributions",
            "type": "array"
          },
          "domain": {
            "enum": [
              "safety",
              "rights",
              "sources",
              "accessibility",
              "assessment_integrity",
              "privacy",
              "standards"
            ],
            "title": "Domain",
            "type": "string"
          },
          "minimum_level": {
            "title": "Minimum Level",
            "type": "integer"
          },
          "prohibitions": {
            "items": {
              "type": "string"
            },
            "title": "Prohibitions",
            "type": "array"
          },
          "required_evidence": {
            "items": {
              "type": "string"
            },
            "title": "Required Evidence",
            "type": "array"
          },
          "required_gate_ids": {
            "items": {
              "type": "string"
            },
            "title": "Required Gate Ids",
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          }
        },
        "required": [
          "domain",
          "minimum_level",
          "required_evidence",
          "required_gate_ids",
          "prohibitions",
          "source",
          "contributions"
        ],
        "title": "LessonTemplateEffectiveFloor",
        "type": "object"
      },
      "LessonTemplateEffectiveGate": {
        "additionalProperties": false,
        "properties": {
          "domain": {
            "enum": [
              "safety",
              "rights",
              "sources",
              "accessibility",
              "assessment_integrity",
              "privacy",
              "standards"
            ],
            "title": "Domain",
            "type": "string"
          },
          "evidence_kinds": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Kinds",
            "type": "array"
          },
          "gate_id": {
            "title": "Gate Id",
            "type": "string"
          },
          "locked": {
            "title": "Locked",
            "type": "boolean"
          },
          "minimum_approvals": {
            "title": "Minimum Approvals",
            "type": "integer"
          },
          "reviewer_roles": {
            "items": {
              "type": "string"
            },
            "title": "Reviewer Roles",
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          },
          "state": {
            "enum": ["inherited", "defaulted", "overridden", "locked", "conflicting", "removed"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "domain",
          "minimum_approvals",
          "reviewer_roles",
          "evidence_kinds",
          "locked",
          "state",
          "source"
        ],
        "title": "LessonTemplateEffectiveGate",
        "type": "object"
      },
      "LessonTemplateFieldRule": {
        "additionalProperties": false,
        "properties": {
          "operation": {
            "enum": ["merge", "replace", "append", "remove", "lock"],
            "title": "Operation",
            "type": "string"
          },
          "path": {
            "pattern": "^[a-z][a-z0-9_.-]{2,255}$",
            "title": "Path",
            "type": "string"
          },
          "rule_id": {
            "pattern": "^field-[a-z0-9-]{3,119}$",
            "title": "Rule Id",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/LessonTemplateValue"
          }
        },
        "required": ["rule_id", "path", "operation", "value"],
        "title": "LessonTemplateFieldRule",
        "type": "object"
      },
      "LessonTemplateFloorContribution": {
        "additionalProperties": false,
        "properties": {
          "disposition": {
            "enum": ["applied", "redundant", "rejected"],
            "title": "Disposition",
            "type": "string"
          },
          "minimum_level": {
            "title": "Minimum Level",
            "type": "integer"
          },
          "prohibitions": {
            "items": {
              "type": "string"
            },
            "title": "Prohibitions",
            "type": "array"
          },
          "required_evidence": {
            "items": {
              "type": "string"
            },
            "title": "Required Evidence",
            "type": "array"
          },
          "required_gate_ids": {
            "items": {
              "type": "string"
            },
            "title": "Required Gate Ids",
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          }
        },
        "required": [
          "source",
          "minimum_level",
          "required_evidence",
          "required_gate_ids",
          "prohibitions",
          "disposition"
        ],
        "title": "LessonTemplateFloorContribution",
        "type": "object"
      },
      "LessonTemplateGateRequirement": {
        "additionalProperties": false,
        "properties": {
          "domain": {
            "enum": [
              "safety",
              "rights",
              "sources",
              "accessibility",
              "assessment_integrity",
              "privacy",
              "standards"
            ],
            "title": "Domain",
            "type": "string"
          },
          "evidence_kinds": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Kinds",
            "type": "array"
          },
          "gate_id": {
            "pattern": "^gate-[a-z0-9-]{3,119}$",
            "title": "Gate Id",
            "type": "string"
          },
          "locked": {
            "default": false,
            "title": "Locked",
            "type": "boolean"
          },
          "minimum_approvals": {
            "maximum": 20.0,
            "minimum": 0.0,
            "title": "Minimum Approvals",
            "type": "integer"
          },
          "reviewer_roles": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Reviewer Roles",
            "type": "array"
          }
        },
        "required": ["gate_id", "domain", "minimum_approvals", "evidence_kinds"],
        "title": "LessonTemplateGateRequirement",
        "type": "object"
      },
      "LessonTemplateLifecycleEvent": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["system", "admin", "instructor"],
            "title": "Actor Role",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "event_id": {
            "pattern": "^template-event-[a-f0-9]{40}$",
            "title": "Event Id",
            "type": "string"
          },
          "event_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Event Sha256",
            "type": "string"
          },
          "from_state": {
            "anyOf": [
              {
                "enum": ["draft", "published", "deprecated"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "From State"
          },
          "previous_event_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Event Sha256"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "template": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          },
          "to_state": {
            "enum": ["draft", "published", "deprecated"],
            "title": "To State",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "template",
          "to_state",
          "actor_id",
          "actor_role",
          "reason",
          "event_sha256",
          "created_at"
        ],
        "title": "LessonTemplateLifecycleEvent",
        "type": "object"
      },
      "LessonTemplateLifecycleRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["publish", "deprecate"],
            "title": "Action",
            "type": "string"
          },
          "expected_template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Template Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["action", "expected_template_sha256", "reason", "idempotency_key"],
        "title": "LessonTemplateLifecycleRequest",
        "type": "object"
      },
      "LessonTemplateMapEntry": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "value": {
            "maxLength": 4000,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["key", "value"],
        "title": "LessonTemplateMapEntry",
        "type": "object"
      },
      "LessonTemplateOwner": {
        "additionalProperties": false,
        "properties": {
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_role": {
            "enum": ["system", "admin", "instructor"],
            "title": "Owner Role",
            "type": "string"
          },
          "tenant_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id"
          }
        },
        "required": ["owner_id", "owner_role"],
        "title": "LessonTemplateOwner",
        "type": "object"
      },
      "LessonTemplatePreview": {
        "additionalProperties": false,
        "properties": {
          "blocks": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateEffectiveBlock"
            },
            "title": "Blocks",
            "type": "array"
          },
          "can_instantiate": {
            "title": "Can Instantiate",
            "type": "boolean"
          },
          "chain": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateVersionRef"
            },
            "minItems": 1,
            "title": "Chain",
            "type": "array"
          },
          "chain_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Chain Sha256",
            "type": "string"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateConflict"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "constraints": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateEffectiveConstraint"
            },
            "title": "Constraints",
            "type": "array"
          },
          "context": {
            "$ref": "#/components/schemas/LessonTemplateConsumerContext"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateEffectiveField"
            },
            "title": "Fields",
            "type": "array"
          },
          "floors": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateEffectiveFloor"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Floors",
            "type": "array"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "required_gates": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateEffectiveGate"
            },
            "title": "Required Gates",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          },
          "target_template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Template Sha256",
            "type": "string"
          }
        },
        "required": [
          "target",
          "target_template_sha256",
          "chain",
          "chain_sha256",
          "context",
          "fields",
          "blocks",
          "constraints",
          "required_gates",
          "floors",
          "conflicts",
          "can_instantiate",
          "preview_sha256"
        ],
        "title": "LessonTemplatePreview",
        "type": "object"
      },
      "LessonTemplatePreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonTemplateConsumerContext"
          },
          "expected_template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Template Sha256",
            "type": "string"
          },
          "overrides": {
            "items": {
              "$ref": "#/components/schemas/LessonTemplateConsumerOverride"
            },
            "maxItems": 2000,
            "title": "Overrides",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/LessonTemplateVersionRef"
          }
        },
        "required": ["target", "expected_template_sha256", "context"],
        "title": "LessonTemplatePreviewRequest",
        "type": "object"
      },
      "LessonTemplateScope": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": ["code", "regional", "institution", "program", "course"],
            "title": "Kind",
            "type": "string"
          },
          "scope_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scope Id",
            "type": "string"
          }
        },
        "required": ["kind", "scope_id"],
        "title": "LessonTemplateScope",
        "type": "object"
      },
      "LessonTemplateSkeletonBlock": {
        "additionalProperties": false,
        "properties": {
          "block_key": {
            "pattern": "^template-block-[a-z0-9-]{3,119}$",
            "title": "Block Key",
            "type": "string"
          },
          "default_locale": {
            "anyOf": [
              {
                "maxLength": 63,
                "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Default Locale"
          },
          "kind": {
            "anyOf": [
              {
                "enum": [
                  "prose",
                  "callout",
                  "example",
                  "equation",
                  "code",
                  "image",
                  "audio",
                  "video",
                  "interaction",
                  "practice",
                  "reflection",
                  "assessment_link"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "operation": {
            "enum": ["merge", "replace", "append", "remove", "lock"],
            "title": "Operation",
            "type": "string"
          },
          "purpose": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Purpose"
          },
          "required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required"
          }
        },
        "required": ["block_key", "operation"],
        "title": "LessonTemplateSkeletonBlock",
        "type": "object"
      },
      "LessonTemplateValue": {
        "additionalProperties": false,
        "description": "A closed, discriminated value envelope used by defaults and constraints.",
        "properties": {
          "boolean": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Boolean"
          },
          "entries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/LessonTemplateMapEntry"
                },
                "maxItems": 10000,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entries"
          },
          "integer": {
            "anyOf": [
              {
                "maximum": 1000000000.0,
                "minimum": -1000000000.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Integer"
          },
          "items": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 10000,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Items"
          },
          "kind": {
            "enum": ["text", "integer", "number", "boolean", "string_list", "string_map"],
            "title": "Kind",
            "type": "string"
          },
          "number": {
            "anyOf": [
              {
                "maximum": 1000000000.0,
                "minimum": -1000000000.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Number"
          },
          "text": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "required": ["kind"],
        "title": "LessonTemplateValue",
        "type": "object"
      },
      "LessonTemplateVersion": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "definition": {
            "$ref": "#/components/schemas/LessonTemplateDefinition"
          },
          "lifecycle": {
            "enum": ["draft", "published", "deprecated"],
            "title": "Lifecycle",
            "type": "string"
          },
          "lifecycle_events": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonTemplateLifecycleEvent"
            },
            "title": "Lifecycle Events",
            "type": "array"
          },
          "owner": {
            "$ref": "#/components/schemas/LessonTemplateOwner"
          },
          "template_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Template Sha256",
            "type": "string"
          }
        },
        "required": ["definition", "owner", "lifecycle", "template_sha256", "created_at"],
        "title": "LessonTemplateVersion",
        "type": "object"
      },
      "LessonTemplateVersionRef": {
        "additionalProperties": false,
        "properties": {
          "template_key": {
            "pattern": "^[a-z][a-z0-9-]{2,119}$",
            "title": "Template Key",
            "type": "string"
          },
          "version": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": ["template_key", "version"],
        "title": "LessonTemplateVersionRef",
        "type": "object"
      },
      "LessonTerminologyAnalysis": {
        "additionalProperties": false,
        "properties": {
          "analysis_id": {
            "pattern": "^terminology-analysis-[a-f0-9]{24}$",
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "analyzed_at": {
            "format": "date-time",
            "title": "Analyzed At",
            "type": "string"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "context": {
            "$ref": "#/components/schemas/LessonTerminologyAnalysisContext"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "profile": {
            "$ref": "#/components/schemas/LessonTerminologyProfile"
          },
          "raw_evidence": {
            "$ref": "#/components/schemas/LessonTerminologyRawEvidence"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope_result": {
            "$ref": "#/components/schemas/LessonTerminologyScopeResult"
          },
          "witness": {
            "$ref": "#/components/schemas/LessonTerminologyWitness"
          }
        },
        "required": [
          "analysis_id",
          "analysis_sha256",
          "witness",
          "context",
          "profile",
          "scope_result",
          "raw_evidence",
          "findings",
          "analyzed_at"
        ],
        "title": "LessonTerminologyAnalysis",
        "type": "object"
      },
      "LessonTerminologyAnalysisContext": {
        "additionalProperties": false,
        "properties": {
          "active_context_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Active Context Ids",
            "type": "array"
          },
          "block_contexts": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyBlockContext"
            },
            "maxItems": 10000,
            "title": "Block Contexts",
            "type": "array"
          },
          "block_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Block Ids",
            "type": "array"
          },
          "definition_candidates": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyDefinitionCandidate"
            },
            "maxItems": 10000,
            "title": "Definition Candidates",
            "type": "array"
          },
          "excluded_terms": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyExcludedTerm"
            },
            "maxItems": 10000,
            "title": "Excluded Terms",
            "type": "array"
          },
          "glossaries": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyGlossary"
            },
            "maxItems": 100,
            "title": "Glossaries",
            "type": "array"
          },
          "locale": {
            "default": "en-US",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "usage_links": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyUsageLink"
            },
            "maxItems": 20000,
            "title": "Usage Links",
            "type": "array"
          }
        },
        "title": "LessonTerminologyAnalysisContext",
        "type": "object"
      },
      "LessonTerminologyAnalysisRequest": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/LessonTerminologyAnalysisContext"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "context"
        ],
        "title": "LessonTerminologyAnalysisRequest",
        "type": "object"
      },
      "LessonTerminologyBlockContext": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "treatment": {
            "default": "analyze",
            "enum": ["analyze", "quoted_source", "configured_exclusion"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["block_id"],
        "title": "LessonTerminologyBlockContext",
        "type": "object"
      },
      "LessonTerminologyConflict": {
        "additionalProperties": false,
        "properties": {
          "conflict_id": {
            "pattern": "^terminology-conflict-[a-f0-9]{24}$",
            "title": "Conflict Id",
            "type": "string"
          },
          "conflict_kind": {
            "enum": ["status", "definition", "capitalization", "ambiguous_surface"],
            "title": "Conflict Kind",
            "type": "string"
          },
          "entry_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 2,
            "title": "Entry Ids",
            "type": "array"
          },
          "glossary_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Glossary Ids",
            "type": "array"
          },
          "normalized_surface": {
            "title": "Normalized Surface",
            "type": "string"
          },
          "resolution": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Resolution",
            "type": "string"
          },
          "scopes": {
            "items": {
              "enum": ["institution", "domain", "course"],
              "type": "string"
            },
            "title": "Scopes",
            "type": "array"
          }
        },
        "required": [
          "conflict_id",
          "normalized_surface",
          "entry_ids",
          "glossary_ids",
          "scopes",
          "conflict_kind",
          "resolution"
        ],
        "title": "LessonTerminologyConflict",
        "type": "object"
      },
      "LessonTerminologyContextRule": {
        "additionalProperties": false,
        "properties": {
          "context_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,119}$",
            "title": "Context Id",
            "type": "string"
          },
          "disposition": {
            "enum": ["allowed", "excluded", "forbidden"],
            "title": "Disposition",
            "type": "string"
          },
          "label": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["context_id", "label", "disposition", "rationale"],
        "title": "LessonTerminologyContextRule",
        "type": "object"
      },
      "LessonTerminologyDefinitionCandidate": {
        "additionalProperties": false,
        "properties": {
          "match": {
            "default": "case_insensitive",
            "enum": ["case_sensitive", "case_insensitive"],
            "title": "Match",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "term": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["term", "rationale"],
        "title": "LessonTerminologyDefinitionCandidate",
        "type": "object"
      },
      "LessonTerminologyEntry": {
        "additionalProperties": false,
        "properties": {
          "capitalization": {
            "default": "exact",
            "enum": [
              "exact",
              "case_insensitive",
              "sentence_case",
              "title_case",
              "uppercase",
              "lowercase"
            ],
            "title": "Capitalization",
            "type": "string"
          },
          "contexts": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyContextRule"
            },
            "maxItems": 1000,
            "title": "Contexts",
            "type": "array"
          },
          "definition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Definition",
            "type": "string"
          },
          "entry_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Entry Id",
            "type": "string"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyLink"
            },
            "maxItems": 1000,
            "title": "Links",
            "type": "array"
          },
          "owner": {
            "$ref": "#/components/schemas/LessonTerminologyOwner"
          },
          "replacement_entry_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Entry Id"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "status": {
            "enum": ["preferred", "allowed", "deprecated", "forbidden"],
            "title": "Status",
            "type": "string"
          },
          "term": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Term",
            "type": "string"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyVariant"
            },
            "maxItems": 1000,
            "title": "Variants",
            "type": "array"
          }
        },
        "required": [
          "entry_id",
          "revision_id",
          "revision",
          "term",
          "status",
          "definition",
          "owner"
        ],
        "title": "LessonTerminologyEntry",
        "type": "object"
      },
      "LessonTerminologyExcludedTerm": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": ["name", "configured_context"],
            "title": "Category",
            "type": "string"
          },
          "match": {
            "default": "case_insensitive",
            "enum": ["case_sensitive", "case_insensitive"],
            "title": "Match",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "term": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["term", "category", "rationale"],
        "title": "LessonTerminologyExcludedTerm",
        "type": "object"
      },
      "LessonTerminologyFinding": {
        "additionalProperties": false,
        "properties": {
          "automatic_edit": {
            "const": false,
            "default": false,
            "title": "Automatic Edit",
            "type": "boolean"
          },
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "category": {
            "enum": [
              "undefined",
              "inconsistent",
              "deprecated",
              "forbidden",
              "ambiguous",
              "acronym_first_use",
              "spelling",
              "casing",
              "glossary_link_drift"
            ],
            "title": "Category",
            "type": "string"
          },
          "conflict_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Conflict Ids",
            "type": "array"
          },
          "end_offset": {
            "exclusiveMinimum": 0.0,
            "title": "End Offset",
            "type": "integer"
          },
          "entry_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Entry Ids",
            "type": "array"
          },
          "excerpt": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Excerpt",
            "type": "string"
          },
          "field_path": {
            "pattern": "^/",
            "title": "Field Path",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^terminology-finding-[a-f0-9]{24}$",
            "title": "Finding Id",
            "type": "string"
          },
          "glossary_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Glossary Ids",
            "type": "array"
          },
          "normalized_surface": {
            "title": "Normalized Surface",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "severity": {
            "enum": ["note", "review", "blocker"],
            "title": "Severity",
            "type": "string"
          },
          "start_offset": {
            "minimum": 0.0,
            "title": "Start Offset",
            "type": "integer"
          },
          "suggested_actions": {
            "items": {
              "enum": ["replace", "add_definition", "link", "allow_context", "dismiss"],
              "type": "string"
            },
            "minItems": 1,
            "title": "Suggested Actions",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "category",
          "severity",
          "block_id",
          "field_path",
          "start_offset",
          "end_offset",
          "excerpt",
          "normalized_surface",
          "rationale",
          "suggested_actions"
        ],
        "title": "LessonTerminologyFinding",
        "type": "object"
      },
      "LessonTerminologyGlossary": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "domain_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain Id"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyEntry"
            },
            "maxItems": 20000,
            "title": "Entries",
            "type": "array"
          },
          "glossary_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Glossary Id",
            "type": "string"
          },
          "inherited": {
            "title": "Inherited",
            "type": "boolean"
          },
          "institution_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Id"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/LessonTerminologyOwner"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "enum": ["institution", "domain", "course"],
            "title": "Scope",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "glossary_id",
          "revision_id",
          "revision",
          "scope",
          "inherited",
          "locale",
          "title",
          "owner",
          "entries",
          "published_at"
        ],
        "title": "LessonTerminologyGlossary",
        "type": "object"
      },
      "LessonTerminologyGlossaryWitness": {
        "additionalProperties": false,
        "properties": {
          "glossary_id": {
            "title": "Glossary Id",
            "type": "string"
          },
          "glossary_revision": {
            "minimum": 1.0,
            "title": "Glossary Revision",
            "type": "integer"
          },
          "glossary_revision_id": {
            "title": "Glossary Revision Id",
            "type": "string"
          },
          "glossary_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Glossary Sha256",
            "type": "string"
          },
          "inherited": {
            "title": "Inherited",
            "type": "boolean"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "scope": {
            "enum": ["institution", "domain", "course"],
            "title": "Scope",
            "type": "string"
          }
        },
        "required": [
          "glossary_id",
          "glossary_revision_id",
          "glossary_revision",
          "glossary_sha256",
          "scope",
          "inherited",
          "locale"
        ],
        "title": "LessonTerminologyGlossaryWitness",
        "type": "object"
      },
      "LessonTerminologyLimit": {
        "additionalProperties": false,
        "properties": {
          "limit_id": {
            "enum": [
              "maximum_blocks",
              "maximum_analyzed_characters",
              "maximum_glossaries",
              "maximum_entries"
            ],
            "title": "Limit Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "unit": {
            "enum": ["blocks", "characters", "glossaries", "entries"],
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "minimum": 1.0,
            "title": "Value",
            "type": "integer"
          }
        },
        "required": ["limit_id", "value", "unit", "rationale"],
        "title": "LessonTerminologyLimit",
        "type": "object"
      },
      "LessonTerminologyLink": {
        "additionalProperties": false,
        "properties": {
          "href": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Href",
            "type": "string"
          },
          "label": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "link_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Link Id",
            "type": "string"
          },
          "relation": {
            "enum": ["definition", "authority", "usage", "translation"],
            "title": "Relation",
            "type": "string"
          }
        },
        "required": ["link_id", "label", "href", "relation"],
        "title": "LessonTerminologyLink",
        "type": "object"
      },
      "LessonTerminologyNotApplicable": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "block_kind": {
            "enum": [
              "prose",
              "callout",
              "example",
              "equation",
              "code",
              "image",
              "audio",
              "video",
              "interaction",
              "practice",
              "reflection",
              "assessment_link"
            ],
            "title": "Block Kind",
            "type": "string"
          },
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "reason_code": {
            "enum": [
              "unsupported_language",
              "unsupported_locale",
              "unsupported_content_kind",
              "locale_mismatch",
              "quoted_source",
              "configured_exclusion",
              "no_analyzable_text"
            ],
            "title": "Reason Code",
            "type": "string"
          }
        },
        "required": ["block_id", "block_kind", "locale", "reason_code", "explanation"],
        "title": "LessonTerminologyNotApplicable",
        "type": "object"
      },
      "LessonTerminologyOwner": {
        "additionalProperties": false,
        "properties": {
          "contact_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Ref"
          },
          "display_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "owner_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Owner Id",
            "type": "string"
          },
          "role": {
            "enum": ["institution_steward", "domain_steward", "course_author", "glossary_reviewer"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["owner_id", "display_name", "role"],
        "title": "LessonTerminologyOwner",
        "type": "object"
      },
      "LessonTerminologyProfile": {
        "additionalProperties": false,
        "properties": {
          "analyzed_content_kinds": {
            "items": {
              "enum": [
                "prose",
                "callout",
                "example",
                "equation",
                "code",
                "image",
                "audio",
                "video",
                "interaction",
                "practice",
                "reflection",
                "assessment_link"
              ],
              "type": "string"
            },
            "title": "Analyzed Content Kinds",
            "type": "array"
          },
          "automatically_excluded_content_kinds": {
            "items": {
              "enum": [
                "prose",
                "callout",
                "example",
                "equation",
                "code",
                "image",
                "audio",
                "video",
                "interaction",
                "practice",
                "reflection",
                "assessment_link"
              ],
              "type": "string"
            },
            "title": "Automatically Excluded Content Kinds",
            "type": "array"
          },
          "engine_id": {
            "const": "metis.terminology-lint",
            "default": "metis.terminology-lint",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_source": {
            "const": "server_local_deterministic",
            "default": "server_local_deterministic",
            "title": "Engine Source",
            "type": "string"
          },
          "engine_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Engine Version",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "limits": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyLimit"
            },
            "title": "Limits",
            "type": "array"
          },
          "normalization": {
            "const": "unicode_nfkc_locale_casefold_v1",
            "default": "unicode_nfkc_locale_casefold_v1",
            "title": "Normalization",
            "type": "string"
          },
          "precedence": {
            "default": ["course", "domain", "institution"],
            "items": {
              "enum": ["institution", "domain", "course"],
              "type": "string"
            },
            "title": "Precedence",
            "type": "array"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyRule"
            },
            "title": "Rules",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "supported_languages": {
            "default": ["en", "es", "fr", "ja"],
            "items": {
              "type": "string"
            },
            "title": "Supported Languages",
            "type": "array"
          },
          "supported_locales": {
            "default": ["en", "en-US", "en-GB", "es", "es-ES", "fr", "fr-FR", "ja", "ja-JP"],
            "items": {
              "type": "string"
            },
            "title": "Supported Locales",
            "type": "array"
          },
          "supported_scripts": {
            "default": ["Latin", "Han", "Hiragana", "Katakana"],
            "items": {
              "enum": ["Latin", "Han", "Hiragana", "Katakana"],
              "type": "string"
            },
            "title": "Supported Scripts",
            "type": "array"
          }
        },
        "required": [
          "analyzed_content_kinds",
          "automatically_excluded_content_kinds",
          "rules",
          "limits",
          "limitations"
        ],
        "title": "LessonTerminologyProfile",
        "type": "object"
      },
      "LessonTerminologyRange": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "category": {
            "enum": ["code", "math", "citation", "quoted_source", "name", "configured_context"],
            "title": "Category",
            "type": "string"
          },
          "end_offset": {
            "exclusiveMinimum": 0.0,
            "title": "End Offset",
            "type": "integer"
          },
          "excerpt": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Excerpt",
            "type": "string"
          },
          "explanation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Explanation",
            "type": "string"
          },
          "field_path": {
            "pattern": "^/",
            "title": "Field Path",
            "type": "string"
          },
          "range_id": {
            "pattern": "^terminology-range-[a-f0-9]{24}$",
            "title": "Range Id",
            "type": "string"
          },
          "start_offset": {
            "minimum": 0.0,
            "title": "Start Offset",
            "type": "integer"
          }
        },
        "required": [
          "range_id",
          "block_id",
          "field_path",
          "start_offset",
          "end_offset",
          "excerpt",
          "category",
          "explanation"
        ],
        "title": "LessonTerminologyRange",
        "type": "object"
      },
      "LessonTerminologyRawEvidence": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "excluded_ranges": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyRange"
            },
            "title": "Excluded Ranges",
            "type": "array"
          },
          "not_applicable": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyNotApplicable"
            },
            "title": "Not Applicable",
            "type": "array"
          },
          "tokens": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyToken"
            },
            "title": "Tokens",
            "type": "array"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": ["tokens", "excluded_ranges", "not_applicable", "assumptions", "uncertainty"],
        "title": "LessonTerminologyRawEvidence",
        "type": "object"
      },
      "LessonTerminologyReviewReceipt": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["replace", "add_definition", "link", "allow_context", "dismiss"],
            "title": "Action",
            "type": "string"
          },
          "analysis_id": {
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "changed_paths": {
            "items": {
              "type": "string"
            },
            "title": "Changed Paths",
            "type": "array"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "finding_id": {
            "title": "Finding Id",
            "type": "string"
          },
          "glossary_mutated": {
            "const": false,
            "default": false,
            "title": "Glossary Mutated",
            "type": "boolean"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "analysis_id",
          "analysis_sha256",
          "finding_id",
          "action",
          "changed_paths"
        ],
        "title": "LessonTerminologyReviewReceipt",
        "type": "object"
      },
      "LessonTerminologyReviewRecord": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["replace", "add_definition", "link", "allow_context", "dismiss"],
            "title": "Action",
            "type": "string"
          },
          "allowed_context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Allowed Context"
          },
          "analysis_id": {
            "title": "Analysis Id",
            "type": "string"
          },
          "analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Analysis Sha256",
            "type": "string"
          },
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "content_mutated": {
            "const": false,
            "default": false,
            "title": "Content Mutated",
            "type": "boolean"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "definition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Definition"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "engine_id": {
            "const": "metis.terminology-lint",
            "default": "metis.terminology-lint",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Engine Version",
            "type": "string"
          },
          "finding_id": {
            "title": "Finding Id",
            "type": "string"
          },
          "glossaries": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyGlossaryWitness"
            },
            "title": "Glossaries",
            "type": "array"
          },
          "glossary_mutated": {
            "const": false,
            "default": false,
            "title": "Glossary Mutated",
            "type": "boolean"
          },
          "glossary_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Glossary Set Sha256",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "link_entry_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Link Entry Id"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "replacement": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement"
          },
          "review_id": {
            "pattern": "^terminology-review-[A-Za-z0-9-]{8,80}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "enum": ["instructor", "admin"],
            "title": "Reviewer Role",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "analysis_id",
          "analysis_sha256",
          "lesson_revision",
          "course_revision",
          "dossier_sha256",
          "glossary_set_sha256",
          "glossaries",
          "block_document_sha256",
          "finding_id",
          "action",
          "reason",
          "reviewer_id",
          "reviewer_role",
          "reviewed_at"
        ],
        "title": "LessonTerminologyReviewRecord",
        "type": "object"
      },
      "LessonTerminologyReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["replace", "add_definition", "link", "allow_context", "dismiss"],
            "title": "Action",
            "type": "string"
          },
          "allowed_context": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Allowed Context"
          },
          "context": {
            "$ref": "#/components/schemas/LessonTerminologyAnalysisContext"
          },
          "definition": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Definition"
          },
          "expected_analysis_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Analysis Sha256",
            "type": "string"
          },
          "expected_block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Block Document Sha256",
            "type": "string"
          },
          "expected_course_revision": {
            "minimum": 1.0,
            "title": "Expected Course Revision",
            "type": "integer"
          },
          "expected_dossier_revision": {
            "minimum": 0.0,
            "title": "Expected Dossier Revision",
            "type": "integer"
          },
          "expected_dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Dossier Sha256",
            "type": "string"
          },
          "expected_lesson_revision": {
            "minimum": 1.0,
            "title": "Expected Lesson Revision",
            "type": "integer"
          },
          "expected_module_revision": {
            "minimum": 1.0,
            "title": "Expected Module Revision",
            "type": "integer"
          },
          "finding_id": {
            "pattern": "^terminology-finding-[a-f0-9]{24}$",
            "title": "Finding Id",
            "type": "string"
          },
          "link_entry_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Link Entry Id"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "replacement": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement"
          }
        },
        "required": [
          "expected_lesson_revision",
          "expected_module_revision",
          "expected_course_revision",
          "expected_dossier_revision",
          "expected_dossier_sha256",
          "expected_block_document_sha256",
          "expected_analysis_sha256",
          "context",
          "action",
          "finding_id",
          "reason"
        ],
        "title": "LessonTerminologyReviewRequest",
        "type": "object"
      },
      "LessonTerminologyReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "projection": {
            "$ref": "#/components/schemas/LessonDossierProjection"
          },
          "receipt": {
            "$ref": "#/components/schemas/LessonTerminologyReviewReceipt"
          }
        },
        "required": ["projection", "receipt"],
        "title": "LessonTerminologyReviewResponse",
        "type": "object"
      },
      "LessonTerminologyRule": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "undefined",
              "inconsistent",
              "deprecated",
              "forbidden",
              "ambiguous",
              "acronym_first_use",
              "spelling",
              "casing",
              "glossary_link_drift"
            ],
            "title": "Category",
            "type": "string"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "rule_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,119}$",
            "title": "Rule Id",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["category", "rule_id", "version", "description"],
        "title": "LessonTerminologyRule",
        "type": "object"
      },
      "LessonTerminologyScopeResult": {
        "additionalProperties": false,
        "properties": {
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyConflict"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "direct_course_entry_count": {
            "minimum": 0.0,
            "title": "Direct Course Entry Count",
            "type": "integer"
          },
          "inherited_domain_entry_count": {
            "minimum": 0.0,
            "title": "Inherited Domain Entry Count",
            "type": "integer"
          },
          "inherited_institution_entry_count": {
            "minimum": 0.0,
            "title": "Inherited Institution Entry Count",
            "type": "integer"
          },
          "resolutions": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyTermResolution"
            },
            "title": "Resolutions",
            "type": "array"
          }
        },
        "required": [
          "resolutions",
          "conflicts",
          "direct_course_entry_count",
          "inherited_domain_entry_count",
          "inherited_institution_entry_count"
        ],
        "title": "LessonTerminologyScopeResult",
        "type": "object"
      },
      "LessonTerminologyTermResolution": {
        "additionalProperties": false,
        "properties": {
          "effective": {
            "title": "Effective",
            "type": "boolean"
          },
          "entry_id": {
            "title": "Entry Id",
            "type": "string"
          },
          "entry_revision_id": {
            "title": "Entry Revision Id",
            "type": "string"
          },
          "glossary_id": {
            "title": "Glossary Id",
            "type": "string"
          },
          "glossary_revision_id": {
            "title": "Glossary Revision Id",
            "type": "string"
          },
          "inherited": {
            "title": "Inherited",
            "type": "boolean"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/LessonTerminologyOwner"
          },
          "scope": {
            "enum": ["institution", "domain", "course"],
            "title": "Scope",
            "type": "string"
          },
          "status": {
            "enum": ["preferred", "allowed", "deprecated", "forbidden"],
            "title": "Status",
            "type": "string"
          },
          "term": {
            "title": "Term",
            "type": "string"
          }
        },
        "required": [
          "entry_id",
          "entry_revision_id",
          "term",
          "status",
          "glossary_id",
          "glossary_revision_id",
          "scope",
          "inherited",
          "locale",
          "owner",
          "effective"
        ],
        "title": "LessonTerminologyTermResolution",
        "type": "object"
      },
      "LessonTerminologyToken": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "title": "Block Id",
            "type": "string"
          },
          "end_offset": {
            "exclusiveMinimum": 0.0,
            "title": "End Offset",
            "type": "integer"
          },
          "excluded_range_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Excluded Range Ids",
            "type": "array"
          },
          "field_path": {
            "pattern": "^/",
            "title": "Field Path",
            "type": "string"
          },
          "normalized": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Normalized",
            "type": "string"
          },
          "script": {
            "enum": ["Latin", "Han", "Hiragana", "Katakana", "Mixed", "Other"],
            "title": "Script",
            "type": "string"
          },
          "start_offset": {
            "minimum": 0.0,
            "title": "Start Offset",
            "type": "integer"
          },
          "surface": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Surface",
            "type": "string"
          },
          "token_id": {
            "pattern": "^terminology-token-[a-f0-9]{24}$",
            "title": "Token Id",
            "type": "string"
          }
        },
        "required": [
          "token_id",
          "block_id",
          "field_path",
          "start_offset",
          "end_offset",
          "surface",
          "normalized",
          "script"
        ],
        "title": "LessonTerminologyToken",
        "type": "object"
      },
      "LessonTerminologyUsageLink": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "end_offset": {
            "exclusiveMinimum": 0.0,
            "title": "End Offset",
            "type": "integer"
          },
          "entry_id": {
            "title": "Entry Id",
            "type": "string"
          },
          "entry_revision_id": {
            "title": "Entry Revision Id",
            "type": "string"
          },
          "field_path": {
            "pattern": "^/",
            "title": "Field Path",
            "type": "string"
          },
          "glossary_id": {
            "title": "Glossary Id",
            "type": "string"
          },
          "glossary_revision_id": {
            "title": "Glossary Revision Id",
            "type": "string"
          },
          "href": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Href",
            "type": "string"
          },
          "start_offset": {
            "minimum": 0.0,
            "title": "Start Offset",
            "type": "integer"
          },
          "usage_link_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Usage Link Id",
            "type": "string"
          }
        },
        "required": [
          "usage_link_id",
          "block_id",
          "field_path",
          "start_offset",
          "end_offset",
          "glossary_id",
          "glossary_revision_id",
          "entry_id",
          "entry_revision_id",
          "href"
        ],
        "title": "LessonTerminologyUsageLink",
        "type": "object"
      },
      "LessonTerminologyVariant": {
        "additionalProperties": false,
        "properties": {
          "capitalization": {
            "default": "case_insensitive",
            "enum": [
              "exact",
              "case_insensitive",
              "sentence_case",
              "title_case",
              "uppercase",
              "lowercase"
            ],
            "title": "Capitalization",
            "type": "string"
          },
          "context_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Context Ids",
            "type": "array"
          },
          "kind": {
            "enum": ["spelling", "alias", "abbreviation", "acronym", "inflection"],
            "title": "Kind",
            "type": "string"
          },
          "value": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "kind"],
        "title": "LessonTerminologyVariant",
        "type": "object"
      },
      "LessonTerminologyWitness": {
        "additionalProperties": false,
        "properties": {
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "glossaries": {
            "items": {
              "$ref": "#/components/schemas/LessonTerminologyGlossaryWitness"
            },
            "title": "Glossaries",
            "type": "array"
          },
          "glossary_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Glossary Set Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "title": "Module Id",
            "type": "string"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          }
        },
        "required": [
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "dossier_revision",
          "dossier_sha256",
          "block_document_sha256",
          "glossary_set_sha256",
          "glossaries"
        ],
        "title": "LessonTerminologyWitness",
        "type": "object"
      },
      "LessonUpdate": {
        "description": "Schema for updating lesson fields.",
        "properties": {
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "content_type": {
            "anyOf": [
              {
                "pattern": "^(text|video|interactive|quiz|code_exercise)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Type"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "duration_minutes": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Minutes"
          },
          "is_free_preview": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Free Preview"
          },
          "is_published": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Published"
          },
          "order": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Order"
          },
          "resource_urls": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Urls"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "LessonUpdate",
        "type": "object"
      },
      "LessonVideoBlock": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LessonBlockAccessibility"
          },
          "attachment": {
            "$ref": "#/components/schemas/LessonGovernedAttachment"
          },
          "audio_description_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audio Description Ref"
          },
          "block_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Block Id",
            "type": "string"
          },
          "caption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Caption",
            "type": "string"
          },
          "captions_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Captions Ref"
          },
          "kind": {
            "const": "video",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "default": "en",
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "origin_block_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origin Block Id"
          },
          "parent_id": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Id"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reference_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Reference Ids",
            "type": "array"
          },
          "schema_version": {
            "default": "1.1.0",
            "enum": ["1.0.0", "1.1.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "sign_language_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Language Ref"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Source Ids",
            "type": "array"
          },
          "text_description": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Description"
          },
          "transcript_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Ref"
          }
        },
        "required": ["block_id", "position", "accessibility", "kind", "attachment", "caption"],
        "title": "LessonVideoBlock",
        "type": "object"
      },
      "LevelAggregate": {
        "additionalProperties": false,
        "description": "One metric at one level of the course structure.",
        "properties": {
          "level": {
            "enum": ["course", "module", "lesson", "activity", "content_step", "item"],
            "title": "Level",
            "type": "string"
          },
          "level_key": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Level Key",
            "type": "string"
          },
          "measured": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          }
        },
        "required": ["metric_id", "level", "level_key", "measured"],
        "title": "LevelAggregate",
        "type": "object"
      },
      "LifecycleActionRequest": {
        "additionalProperties": false,
        "description": "What a caller may ask of a credential that already exists.\n\nThere is no field naming the acting party or the resulting status. The\nactor is whoever called; the status comes from `STATUS_AFTER`.",
        "properties": {
          "acted_by_role": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Acted By Role",
            "type": "string"
          },
          "action": {
            "enum": ["expire", "renew", "revoke", "replace"],
            "title": "Action",
            "type": "string"
          },
          "new_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Expires At"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 20,
            "title": "Reason",
            "type": "string"
          },
          "replaced_by": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replaced By"
          }
        },
        "required": ["action", "acted_by_role", "reason"],
        "title": "LifecycleActionRequest",
        "type": "object"
      },
      "LifecycleEvent": {
        "additionalProperties": false,
        "description": "A status change and nothing else.\n\nThere is no field here naming a criterion, an evidence item or a subject.\nRevoking a credential says something about the credential; it does not\nrewrite what the learner did to earn it.",
        "properties": {
          "acted_at": {
            "format": "date-time",
            "title": "Acted At",
            "type": "string"
          },
          "acted_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Acted By",
            "type": "string"
          },
          "acted_by_role": {
            "enum": ["registrar", "programme_director", "awarding_body"],
            "title": "Acted By Role",
            "type": "string"
          },
          "action": {
            "enum": ["expire", "renew", "revoke", "replace"],
            "title": "Action",
            "type": "string"
          },
          "alters_learning_evidence": {
            "const": false,
            "default": false,
            "title": "Alters Learning Evidence",
            "type": "boolean"
          },
          "credential_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Credential Id",
            "type": "string"
          },
          "event_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Event Id",
            "type": "string"
          },
          "new_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Expires At"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "replaced_by_credential_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replaced By Credential Id"
          },
          "status_after": {
            "enum": ["active", "expired", "revoked", "replaced"],
            "title": "Status After",
            "type": "string"
          },
          "status_before": {
            "enum": ["active", "expired", "revoked", "replaced"],
            "title": "Status Before",
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "credential_id",
          "action",
          "status_before",
          "status_after",
          "acted_by",
          "acted_by_role",
          "acted_at",
          "reason"
        ],
        "title": "LifecycleEvent",
        "type": "object"
      },
      "LifecycleReport": {
        "additionalProperties": false,
        "properties": {
          "automatic_replacements": {
            "const": 0,
            "default": 0,
            "title": "Automatic Replacements",
            "type": "integer"
          },
          "challenger_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Challenger Evaluator Ids",
            "type": "array"
          },
          "champion_evaluator_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Champion Evaluator Ids",
            "type": "array"
          },
          "comparisons": {
            "items": {
              "$ref": "#/components/schemas/ChallengerComparison"
            },
            "maxItems": 50,
            "title": "Comparisons",
            "type": "array"
          },
          "promotions_pending_human_review": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Promotions Pending Human Review",
            "type": "array"
          }
        },
        "required": [
          "comparisons",
          "champion_evaluator_ids",
          "challenger_evaluator_ids",
          "promotions_pending_human_review"
        ],
        "title": "LifecycleReport",
        "type": "object"
      },
      "LineageEdge": {
        "additionalProperties": false,
        "description": "One `from -> to` in the provenance graph.",
        "properties": {
          "relation": {
            "enum": ["derived_from", "cites", "verified_by", "proposed_by", "approved_by"],
            "title": "Relation",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["source_id", "target_id", "relation"],
        "title": "LineageEdge",
        "type": "object"
      },
      "LineageEntry": {
        "additionalProperties": false,
        "description": "One admitted record and the source it came through.",
        "properties": {
          "admitted_for": {
            "enum": ["model_training", "model_evaluation", "quality_monitoring"],
            "title": "Admitted For",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "record_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Record Id",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          }
        },
        "required": ["record_id", "source_id", "content_sha256", "admitted_for"],
        "title": "LineageEntry",
        "type": "object"
      },
      "LineageRecord": {
        "additionalProperties": false,
        "description": "Signal to queue item to draft to gate to publication, with no gaps.",
        "properties": {
          "draft_revision_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Draft Revision Id"
          },
          "follow_up_signal_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Follow Up Signal Count"
          },
          "gate_outcome": {
            "enum": ["not_submitted", "pending", "passed", "failed"],
            "title": "Gate Outcome",
            "type": "string"
          },
          "proposal_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposal Id"
          },
          "publication_outcome": {
            "enum": ["not_published", "published", "withdrawn"],
            "title": "Publication Outcome",
            "type": "string"
          },
          "published_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published Revision Sha256"
          },
          "queue_item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Queue Item Id",
            "type": "string"
          },
          "signal_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Signal Ids",
            "type": "array"
          }
        },
        "required": [
          "queue_item_id",
          "signal_ids",
          "proposal_id",
          "draft_revision_id",
          "gate_outcome",
          "publication_outcome"
        ],
        "title": "LineageRecord",
        "type": "object"
      },
      "LinkSubject": {
        "additionalProperties": false,
        "description": "What the link is about, in the owner's terms.",
        "properties": {
          "kind": {
            "enum": ["assessment_attempt", "submission", "grade", "learner_enrolment"],
            "title": "Kind",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["kind", "subject_id", "tenant_id"],
        "title": "LinkSubject",
        "type": "object"
      },
      "LinkVerdict": {
        "additionalProperties": false,
        "description": "What happened when somebody followed a link.",
        "properties": {
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "intent": {
            "enum": [
              "view_case",
              "view_appeal",
              "view_decision",
              "raise_appeal",
              "contact_support"
            ],
            "title": "Intent",
            "type": "string"
          },
          "next_action": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 4,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Action"
          },
          "outcome": {
            "enum": [
              "allowed",
              "expired",
              "replayed",
              "forbidden",
              "unauthenticated",
              "not_found",
              "signature_invalid"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "return_path": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Return Path",
            "type": "string"
          },
          "schema_version": {
            "const": "9.7.0",
            "default": "9.7.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["outcome", "intent", "return_path"],
        "title": "LinkVerdict",
        "type": "object"
      },
      "LiveMeasurement": {
        "additionalProperties": false,
        "description": "A real in-process run, so the gate has something it actually measured.",
        "properties": {
          "clock": {
            "const": "time.perf_counter_ns",
            "title": "Clock",
            "type": "string"
          },
          "decisions": {
            "maximum": 200.0,
            "minimum": 1.0,
            "title": "Decisions",
            "type": "integer"
          },
          "every_stage_timed": {
            "title": "Every Stage Timed",
            "type": "boolean"
          },
          "note": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Note",
            "type": "string"
          },
          "percentiles_ordered": {
            "title": "Percentiles Ordered",
            "type": "boolean"
          }
        },
        "required": ["decisions", "percentiles_ordered", "every_stage_timed", "clock", "note"],
        "title": "LiveMeasurement",
        "type": "object"
      },
      "LocalPublicationTime": {
        "additionalProperties": false,
        "description": "A wall-clock publication time in a named zone. Never an instant.",
        "properties": {
          "wall": {
            "format": "date-time",
            "title": "Wall",
            "type": "string"
          },
          "zone": {
            "maxLength": 60,
            "minLength": 3,
            "title": "Zone",
            "type": "string"
          }
        },
        "required": ["wall", "zone"],
        "title": "LocalPublicationTime",
        "type": "object"
      },
      "LocalWindow": {
        "additionalProperties": false,
        "description": "A wall-clock period in a named zone. Never an instant on its own.",
        "properties": {
          "all_day": {
            "default": false,
            "title": "All Day",
            "type": "boolean"
          },
          "ends_at": {
            "format": "date-time",
            "title": "Ends At",
            "type": "string"
          },
          "starts_at": {
            "format": "date-time",
            "title": "Starts At",
            "type": "string"
          },
          "zone": {
            "maxLength": 60,
            "minLength": 3,
            "title": "Zone",
            "type": "string"
          }
        },
        "required": ["starts_at", "ends_at", "zone"],
        "title": "LocalWindow",
        "type": "object"
      },
      "LocaleAssignment": {
        "additionalProperties": false,
        "description": "Who is doing the work, and who is checking it.",
        "properties": {
          "assigned_at": {
            "format": "date-time",
            "title": "Assigned At",
            "type": "string"
          },
          "reviewer": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Reviewer",
            "type": "string"
          },
          "translator": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Translator",
            "type": "string"
          }
        },
        "required": ["translator", "reviewer", "assigned_at"],
        "title": "LocaleAssignment",
        "type": "object"
      },
      "LocaleBuildDecision": {
        "additionalProperties": false,
        "description": "Whether this locale may ship, and everything standing in the way.",
        "properties": {
          "cleared": {
            "title": "Cleared",
            "type": "boolean"
          },
          "fallbacks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FallbackDecision"
            },
            "title": "Fallbacks",
            "type": "array"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          }
        },
        "required": ["job_id", "locale", "cleared"],
        "title": "LocaleBuildDecision",
        "type": "object"
      },
      "LocaleGlossaryTerm": {
        "additionalProperties": false,
        "description": "A term a course has decided how to render, per locale.",
        "properties": {
          "course_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Course Id",
            "type": "string"
          },
          "do_not_translate": {
            "default": false,
            "title": "Do Not Translate",
            "type": "boolean"
          },
          "forbidden_targets": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Forbidden Targets",
            "type": "array"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "source_term": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Source Term",
            "type": "string"
          },
          "target_locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Target Locale",
            "type": "string"
          },
          "target_term": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Term"
          },
          "term_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Term Id",
            "type": "string"
          }
        },
        "required": ["term_id", "source_term", "target_locale", "course_id"],
        "title": "LocaleGlossaryTerm",
        "type": "object"
      },
      "LocaleJob": {
        "additionalProperties": false,
        "description": "Everything being translated into one locale for one subject revision.",
        "properties": {
          "assignment": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LocaleAssignment"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "job_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Job Id",
            "type": "string"
          },
          "locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "source_locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Source Locale",
            "type": "string"
          },
          "source_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Revision",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["item", "lesson", "course", "rubric", "media", "objective"],
            "title": "Subject Kind",
            "type": "string"
          },
          "units": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TranslationUnit"
            },
            "title": "Units",
            "type": "array"
          },
          "version": {
            "default": 1,
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "job_id",
          "subject_kind",
          "subject_id",
          "source_revision",
          "source_locale",
          "locale",
          "created_at"
        ],
        "title": "LocaleJob",
        "type": "object"
      },
      "LocaleJobDetail": {
        "additionalProperties": false,
        "description": "One job, its units, and what a build would do with the rest.\n\nThe locale facts travel with the job rather than being reimplemented in the\nclient: a plural table copied into a UI drifts from the one the gates use,\nand then the screen and the verdict disagree about the same locale.",
        "properties": {
          "direction": {
            "title": "Direction",
            "type": "string"
          },
          "expansion_budget": {
            "default": [0.0, 0.0],
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "type": "number"
              },
              {
                "type": "number"
              }
            ],
            "title": "Expansion Budget",
            "type": "array"
          },
          "fallbacks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FallbackDecision"
            },
            "title": "Fallbacks",
            "type": "array"
          },
          "job": {
            "$ref": "#/components/schemas/LocaleJob"
          },
          "plural_categories": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Plural Categories",
            "type": "array"
          },
          "plural_language_known": {
            "default": false,
            "title": "Plural Language Known",
            "type": "boolean"
          },
          "reading_rate": {
            "default": 0.0,
            "title": "Reading Rate",
            "type": "number"
          },
          "stale_unit_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Stale Unit Ids",
            "type": "array"
          },
          "state": {
            "title": "State",
            "type": "string"
          }
        },
        "required": ["job", "direction", "state"],
        "title": "LocaleJobDetail",
        "type": "object"
      },
      "LocaleJobSummary": {
        "additionalProperties": false,
        "description": "One job as the index lists it.",
        "properties": {
          "approved_count": {
            "title": "Approved Count",
            "type": "integer"
          },
          "assessed_unapproved": {
            "title": "Assessed Unapproved",
            "type": "integer"
          },
          "direction": {
            "title": "Direction",
            "type": "string"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "source_locale": {
            "title": "Source Locale",
            "type": "string"
          },
          "source_revision": {
            "title": "Source Revision",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "title": "Subject Kind",
            "type": "string"
          },
          "unit_count": {
            "title": "Unit Count",
            "type": "integer"
          }
        },
        "required": [
          "job_id",
          "subject_kind",
          "subject_id",
          "locale",
          "source_locale",
          "direction",
          "source_revision",
          "state",
          "unit_count",
          "approved_count",
          "assessed_unapproved"
        ],
        "title": "LocaleJobSummary",
        "type": "object"
      },
      "LocaleParityFinding": {
        "additionalProperties": false,
        "description": "One gate's answer for one locale.",
        "properties": {
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "gate": {
            "enum": [
              "source",
              "citation",
              "meaning",
              "key",
              "scoring",
              "terminology",
              "layout",
              "accessibility",
              "media_sync",
              "standards_export"
            ],
            "title": "Gate",
            "type": "string"
          },
          "unit_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unit Ids",
            "type": "array"
          },
          "verdict": {
            "enum": ["pass", "fail", "requires_human", "not_applicable", "unmeasurable"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["gate", "verdict", "detail"],
        "title": "LocaleParityFinding",
        "type": "object"
      },
      "LocaleParityReport": {
        "additionalProperties": false,
        "description": "Every gate, for one locale, over one job.",
        "properties": {
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/LocaleParityFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "job_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Job Id",
            "type": "string"
          },
          "locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "source_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Revision",
            "type": "string"
          }
        },
        "required": ["job_id", "locale", "source_revision", "findings", "computed_at"],
        "title": "LocaleParityReport",
        "type": "object"
      },
      "LocaleParityRequest": {
        "description": "The content facts only the caller has.\n\nThere is deliberately no `attestations` field: the meaning gate is the one\nno automation may clear, and a request that carried its own attestations\nwould clear it by asking.",
        "properties": {
          "current_revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Current Revision",
            "type": "string"
          },
          "current_source": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Current Source",
            "type": "object"
          },
          "declared_empty": {
            "default": [],
            "items": {
              "enum": [
                "source",
                "citation",
                "meaning",
                "key",
                "scoring",
                "terminology",
                "layout",
                "accessibility",
                "media_sync",
                "standards_export"
              ],
              "type": "string"
            },
            "title": "Declared Empty",
            "type": "array"
          },
          "interactions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InteractionOptions"
            },
            "title": "Interactions",
            "type": "array"
          },
          "media_duration_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Duration Ms"
          },
          "source_captions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CaptionCue"
            },
            "title": "Source Captions",
            "type": "array"
          },
          "standards_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Standards Codes",
            "type": "array"
          },
          "target_captions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CaptionCue"
            },
            "title": "Target Captions",
            "type": "array"
          },
          "unavailable": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Unavailable",
            "type": "object"
          }
        },
        "required": ["current_revision"],
        "title": "LocaleParityRequest",
        "type": "object"
      },
      "LocaleRule": {
        "additionalProperties": false,
        "properties": {
          "allow_fallback": {
            "title": "Allow Fallback",
            "type": "boolean"
          },
          "fallback_locales": {
            "default": [],
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Fallback Locales",
            "type": "array"
          },
          "required_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Required Locale",
            "type": "string"
          }
        },
        "required": ["required_locale", "allow_fallback"],
        "title": "LocaleRule",
        "type": "object"
      },
      "LocaleVariantSnapshot": {
        "additionalProperties": false,
        "properties": {
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "source_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Source Locale",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "variant_id": {
            "maxLength": 180,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": [
          "locale",
          "variant_id",
          "revision",
          "revision_sha256",
          "source_locale",
          "source_revision_sha256"
        ],
        "title": "LocaleVariantSnapshot",
        "type": "object"
      },
      "Locator": {
        "additionalProperties": false,
        "description": "Exactly where in a source something is. Typed, so it can be checked.",
        "properties": {
          "end": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "End"
          },
          "kind": {
            "enum": ["doi", "isbn", "url", "page_range", "timestamp_range", "section"],
            "title": "Kind",
            "type": "string"
          },
          "start": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start"
          },
          "value": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["kind"],
        "title": "Locator",
        "type": "object"
      },
      "LocatorView": {
        "additionalProperties": false,
        "description": "A typed locator as a person reads it, and where it can be followed.",
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "reference": {
            "title": "Reference",
            "type": "string"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "required": ["kind", "reference"],
        "title": "LocatorView",
        "type": "object"
      },
      "LoginRequest": {
        "description": "Credentials for user login.",
        "properties": {
          "email": {
            "format": "email",
            "title": "Email",
            "type": "string"
          },
          "password": {
            "maxLength": 128,
            "minLength": 8,
            "title": "Password",
            "type": "string"
          }
        },
        "required": ["email", "password"],
        "title": "LoginRequest",
        "type": "object"
      },
      "LtiContextResponse": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": ["id"],
        "title": "LtiContextResponse",
        "type": "object"
      },
      "LtiDeepLinkingContentItem": {
        "properties": {
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Custom",
            "type": "object"
          },
          "line_item": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Line Item"
          },
          "presentation": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Presentation"
          },
          "title": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "type": {
            "default": "ltiResourceLink",
            "enum": ["ltiResourceLink", "link", "html", "file"],
            "title": "Type",
            "type": "string"
          },
          "url": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Url",
            "type": "string"
          }
        },
        "required": ["title", "url"],
        "title": "LtiDeepLinkingContentItem",
        "type": "object"
      },
      "LtiDeepLinkingResponse": {
        "description": "The signed answer, and where the browser must post it.\n\n`return_url` comes from the launch's deep-linking settings, never from the\ncaller: it is the platform's own endpoint for this request.",
        "properties": {
          "content_items": {
            "items": {
              "$ref": "#/components/schemas/LtiDeepLinkingContentItem"
            },
            "title": "Content Items",
            "type": "array"
          },
          "jwt": {
            "title": "Jwt",
            "type": "string"
          },
          "message_type": {
            "const": "LtiDeepLinkingResponse",
            "default": "LtiDeepLinkingResponse",
            "title": "Message Type",
            "type": "string"
          },
          "return_url": {
            "title": "Return Url",
            "type": "string"
          }
        },
        "required": ["jwt", "content_items", "return_url"],
        "title": "LtiDeepLinkingResponse",
        "type": "object"
      },
      "LtiDeepLinkingResponseRequest": {
        "description": "What the author selected.\n\nThere is no `data` field: the platform's opaque value travels in the\nlaunch and is echoed from there. A caller who could choose it could hand\nthe platform somebody else's state.",
        "properties": {
          "content_items": {
            "items": {
              "$ref": "#/components/schemas/LtiDeepLinkingContentItem"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Content Items",
            "type": "array"
          },
          "launch_token": {
            "minLength": 20,
            "title": "Launch Token",
            "type": "string"
          }
        },
        "required": ["launch_token", "content_items"],
        "title": "LtiDeepLinkingResponseRequest",
        "type": "object"
      },
      "LtiLaunchRequest": {
        "description": "The launch coming back from the platform.\n\nThe nonce is not here: a nonce a caller supplies is a value the caller\nchose to match. It is the one this tool minted at login, found through\n`state`, and spent on first use.",
        "properties": {
          "id_token": {
            "minLength": 20,
            "title": "Id Token",
            "type": "string"
          },
          "platform_id": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Platform Id"
          },
          "state": {
            "maxLength": 1024,
            "minLength": 1,
            "title": "State",
            "type": "string"
          }
        },
        "required": ["id_token", "state"],
        "title": "LtiLaunchRequest",
        "type": "object"
      },
      "LtiLaunchResponse": {
        "description": "What a verified launch entitles the caller to, and who it is.\n\n`user_id` and `principal` are signed identity. `display_name` and\n`display_email` are whatever the platform chose to send: they are shown,\nnever matched on, and a launch that carries neither is still a launch.",
        "properties": {
          "canonical_roles": {
            "items": {
              "enum": [
                "platform-administrator",
                "institution-administrator",
                "content-author",
                "educator",
                "learner",
                "mentor-observer",
                "test-user-marker"
              ],
              "type": "string"
            },
            "title": "Canonical Roles",
            "type": "array"
          },
          "context": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LtiContextResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "deployment_id": {
            "title": "Deployment Id",
            "type": "string"
          },
          "display_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Email"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "is_test_user": {
            "default": false,
            "title": "Is Test User",
            "type": "boolean"
          },
          "issuer": {
            "title": "Issuer",
            "type": "string"
          },
          "launch_id": {
            "title": "Launch Id",
            "type": "string"
          },
          "launch_target_path": {
            "title": "Launch Target Path",
            "type": "string"
          },
          "launch_token": {
            "title": "Launch Token",
            "type": "string"
          },
          "message_type": {
            "title": "Message Type",
            "type": "string"
          },
          "operations": {
            "items": {
              "enum": [
                "manage-lti-registration",
                "launch-resource",
                "select-content",
                "author-content",
                "manage-course-placement",
                "view-context-roster",
                "manage-lineitems",
                "post-scores",
                "view-context-results",
                "view-own-result"
              ],
              "type": "string"
            },
            "title": "Operations",
            "type": "array"
          },
          "platform_id": {
            "title": "Platform Id",
            "type": "string"
          },
          "principal": {
            "title": "Principal",
            "type": "string"
          },
          "resource_link": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LtiResourceLinkResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "title": "Roles",
            "type": "array"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "unrecognised_roles": {
            "items": {
              "type": "string"
            },
            "title": "Unrecognised Roles",
            "type": "array"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "launch_id",
          "launch_token",
          "platform_id",
          "issuer",
          "deployment_id",
          "message_type",
          "user_id",
          "principal",
          "roles",
          "canonical_roles",
          "operations",
          "launch_target_path",
          "expires_at"
        ],
        "title": "LtiLaunchResponse",
        "type": "object"
      },
      "LtiLineItemRequest": {
        "properties": {
          "context_id": {
            "minLength": 1,
            "title": "Context Id",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "platform_id": {
            "minLength": 1,
            "title": "Platform Id",
            "type": "string"
          },
          "resource_link_id": {
            "minLength": 1,
            "title": "Resource Link Id",
            "type": "string"
          },
          "score_maximum": {
            "exclusiveMinimum": 0.0,
            "title": "Score Maximum",
            "type": "number"
          },
          "tag": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          }
        },
        "required": ["platform_id", "context_id", "resource_link_id", "label", "score_maximum"],
        "title": "LtiLineItemRequest",
        "type": "object"
      },
      "LtiLineItemResponse": {
        "properties": {
          "context_id": {
            "minLength": 1,
            "title": "Context Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "line_item_id": {
            "title": "Line Item Id",
            "type": "string"
          },
          "platform_id": {
            "minLength": 1,
            "title": "Platform Id",
            "type": "string"
          },
          "resource_link_id": {
            "minLength": 1,
            "title": "Resource Link Id",
            "type": "string"
          },
          "score_maximum": {
            "exclusiveMinimum": 0.0,
            "title": "Score Maximum",
            "type": "number"
          },
          "tag": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          }
        },
        "required": [
          "platform_id",
          "context_id",
          "resource_link_id",
          "label",
          "score_maximum",
          "line_item_id",
          "created_at"
        ],
        "title": "LtiLineItemResponse",
        "type": "object"
      },
      "LtiLoginInitiationRequest": {
        "description": "The platform asking this tool to begin a launch (OIDC third-party login).\n\nA platform sends `iss` and `client_id` and nothing else that identifies\nit: `platform_id` is our own name for a registration, so it is optional\nand the registration is found by issuer and client when it is absent.\nMeasured against Moodle 4.5, which sends exactly these fields.",
        "properties": {
          "client_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Client Id"
          },
          "iss": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Iss",
            "type": "string"
          },
          "login_hint": {
            "maxLength": 1024,
            "minLength": 1,
            "title": "Login Hint",
            "type": "string"
          },
          "lti_deployment_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lti Deployment Id"
          },
          "lti_message_hint": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lti Message Hint"
          },
          "platform_id": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Platform Id"
          },
          "target_link_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Target Link Uri",
            "type": "string"
          }
        },
        "required": ["iss", "login_hint", "target_link_uri"],
        "title": "LtiLoginInitiationRequest",
        "type": "object"
      },
      "LtiLoginInitiationResponse": {
        "description": "Where the browser goes next, and what this tool will require back.",
        "properties": {
          "authorization_url": {
            "title": "Authorization Url",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          }
        },
        "required": ["authorization_url", "state", "expires_at"],
        "title": "LtiLoginInitiationResponse",
        "type": "object"
      },
      "LtiNamesRolesMemberResponse": {
        "properties": {
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "title": "Roles",
            "type": "array"
          },
          "status": {
            "default": "Active",
            "enum": ["Active", "Inactive"],
            "title": "Status",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": ["user_id", "roles"],
        "title": "LtiNamesRolesMemberResponse",
        "type": "object"
      },
      "LtiNamesRolesResponse": {
        "properties": {
          "context_id": {
            "title": "Context Id",
            "type": "string"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/LtiNamesRolesMemberResponse"
            },
            "title": "Members",
            "type": "array"
          },
          "next_page": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Page"
          }
        },
        "required": ["context_id", "members"],
        "title": "LtiNamesRolesResponse",
        "type": "object"
      },
      "LtiPlatformRegistrationRequest": {
        "description": "What a platform must tell us to be trusted, and it is never a secret.\n\nLTI 1.3 trust is asymmetric: the platform publishes the public half of its\nsigning key at `platform_jwks_url` and we publish ours at `tool_jwks_url`.\nRegistering a shared secret instead would let everyone who holds it mint a\nlaunch for anybody, which is why there is nowhere here to put one.",
        "properties": {
          "allowed_scopes": {
            "items": {
              "enum": [
                "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly",
                "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
                "https://purl.imsglobal.org/spec/lti-ags/scope/score",
                "https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly",
                "https://purl.imsglobal.org/spec/lti-dl/scope/contentitem"
              ],
              "type": "string"
            },
            "title": "Allowed Scopes",
            "type": "array"
          },
          "auth_login_url": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Auth Login Url",
            "type": "string"
          },
          "client_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Client Id",
            "type": "string"
          },
          "deployment_ids": {
            "items": {
              "maxLength": 255,
              "minLength": 1,
              "type": "string"
            },
            "minItems": 1,
            "title": "Deployment Ids",
            "type": "array"
          },
          "issuer": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Issuer",
            "type": "string"
          },
          "platform_id": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Platform Id",
            "type": "string"
          },
          "platform_jwks_url": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Platform Jwks Url",
            "type": "string"
          },
          "status": {
            "default": "active",
            "enum": ["active", "suspended"],
            "title": "Status",
            "type": "string"
          },
          "token_url": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Token Url",
            "type": "string"
          },
          "tool_jwks_url": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Tool Jwks Url",
            "type": "string"
          },
          "tool_redirect_urls": {
            "items": {
              "format": "uri",
              "maxLength": 2083,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Tool Redirect Urls",
            "type": "array"
          }
        },
        "required": [
          "platform_id",
          "issuer",
          "client_id",
          "deployment_ids",
          "auth_login_url",
          "token_url",
          "platform_jwks_url",
          "tool_jwks_url",
          "tool_redirect_urls"
        ],
        "title": "LtiPlatformRegistrationRequest",
        "type": "object"
      },
      "LtiPlatformRegistrationResponse": {
        "properties": {
          "allowed_scopes": {
            "items": {
              "enum": [
                "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly",
                "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
                "https://purl.imsglobal.org/spec/lti-ags/scope/score",
                "https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly",
                "https://purl.imsglobal.org/spec/lti-dl/scope/contentitem"
              ],
              "type": "string"
            },
            "title": "Allowed Scopes",
            "type": "array"
          },
          "auth_login_url": {
            "title": "Auth Login Url",
            "type": "string"
          },
          "client_id": {
            "title": "Client Id",
            "type": "string"
          },
          "deployment_ids": {
            "items": {
              "type": "string"
            },
            "title": "Deployment Ids",
            "type": "array"
          },
          "issuer": {
            "title": "Issuer",
            "type": "string"
          },
          "platform_id": {
            "title": "Platform Id",
            "type": "string"
          },
          "platform_jwks_url": {
            "title": "Platform Jwks Url",
            "type": "string"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "status": {
            "enum": ["active", "suspended"],
            "title": "Status",
            "type": "string"
          },
          "token_url": {
            "title": "Token Url",
            "type": "string"
          },
          "tool_jwks_url": {
            "title": "Tool Jwks Url",
            "type": "string"
          },
          "tool_redirect_urls": {
            "items": {
              "type": "string"
            },
            "title": "Tool Redirect Urls",
            "type": "array"
          }
        },
        "required": [
          "platform_id",
          "issuer",
          "client_id",
          "deployment_ids",
          "auth_login_url",
          "token_url",
          "platform_jwks_url",
          "tool_jwks_url",
          "tool_redirect_urls",
          "allowed_scopes",
          "status",
          "registered_at"
        ],
        "title": "LtiPlatformRegistrationResponse",
        "type": "object"
      },
      "LtiResourceLinkResponse": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": ["id"],
        "title": "LtiResourceLinkResponse",
        "type": "object"
      },
      "LtiResultResponse": {
        "description": "What a line item currently holds for one user.",
        "properties": {
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "line_item_id": {
            "title": "Line Item Id",
            "type": "string"
          },
          "result_maximum": {
            "title": "Result Maximum",
            "type": "number"
          },
          "result_score": {
            "title": "Result Score",
            "type": "number"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "line_item_id",
          "user_id",
          "result_score",
          "result_maximum",
          "timestamp",
          "revision"
        ],
        "title": "LtiResultResponse",
        "type": "object"
      },
      "LtiResultsResponse": {
        "properties": {
          "line_item_id": {
            "title": "Line Item Id",
            "type": "string"
          },
          "next_page": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Page"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/LtiResultResponse"
            },
            "title": "Results",
            "type": "array"
          }
        },
        "required": ["line_item_id", "results"],
        "title": "LtiResultsResponse",
        "type": "object"
      },
      "LtiScoreRequest": {
        "description": "One score, as of the moment it describes.\n\n`timestamp` is when the score was true, not when it arrived. Two arrivals\ncarrying the same timestamp are the same score; one carrying an older\ntimestamp than the result already holds is a late event, and a late event\nnever overwrites a newer one.",
        "properties": {
          "activity_progress": {
            "enum": ["Initialized", "Started", "InProgress", "Submitted", "Completed"],
            "title": "Activity Progress",
            "type": "string"
          },
          "comment": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "grading_progress": {
            "enum": ["FullyGraded", "Pending", "PendingManual", "Failed"],
            "title": "Grading Progress",
            "type": "string"
          },
          "line_item_id": {
            "minLength": 1,
            "title": "Line Item Id",
            "type": "string"
          },
          "platform_id": {
            "minLength": 1,
            "title": "Platform Id",
            "type": "string"
          },
          "score_given": {
            "minimum": 0.0,
            "title": "Score Given",
            "type": "number"
          },
          "score_maximum": {
            "exclusiveMinimum": 0.0,
            "title": "Score Maximum",
            "type": "number"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "user_id": {
            "minLength": 1,
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "platform_id",
          "line_item_id",
          "user_id",
          "score_given",
          "score_maximum",
          "timestamp",
          "activity_progress",
          "grading_progress"
        ],
        "title": "LtiScoreRequest",
        "type": "object"
      },
      "LtiScoreResponse": {
        "properties": {
          "activity_progress": {
            "enum": ["Initialized", "Started", "InProgress", "Submitted", "Completed"],
            "title": "Activity Progress",
            "type": "string"
          },
          "comment": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "grading_progress": {
            "enum": ["FullyGraded", "Pending", "PendingManual", "Failed"],
            "title": "Grading Progress",
            "type": "string"
          },
          "ledger": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IngressReceipt"
              },
              {
                "type": "null"
              }
            ]
          },
          "line_item_id": {
            "minLength": 1,
            "title": "Line Item Id",
            "type": "string"
          },
          "platform_id": {
            "minLength": 1,
            "title": "Platform Id",
            "type": "string"
          },
          "score_given": {
            "minimum": 0.0,
            "title": "Score Given",
            "type": "number"
          },
          "score_id": {
            "title": "Score Id",
            "type": "string"
          },
          "score_maximum": {
            "exclusiveMinimum": 0.0,
            "title": "Score Maximum",
            "type": "number"
          },
          "synced": {
            "title": "Synced",
            "type": "boolean"
          },
          "synced_at": {
            "format": "date-time",
            "title": "Synced At",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "user_id": {
            "minLength": 1,
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "platform_id",
          "line_item_id",
          "user_id",
          "score_given",
          "score_maximum",
          "timestamp",
          "activity_progress",
          "grading_progress",
          "score_id",
          "synced",
          "synced_at"
        ],
        "title": "LtiScoreResponse",
        "type": "object"
      },
      "LtiTokenExchangeRequest": {
        "properties": {
          "client_assertion": {
            "minLength": 20,
            "title": "Client Assertion",
            "type": "string"
          },
          "client_id": {
            "minLength": 1,
            "title": "Client Id",
            "type": "string"
          },
          "grant_type": {
            "const": "client_credentials",
            "default": "client_credentials",
            "title": "Grant Type",
            "type": "string"
          },
          "platform_id": {
            "minLength": 1,
            "title": "Platform Id",
            "type": "string"
          },
          "scope": {
            "items": {
              "enum": [
                "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly",
                "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
                "https://purl.imsglobal.org/spec/lti-ags/scope/score",
                "https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly",
                "https://purl.imsglobal.org/spec/lti-dl/scope/contentitem"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Scope",
            "type": "array"
          }
        },
        "required": ["platform_id", "client_id", "client_assertion", "scope"],
        "title": "LtiTokenExchangeRequest",
        "type": "object"
      },
      "LtiTokenExchangeResponse": {
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "expires_in": {
            "title": "Expires In",
            "type": "integer"
          },
          "scope": {
            "items": {
              "enum": [
                "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly",
                "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
                "https://purl.imsglobal.org/spec/lti-ags/scope/score",
                "https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly",
                "https://purl.imsglobal.org/spec/lti-dl/scope/contentitem"
              ],
              "type": "string"
            },
            "title": "Scope",
            "type": "array"
          },
          "token_type": {
            "const": "bearer",
            "default": "bearer",
            "title": "Token Type",
            "type": "string"
          }
        },
        "required": ["access_token", "expires_in", "scope"],
        "title": "LtiTokenExchangeResponse",
        "type": "object"
      },
      "ManagedCourseDetailResponse": {
        "properties": {
          "audit_trail": {
            "items": {
              "$ref": "#/components/schemas/AuditEntryResponse"
            },
            "title": "Audit Trail",
            "type": "array"
          },
          "concept_graph": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseLinkedConceptGraphResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "concept_graph_validation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceConceptGraphValidationResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "course": {
            "$ref": "#/components/schemas/ManagedCourseResponse"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/CourseModuleSummaryResponse"
            },
            "title": "Modules",
            "type": "array"
          }
        },
        "required": ["course"],
        "title": "ManagedCourseDetailResponse",
        "type": "object"
      },
      "ManagedCourseResponse": {
        "properties": {
          "category": {
            "title": "Category",
            "type": "string"
          },
          "completion_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Completion Rate",
            "type": "integer"
          },
          "created_date": {
            "format": "date-time",
            "title": "Created Date",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "difficulty": {
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "enrollments": {
            "minimum": 0.0,
            "title": "Enrollments",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "instructor": {
            "title": "Instructor",
            "type": "string"
          },
          "instructor_id": {
            "title": "Instructor Id",
            "type": "string"
          },
          "rating": {
            "minimum": 0.0,
            "title": "Rating",
            "type": "number"
          },
          "revenue": {
            "minimum": 0.0,
            "title": "Revenue",
            "type": "number"
          },
          "status": {
            "enum": ["draft", "review", "published", "archived"],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "instructor",
          "instructor_id",
          "status",
          "category",
          "difficulty",
          "enrollments",
          "rating",
          "created_date",
          "description",
          "completion_rate",
          "revenue"
        ],
        "title": "ManagedCourseResponse",
        "type": "object"
      },
      "ManagedUserDetailResponse": {
        "properties": {
          "activity": {
            "items": {
              "$ref": "#/components/schemas/DashboardActivityResponse"
            },
            "title": "Activity",
            "type": "array"
          },
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/UserAssessmentSummaryResponse"
            },
            "title": "Assessments",
            "type": "array"
          },
          "courses": {
            "items": {
              "$ref": "#/components/schemas/UserCourseSummaryResponse"
            },
            "title": "Courses",
            "type": "array"
          },
          "investigations": {
            "items": {
              "$ref": "#/components/schemas/LearnerInvestigationRecordResponse"
            },
            "title": "Investigations",
            "type": "array"
          },
          "progression_summary": {
            "$ref": "#/components/schemas/LearnerProgressionSummaryResponse"
          },
          "study_history": {
            "items": {
              "$ref": "#/components/schemas/LearnerStudyHistoryEntryResponse"
            },
            "title": "Study History",
            "type": "array"
          },
          "user": {
            "$ref": "#/components/schemas/ManagedUserResponse"
          }
        },
        "required": ["user", "progression_summary"],
        "title": "ManagedUserDetailResponse",
        "type": "object"
      },
      "ManagedUserListResponse": {
        "properties": {
          "limit": {
            "minimum": 1.0,
            "title": "Limit",
            "type": "integer"
          },
          "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "users": {
            "items": {
              "$ref": "#/components/schemas/ManagedUserResponse"
            },
            "title": "Users",
            "type": "array"
          }
        },
        "required": ["total", "page", "limit"],
        "title": "ManagedUserListResponse",
        "type": "object"
      },
      "ManagedUserResponse": {
        "properties": {
          "avatar_url": {
            "title": "Avatar Url",
            "type": "string"
          },
          "completion_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Completion Rate",
            "type": "integer"
          },
          "courses_enrolled": {
            "minimum": 0.0,
            "title": "Courses Enrolled",
            "type": "integer"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "investigation_status": {
            "anyOf": [
              {
                "enum": ["watch", "open", "resolved"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Investigation Status"
          },
          "join_date": {
            "format": "date-time",
            "title": "Join Date",
            "type": "string"
          },
          "last_active": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Active"
          },
          "learner_progress_state": {
            "anyOf": [
              {
                "enum": ["on_track", "needs_attention", "paused", "under_investigation"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Learner Progress State"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "role": {
            "enum": ["student", "instructor", "admin", "moderator"],
            "title": "Role",
            "type": "string"
          },
          "status": {
            "enum": ["active", "inactive", "suspended", "pending"],
            "title": "Status",
            "type": "string"
          },
          "study_hold_active": {
            "default": false,
            "title": "Study Hold Active",
            "type": "boolean"
          },
          "total_time_spent": {
            "minimum": 0.0,
            "title": "Total Time Spent",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "email",
          "role",
          "status",
          "courses_enrolled",
          "join_date",
          "avatar_url",
          "completion_rate",
          "total_time_spent"
        ],
        "title": "ManagedUserResponse",
        "type": "object"
      },
      "ManifestBody": {
        "properties": {
          "loss": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExportLossReport"
              },
              {
                "type": "null"
              }
            ]
          },
          "manifest": {
            "$ref": "#/components/schemas/ExportPackageManifest"
          }
        },
        "required": ["manifest"],
        "title": "ManifestBody",
        "type": "object"
      },
      "ManifestEntry": {
        "additionalProperties": false,
        "description": "One item in the package, and the file that carries it.",
        "properties": {
          "byte_count": {
            "minimum": 0.0,
            "title": "Byte Count",
            "type": "integer"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "path": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          }
        },
        "required": ["item_id", "path", "content_sha256", "byte_count"],
        "title": "ManifestEntry",
        "type": "object"
      },
      "ManifestSignature": {
        "additionalProperties": false,
        "description": "The signature over the manifest, or an honest statement that there is none.",
        "properties": {
          "algorithm": {
            "const": "hmac-sha256",
            "default": "hmac-sha256",
            "title": "Algorithm",
            "type": "string"
          },
          "manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          },
          "signature": {
            "anyOf": [
              {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Signature"
          },
          "state": {
            "enum": ["signed", "not_configured"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["state", "manifest_sha256"],
        "title": "ManifestSignature",
        "type": "object"
      },
      "ManifestSplit": {
        "additionalProperties": false,
        "description": "One split, named by the exact records in it.",
        "properties": {
          "record_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100000,
            "minItems": 1,
            "title": "Record Ids",
            "type": "array"
          },
          "split": {
            "enum": ["train", "validation", "test"],
            "title": "Split",
            "type": "string"
          }
        },
        "required": ["split", "record_ids"],
        "title": "ManifestSplit",
        "type": "object"
      },
      "ManualRecordIngestionInput": {
        "description": "A no-bytes bibliographic record with explicit declared provenance.",
        "properties": {
          "authors": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Authors",
            "type": "array"
          },
          "edition_or_version": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edition Or Version"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "license_uri": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Uri"
          },
          "original_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Original Locator",
            "type": "string"
          },
          "provenance_evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Provenance Evidence",
            "type": "array"
          },
          "publication_date": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Publication Date"
          },
          "publisher": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Publisher"
          },
          "rights_status": {
            "default": "unchecked",
            "enum": ["unknown", "unchecked", "declared", "permitted", "restricted"],
            "title": "Rights Status",
            "type": "string"
          },
          "title": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["label", "title", "authors", "original_locator", "provenance_evidence"],
        "title": "ManualRecordIngestionInput",
        "type": "object"
      },
      "MasteryBandRule": {
        "additionalProperties": false,
        "properties": {
          "target_offset_centilogits": {
            "maximum": 200.0,
            "minimum": -200.0,
            "title": "Target Offset Centilogits",
            "type": "integer"
          },
          "windows": {
            "items": {
              "$ref": "#/components/schemas/BandWindow"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Windows",
            "type": "array"
          }
        },
        "required": ["windows", "target_offset_centilogits"],
        "title": "MasteryBandRule",
        "type": "object"
      },
      "MasteryThresholdCalibrationResponse": {
        "description": "Derived mastery-threshold recommendation for learner-state updates.",
        "properties": {
          "apply_to_mastery_decisions": {
            "default": false,
            "title": "Apply To Mastery Decisions",
            "type": "boolean"
          },
          "balanced_accuracy": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Balanced Accuracy"
          },
          "confidence": {
            "title": "Confidence",
            "type": "string"
          },
          "current_threshold": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Current Threshold",
            "type": "number"
          },
          "f1_score": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "F1 Score"
          },
          "method": {
            "title": "Method",
            "type": "string"
          },
          "precision": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Precision"
          },
          "recall": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recall"
          },
          "recommended_threshold": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Recommended Threshold",
            "type": "number"
          },
          "sample_size": {
            "minimum": 0.0,
            "title": "Sample Size",
            "type": "integer"
          }
        },
        "required": [
          "current_threshold",
          "recommended_threshold",
          "confidence",
          "method",
          "sample_size"
        ],
        "title": "MasteryThresholdCalibrationResponse",
        "type": "object"
      },
      "MaterialChange": {
        "additionalProperties": false,
        "properties": {
          "change": {
            "enum": ["updated", "retracted", "rights_revoked"],
            "title": "Change",
            "type": "string"
          },
          "changed_at": {
            "format": "date-time",
            "title": "Changed At",
            "type": "string"
          },
          "kind": {
            "enum": [
              "persona",
              "pedagogy",
              "hint_policy",
              "system_prompt",
              "tool",
              "source",
              "course",
              "item"
            ],
            "title": "Kind",
            "type": "string"
          },
          "material_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Material Id",
            "type": "string"
          },
          "new_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "New Revision Sha256"
          }
        },
        "required": ["kind", "material_id", "change", "new_revision_sha256", "changed_at"],
        "title": "MaterialChange",
        "type": "object"
      },
      "MaterialRecord": {
        "additionalProperties": false,
        "description": "What the catalogue holds for a material at this instant.",
        "properties": {
          "current_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Current Revision Id",
            "type": "string"
          },
          "current_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Revision Sha256",
            "type": "string"
          },
          "integrity_modes_supported": {
            "default": [],
            "items": {
              "enum": ["open", "monitored", "proctored", "lockdown"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Integrity Modes Supported",
            "type": "array"
          },
          "kind": {
            "enum": [
              "persona",
              "pedagogy",
              "hint_policy",
              "system_prompt",
              "tool",
              "source",
              "course",
              "item"
            ],
            "title": "Kind",
            "type": "string"
          },
          "known_revision_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Known Revision Sha256S",
            "type": "array"
          },
          "locales": {
            "default": [],
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Locales",
            "type": "array"
          },
          "material_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Material Id",
            "type": "string"
          },
          "published": {
            "title": "Published",
            "type": "boolean"
          },
          "rights_cleared": {
            "title": "Rights Cleared",
            "type": "boolean"
          },
          "status": {
            "enum": ["approved", "draft", "in_review", "superseded", "retracted", "rights_revoked"],
            "title": "Status",
            "type": "string"
          },
          "supports_offered": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Supports Offered",
            "type": "array"
          }
        },
        "required": [
          "kind",
          "material_id",
          "current_revision_id",
          "current_revision_sha256",
          "status",
          "published",
          "rights_cleared",
          "known_revision_sha256s"
        ],
        "title": "MaterialRecord",
        "type": "object"
      },
      "MaterialRef": {
        "additionalProperties": false,
        "description": "A revision. There is no shape here that names a material without one.",
        "properties": {
          "kind": {
            "enum": [
              "persona",
              "pedagogy",
              "hint_policy",
              "system_prompt",
              "tool",
              "source",
              "course",
              "item"
            ],
            "title": "Kind",
            "type": "string"
          },
          "material_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Material Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": ["kind", "material_id", "revision_id", "revision_sha256"],
        "title": "MaterialRef",
        "type": "object"
      },
      "MaterialResolution": {
        "additionalProperties": false,
        "properties": {
          "blocking": {
            "title": "Blocking",
            "type": "boolean"
          },
          "catalogue_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Catalogue Revision Sha256"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "outcome": {
            "enum": [
              "resolved",
              "stale",
              "not_approved",
              "not_published",
              "retracted",
              "rights_revoked",
              "substituted",
              "unresolvable"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "ref": {
            "$ref": "#/components/schemas/MaterialRef"
          }
        },
        "required": ["ref", "outcome", "catalogue_revision_sha256", "detail", "blocking"],
        "title": "MaterialResolution",
        "type": "object"
      },
      "MathAccessibility": {
        "additionalProperties": false,
        "properties": {
          "assistive_technology_review_required": {
            "const": true,
            "default": true,
            "title": "Assistive Technology Review Required",
            "type": "boolean"
          },
          "graph_description": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Graph Description",
            "type": "string"
          },
          "keyboard_response_supported": {
            "const": true,
            "default": true,
            "title": "Keyboard Response Supported",
            "type": "boolean"
          },
          "linearized_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Linearized Text",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "spoken_math": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Spoken Math",
            "type": "string"
          }
        },
        "required": ["locale", "linearized_text", "spoken_math", "graph_description"],
        "title": "MathAccessibility",
        "type": "object"
      },
      "MathCodeActor": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "MathCodeActor",
        "type": "object"
      },
      "MathCodeLocaleSurface": {
        "additionalProperties": false,
        "properties": {
          "instructions": {
            "$ref": "#/components/schemas/MathCodeRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "prompt": {
            "$ref": "#/components/schemas/MathCodeRichContent"
          }
        },
        "required": ["locale", "prompt", "instructions"],
        "title": "MathCodeLocaleSurface",
        "type": "object"
      },
      "MathCodePreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "allowed_kind": {
            "enum": ["assessment-kind:math", "assessment-kind:code"],
            "title": "Allowed Kind",
            "type": "string"
          },
          "current": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathCodeRevisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/MathCodeSourceSnapshot"
          }
        },
        "required": ["source", "allowed_kind"],
        "title": "MathCodePreparationResponse",
        "type": "object"
      },
      "MathCodePreview": {
        "additionalProperties": false,
        "properties": {
          "instructions": {
            "$ref": "#/components/schemas/MathCodeRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "math_code_item_id": {
            "title": "Math Code Item Id",
            "type": "string"
          },
          "mode": {
            "enum": ["author", "learner"],
            "title": "Mode",
            "type": "string"
          },
          "payload": {
            "discriminator": {
              "mapping": {
                "code": "#/components/schemas/CodeLearnerPayload",
                "math": "#/components/schemas/MathLearnerPayload"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/MathLearnerPayload"
              },
              {
                "$ref": "#/components/schemas/CodeLearnerPayload"
              }
            ],
            "title": "Payload"
          },
          "prompt": {
            "$ref": "#/components/schemas/MathCodeRichContent"
          },
          "protected_material_visible": {
            "const": false,
            "default": false,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "mode",
          "math_code_item_id",
          "revision",
          "revision_sha256",
          "locale",
          "prompt",
          "instructions",
          "payload"
        ],
        "title": "MathCodePreview",
        "type": "object"
      },
      "MathCodeProtectedExport": {
        "additionalProperties": false,
        "properties": {
          "authorization_scope": {
            "const": "math-code:protected-export",
            "default": "math-code:protected-export",
            "title": "Authorization Scope",
            "type": "string"
          },
          "protected_material_visible": {
            "const": true,
            "default": true,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "revision": {
            "$ref": "#/components/schemas/MathCodeRevisionResponse"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["revision"],
        "title": "MathCodeProtectedExport",
        "type": "object"
      },
      "MathCodeRevisionHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/MathCodeRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "revisions"],
        "title": "MathCodeRevisionHistoryResponse",
        "type": "object"
      },
      "MathCodeRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "discriminator": {
              "mapping": {
                "assessment-kind:code": "#/components/schemas/CodeItemContent",
                "assessment-kind:math": "#/components/schemas/MathItemContent"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/MathItemContent"
              },
              {
                "$ref": "#/components/schemas/CodeItemContent"
              }
            ],
            "title": "Content"
          },
          "expected_editor_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision"
          },
          "expected_editor_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision Sha256"
          },
          "expected_source_revision": {
            "minimum": 1.0,
            "title": "Expected Source Revision",
            "type": "integer"
          },
          "expected_source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_source_revision",
          "expected_source_revision_sha256",
          "reason",
          "content"
        ],
        "title": "MathCodeRevisionRequest",
        "type": "object"
      },
      "MathCodeRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/MathCodeActor"
          },
          "content": {
            "discriminator": {
              "mapping": {
                "assessment-kind:code": "#/components/schemas/CodeItemContent",
                "assessment-kind:math": "#/components/schemas/MathItemContent"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/MathItemContent"
              },
              {
                "$ref": "#/components/schemas/CodeItemContent"
              }
            ],
            "title": "Content"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "math_code_item_id": {
            "pattern": "^math-code-item-[a-f0-9]{40}$",
            "title": "Math Code Item Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/MathCodeSourceSnapshot"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "math_code_item_id",
          "draft_id",
          "tenant_id",
          "revision",
          "source",
          "actor",
          "reason",
          "content",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "MathCodeRevisionResponse",
        "type": "object"
      },
      "MathCodeRichContent": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "format": {
            "default": "plain_text",
            "enum": ["plain_text", "markdown"],
            "title": "Format",
            "type": "string"
          },
          "value": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "accessible_text"],
        "title": "MathCodeRichContent",
        "type": "object"
      },
      "MathCodeSafeProjection": {
        "additionalProperties": false,
        "properties": {
          "excluded_properties": {
            "items": {
              "enum": [
                "canonical_answer",
                "hidden_tests",
                "hidden_expected_output",
                "runtime_secrets",
                "container_credentials"
              ],
              "type": "string"
            },
            "title": "Excluded Properties",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "math_code_item_id": {
            "title": "Math Code Item Id",
            "type": "string"
          },
          "payload": {
            "discriminator": {
              "mapping": {
                "code": "#/components/schemas/CodeLearnerPayload",
                "math": "#/components/schemas/MathLearnerPayload"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/MathLearnerPayload"
              },
              {
                "$ref": "#/components/schemas/CodeLearnerPayload"
              }
            ],
            "title": "Payload"
          },
          "prompt_text": {
            "title": "Prompt Text",
            "type": "string"
          },
          "protected_material_visible": {
            "const": false,
            "default": false,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "surface": {
            "enum": ["learner", "search", "export", "log", "tutor"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": [
          "surface",
          "math_code_item_id",
          "revision",
          "revision_sha256",
          "locale",
          "prompt_text",
          "payload",
          "excluded_properties"
        ],
        "title": "MathCodeSafeProjection",
        "type": "object"
      },
      "MathCodeSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "draft_revision": {
            "minimum": 1.0,
            "title": "Draft Revision",
            "type": "integer"
          },
          "draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Draft Revision Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["assessment-kind:math", "assessment-kind:code"],
            "title": "Kind",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "prompt": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Prompt",
            "type": "string"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "draft_revision",
          "draft_revision_sha256",
          "kind",
          "prompt",
          "objective_ids",
          "source_references",
          "source_sha256"
        ],
        "title": "MathCodeSourceSnapshot",
        "type": "object"
      },
      "MathCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": ["parsing", "symbolic", "numeric", "unit", "proof", "sandbox"],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "MathCorpusMetric",
        "type": "object"
      },
      "MathCounterexample": {
        "additionalProperties": false,
        "properties": {
          "bindings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MathNumericValueBinding"
            },
            "maxItems": 100,
            "title": "Bindings",
            "type": "array"
          },
          "expected": {
            "maxLength": 2000,
            "title": "Expected",
            "type": "string"
          },
          "observed": {
            "maxLength": 2000,
            "title": "Observed",
            "type": "string"
          }
        },
        "required": ["observed", "expected"],
        "title": "MathCounterexample",
        "type": "object"
      },
      "MathDefinitionBinding": {
        "additionalProperties": false,
        "properties": {
          "expression": {
            "$ref": "#/components/schemas/MathExpressionInput"
          },
          "name": {
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
            "title": "Name",
            "type": "string"
          }
        },
        "required": ["name", "expression"],
        "title": "MathDefinitionBinding",
        "type": "object"
      },
      "MathDiagnostic": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "localized_span": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathSourceSpan"
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          }
        },
        "required": ["code", "message"],
        "title": "MathDiagnostic",
        "type": "object"
      },
      "MathDimensionVerdict": {
        "additionalProperties": false,
        "properties": {
          "failing_task_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Failing Task Ids",
            "type": "array"
          },
          "kind": {
            "enum": ["symbolic", "numeric", "unit", "proof"],
            "title": "Kind",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "fail", "unknown", "timeout", "unsupported"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["kind", "state"],
        "title": "MathDimensionVerdict",
        "type": "object"
      },
      "MathEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis-executable-mathematics-verifier",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "5.21.0",
            "title": "Engine Version",
            "type": "string"
          },
          "expression_language": {
            "const": "metis-ascii-math-v1",
            "title": "Expression Language",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.21.0",
            "default": "5.21.0",
            "title": "Schema Version",
            "type": "string"
          },
          "supported_constructs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Supported Constructs",
            "type": "array"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/MathToolWitness"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_unsupported_or_unknown",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "expression_language",
          "supported_constructs",
          "unsupported_behavior",
          "tools",
          "rules_sha256"
        ],
        "title": "MathEngineWitness",
        "type": "object"
      },
      "MathEquivalencePolicy": {
        "additionalProperties": false,
        "properties": {
          "absolute_tolerance": {
            "anyOf": [
              {
                "maxLength": 80,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Absolute Tolerance"
          },
          "assumptions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Assumptions",
            "type": "array"
          },
          "method": {
            "enum": ["exact_mathml", "symbolic", "numeric", "unit_aware", "graph", "proof"],
            "title": "Method",
            "type": "string"
          },
          "relative_tolerance": {
            "anyOf": [
              {
                "maxLength": 80,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relative Tolerance"
          },
          "ruleset_id": {
            "pattern": "^equivalence:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Ruleset Id",
            "type": "string"
          },
          "ruleset_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Ruleset Sha256",
            "type": "string"
          },
          "ruleset_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Ruleset Version",
            "type": "string"
          }
        },
        "required": ["method", "ruleset_id", "ruleset_version", "ruleset_sha256"],
        "title": "MathEquivalencePolicy",
        "type": "object"
      },
      "MathEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "expected_state": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected State",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_state": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed State",
            "type": "string"
          }
        },
        "required": ["case_id", "fixture_family", "expected_state", "observed_state", "matched"],
        "title": "MathEvaluationCaseResult",
        "type": "object"
      },
      "MathEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/MathEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m5.21-executable-math-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/MathCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "limitations"
        ],
        "title": "MathEvaluationReport",
        "type": "object"
      },
      "MathExpressionInput": {
        "additionalProperties": false,
        "properties": {
          "expression_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expression Id",
            "type": "string"
          },
          "language": {
            "const": "metis-ascii-math-v1",
            "default": "metis-ascii-math-v1",
            "title": "Language",
            "type": "string"
          },
          "source_span": {
            "$ref": "#/components/schemas/MathSourceSpan"
          },
          "text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["expression_id", "text", "source_span"],
        "title": "MathExpressionInput",
        "type": "object"
      },
      "MathFiniteSolutionSet": {
        "additionalProperties": false,
        "properties": {
          "set_kind": {
            "const": "finite",
            "default": "finite",
            "title": "Set Kind",
            "type": "string"
          },
          "values": {
            "items": {
              "$ref": "#/components/schemas/MathExpressionInput"
            },
            "maxItems": 100,
            "title": "Values",
            "type": "array"
          }
        },
        "required": ["values"],
        "title": "MathFiniteSolutionSet",
        "type": "object"
      },
      "MathIntervalSolutionSet": {
        "additionalProperties": false,
        "properties": {
          "lower": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathExpressionInput"
              },
              {
                "type": "null"
              }
            ]
          },
          "lower_closed": {
            "default": false,
            "title": "Lower Closed",
            "type": "boolean"
          },
          "set_kind": {
            "const": "interval",
            "default": "interval",
            "title": "Set Kind",
            "type": "string"
          },
          "upper": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathExpressionInput"
              },
              {
                "type": "null"
              }
            ]
          },
          "upper_closed": {
            "default": false,
            "title": "Upper Closed",
            "type": "boolean"
          }
        },
        "title": "MathIntervalSolutionSet",
        "type": "object"
      },
      "MathItemContent": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "items": {
              "$ref": "#/components/schemas/MathAccessibility"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Accessibility",
            "type": "array"
          },
          "author_preview_mathml": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Author Preview Mathml",
            "type": "string"
          },
          "kind": {
            "const": "assessment-kind:math",
            "default": "assessment-kind:math",
            "title": "Kind",
            "type": "string"
          },
          "locale_surfaces": {
            "items": {
              "$ref": "#/components/schemas/MathCodeLocaleSurface"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Surfaces",
            "type": "array"
          },
          "renderer_sandbox": {
            "$ref": "#/components/schemas/MathRendererSandbox"
          },
          "response_model": {
            "discriminator": {
              "mapping": {
                "graph": "#/components/schemas/GraphResponse",
                "mathml": "#/components/schemas/MathMlResponse",
                "numeric": "#/components/schemas/NumericResponse",
                "proof": "#/components/schemas/ProofResponse",
                "symbolic": "#/components/schemas/SymbolicResponse",
                "unit": "#/components/schemas/UnitResponse"
              },
              "propertyName": "response_type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/MathMlResponse"
              },
              {
                "$ref": "#/components/schemas/SymbolicResponse"
              },
              {
                "$ref": "#/components/schemas/NumericResponse"
              },
              {
                "$ref": "#/components/schemas/UnitResponse"
              },
              {
                "$ref": "#/components/schemas/GraphResponse"
              },
              {
                "$ref": "#/components/schemas/ProofResponse"
              }
            ],
            "title": "Response Model"
          },
          "runtime": {
            "$ref": "#/components/schemas/MathRuntimePins"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          }
        },
        "required": [
          "locale_surfaces",
          "source_references",
          "response_model",
          "accessibility",
          "runtime",
          "renderer_sandbox",
          "author_preview_mathml"
        ],
        "title": "MathItemContent",
        "type": "object"
      },
      "MathLearnerPayload": {
        "additionalProperties": false,
        "properties": {
          "absolute_tolerance": {
            "anyOf": [
              {
                "maxLength": 80,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Absolute Tolerance"
          },
          "accessibility": {
            "$ref": "#/components/schemas/MathAccessibility"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "kind": {
            "const": "math",
            "default": "math",
            "title": "Kind",
            "type": "string"
          },
          "relative_tolerance": {
            "anyOf": [
              {
                "maxLength": 80,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relative Tolerance"
          },
          "response_type": {
            "enum": ["mathml", "symbolic", "numeric", "unit", "graph", "proof"],
            "title": "Response Type",
            "type": "string"
          },
          "sanitized_mathml": {
            "title": "Sanitized Mathml",
            "type": "string"
          }
        },
        "required": [
          "response_type",
          "assumptions",
          "absolute_tolerance",
          "relative_tolerance",
          "accessibility",
          "sanitized_mathml"
        ],
        "title": "MathLearnerPayload",
        "type": "object"
      },
      "MathMlResponse": {
        "additionalProperties": false,
        "properties": {
          "admitted_elements": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Admitted Elements",
            "type": "array"
          },
          "equivalence": {
            "$ref": "#/components/schemas/MathEquivalencePolicy"
          },
          "expected_mathml": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Expected Mathml",
            "type": "string"
          },
          "expected_mathml_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Mathml Sha256",
            "type": "string"
          },
          "response_type": {
            "const": "mathml",
            "default": "mathml",
            "title": "Response Type",
            "type": "string"
          }
        },
        "required": [
          "equivalence",
          "expected_mathml",
          "expected_mathml_sha256",
          "admitted_elements"
        ],
        "title": "MathMlResponse",
        "type": "object"
      },
      "MathNamedSolutionSet": {
        "additionalProperties": false,
        "properties": {
          "set_kind": {
            "enum": ["empty", "real", "integer", "natural"],
            "title": "Set Kind",
            "type": "string"
          }
        },
        "required": ["set_kind"],
        "title": "MathNamedSolutionSet",
        "type": "object"
      },
      "MathNumericCase": {
        "additionalProperties": false,
        "properties": {
          "bindings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MathNumericValueBinding"
            },
            "maxItems": 100,
            "title": "Bindings",
            "type": "array"
          },
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "expected_value": {
            "anyOf": [
              {
                "maxLength": 96,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Value"
          }
        },
        "required": ["case_id"],
        "title": "MathNumericCase",
        "type": "object"
      },
      "MathNumericTask": {
        "additionalProperties": false,
        "properties": {
          "candidate": {
            "$ref": "#/components/schemas/MathExpressionInput"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/MathNumericCase"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "kind": {
            "const": "numeric",
            "default": "numeric",
            "title": "Kind",
            "type": "string"
          },
          "maximum_error": {
            "anyOf": [
              {
                "maxLength": 96,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Error"
          },
          "randomized": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathRandomizedCases"
              },
              {
                "type": "null"
              }
            ]
          },
          "reference": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathExpressionInput"
              },
              {
                "type": "null"
              }
            ]
          },
          "rounding_places": {
            "anyOf": [
              {
                "maximum": 30.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rounding Places"
          },
          "significant_figures": {
            "anyOf": [
              {
                "maximum": 30.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Significant Figures"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          },
          "tolerance": {
            "$ref": "#/components/schemas/MathTolerancePolicy"
          }
        },
        "required": ["task_id", "candidate", "cases", "tolerance"],
        "title": "MathNumericTask",
        "type": "object"
      },
      "MathNumericValueBinding": {
        "additionalProperties": false,
        "properties": {
          "value": {
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Value",
            "type": "string"
          },
          "variable": {
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
            "title": "Variable",
            "type": "string"
          }
        },
        "required": ["variable", "value"],
        "title": "MathNumericValueBinding",
        "type": "object"
      },
      "MathParseArtifact": {
        "additionalProperties": false,
        "properties": {
          "diagnostic": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathDiagnostic"
              },
              {
                "type": "null"
              }
            ]
          },
          "expression_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expression Id",
            "type": "string"
          },
          "free_symbols": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Free Symbols",
            "type": "array"
          },
          "normalized_expression": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalized Expression"
          },
          "source_span": {
            "$ref": "#/components/schemas/MathSourceSpan"
          },
          "state": {
            "enum": ["parsed", "error", "ambiguous", "unsupported"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["expression_id", "state", "source_span"],
        "title": "MathParseArtifact",
        "type": "object"
      },
      "MathPhysicalConstraint": {
        "additionalProperties": false,
        "properties": {
          "bound": {
            "anyOf": [
              {
                "maxLength": 96,
                "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bound"
          },
          "constraint_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Constraint Id",
            "type": "string"
          },
          "kind": {
            "enum": ["nonnegative", "positive", "nonzero", "minimum", "maximum"],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["constraint_id", "kind"],
        "title": "MathPhysicalConstraint",
        "type": "object"
      },
      "MathPolicyVerdict": {
        "additionalProperties": false,
        "properties": {
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/MathDimensionVerdict"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Dimensions",
            "type": "array"
          },
          "human_can_override_raw_result": {
            "const": false,
            "default": false,
            "title": "Human Can Override Raw Result",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["allow", "block", "manual_review"],
            "title": "Outcome",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "worst_state": {
            "enum": ["pass", "fail", "unknown", "timeout", "unsupported"],
            "title": "Worst State",
            "type": "string"
          }
        },
        "required": ["outcome", "worst_state", "dimensions", "reason_codes"],
        "title": "MathPolicyVerdict",
        "type": "object"
      },
      "MathProofResult": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "elapsed_millis": {
            "minimum": 0.0,
            "title": "Elapsed Millis",
            "type": "integer"
          },
          "kind": {
            "const": "proof",
            "default": "proof",
            "title": "Kind",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "fail", "unknown", "timeout", "unsupported"],
            "title": "State",
            "type": "string"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/MathProofStepResult"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Steps",
            "type": "array"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          }
        },
        "required": [
          "task_id",
          "state",
          "code",
          "summary",
          "steps",
          "deterministic_seed",
          "elapsed_millis"
        ],
        "title": "MathProofResult",
        "type": "object"
      },
      "MathProofStepInput": {
        "additionalProperties": false,
        "properties": {
          "depends_on": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Depends On",
            "type": "array"
          },
          "ordinal": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "rule": {
            "enum": [
              "premise",
              "equivalent_transformation",
              "solution_set_preserving",
              "numeric_evaluation",
              "conclusion"
            ],
            "title": "Rule",
            "type": "string"
          },
          "source_span": {
            "$ref": "#/components/schemas/MathSourceSpan"
          },
          "statement": {
            "$ref": "#/components/schemas/MathRelationInput"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          }
        },
        "required": ["step_id", "ordinal", "rule", "statement", "source_span"],
        "title": "MathProofStepInput",
        "type": "object"
      },
      "MathProofStepResult": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "localized_span": {
            "$ref": "#/components/schemas/MathSourceSpan"
          },
          "ordinal": {
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "rule": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Rule",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "fail", "unknown", "timeout", "unsupported"],
            "title": "State",
            "type": "string"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "trace": {
            "items": {
              "$ref": "#/components/schemas/MathTraceEntry"
            },
            "maxItems": 1000,
            "title": "Trace",
            "type": "array"
          }
        },
        "required": [
          "step_id",
          "ordinal",
          "rule",
          "state",
          "code",
          "summary",
          "localized_span",
          "trace"
        ],
        "title": "MathProofStepResult",
        "type": "object"
      },
      "MathProofTask": {
        "additionalProperties": false,
        "properties": {
          "expected_conclusion": {
            "$ref": "#/components/schemas/MathRelationInput"
          },
          "kind": {
            "const": "proof",
            "default": "proof",
            "title": "Kind",
            "type": "string"
          },
          "premises": {
            "items": {
              "$ref": "#/components/schemas/MathRelationInput"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Premises",
            "type": "array"
          },
          "proof_system": {
            "const": "single_variable_algebra_v1",
            "default": "single_variable_algebra_v1",
            "title": "Proof System",
            "type": "string"
          },
          "solve_variable": {
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
            "title": "Solve Variable",
            "type": "string"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/MathProofStepInput"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Steps",
            "type": "array"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          }
        },
        "required": ["task_id", "solve_variable", "premises", "steps", "expected_conclusion"],
        "title": "MathProofTask",
        "type": "object"
      },
      "MathRandomVariableRange": {
        "additionalProperties": false,
        "properties": {
          "maximum": {
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Maximum",
            "type": "string"
          },
          "minimum": {
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Minimum",
            "type": "string"
          },
          "variable": {
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
            "title": "Variable",
            "type": "string"
          }
        },
        "required": ["variable", "minimum", "maximum"],
        "title": "MathRandomVariableRange",
        "type": "object"
      },
      "MathRandomizedCases": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Count",
            "type": "integer"
          },
          "ranges": {
            "items": {
              "$ref": "#/components/schemas/MathRandomVariableRange"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Ranges",
            "type": "array"
          }
        },
        "required": ["count", "ranges"],
        "title": "MathRandomizedCases",
        "type": "object"
      },
      "MathRawResult": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "counterexamples": {
            "items": {
              "$ref": "#/components/schemas/MathCounterexample"
            },
            "maxItems": 100,
            "title": "Counterexamples",
            "type": "array"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "elapsed_millis": {
            "minimum": 0.0,
            "title": "Elapsed Millis",
            "type": "integer"
          },
          "exact_output": {
            "maxLength": 20000,
            "title": "Exact Output",
            "type": "string"
          },
          "expected_output": {
            "maxLength": 20000,
            "title": "Expected Output",
            "type": "string"
          },
          "extraneous_cases": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Extraneous Cases",
            "type": "array"
          },
          "kind": {
            "enum": ["symbolic", "numeric", "unit"],
            "title": "Kind",
            "type": "string"
          },
          "localized_span": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MathSourceSpan"
              },
              {
                "type": "null"
              }
            ]
          },
          "missing_cases": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Missing Cases",
            "type": "array"
          },
          "state": {
            "enum": ["pass", "fail", "unknown", "timeout", "unsupported"],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          },
          "trace": {
            "items": {
              "$ref": "#/components/schemas/MathTraceEntry"
            },
            "maxItems": 10000,
            "title": "Trace",
            "type": "array"
          }
        },
        "required": [
          "task_id",
          "kind",
          "state",
          "code",
          "summary",
          "exact_output",
          "expected_output",
          "trace",
          "counterexamples",
          "extraneous_cases",
          "missing_cases",
          "deterministic_seed",
          "elapsed_millis"
        ],
        "title": "MathRawResult",
        "type": "object"
      },
      "MathRelationInput": {
        "additionalProperties": false,
        "properties": {
          "left": {
            "$ref": "#/components/schemas/MathExpressionInput"
          },
          "relation": {
            "enum": ["eq", "lt", "le", "gt", "ge"],
            "title": "Relation",
            "type": "string"
          },
          "right": {
            "$ref": "#/components/schemas/MathExpressionInput"
          }
        },
        "required": ["left", "relation", "right"],
        "title": "MathRelationInput",
        "type": "object"
      },
      "MathRenderPlan": {
        "additionalProperties": false,
        "properties": {
          "accessible_name": {
            "title": "Accessible Name",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "math_code_item_id": {
            "title": "Math Code Item Id",
            "type": "string"
          },
          "renderer": {
            "$ref": "#/components/schemas/PinnedTool"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "sandbox": {
            "$ref": "#/components/schemas/MathRendererSandbox"
          },
          "sanitized_mathml": {
            "title": "Sanitized Mathml",
            "type": "string"
          },
          "schema_version": {
            "const": "4.6.0",
            "default": "4.6.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "math_code_item_id",
          "revision",
          "locale",
          "sanitized_mathml",
          "accessible_name",
          "renderer",
          "sandbox"
        ],
        "title": "MathRenderPlan",
        "type": "object"
      },
      "MathRendererSandbox": {
        "additionalProperties": false,
        "properties": {
          "content_security_policy": {
            "const": "default-src 'none'; style-src 'unsafe-inline'; img-src 'none'; connect-src 'none'",
            "default": "default-src 'none'; style-src 'unsafe-inline'; img-src 'none'; connect-src 'none'",
            "title": "Content Security Policy",
            "type": "string"
          },
          "external_resources_allowed": {
            "const": false,
            "default": false,
            "title": "External Resources Allowed",
            "type": "boolean"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "opaque_origin": {
            "const": true,
            "default": true,
            "title": "Opaque Origin",
            "type": "boolean"
          },
          "profile": {
            "const": "opaque-mathml-no-script-v1",
            "default": "opaque-mathml-no-script-v1",
            "title": "Profile",
            "type": "string"
          },
          "scripts_allowed": {
            "const": false,
            "default": false,
            "title": "Scripts Allowed",
            "type": "boolean"
          }
        },
        "title": "MathRendererSandbox",
        "type": "object"
      },
      "MathResourceLimits": {
        "additionalProperties": false,
        "properties": {
          "capabilities_dropped": {
            "const": true,
            "default": true,
            "title": "Capabilities Dropped",
            "type": "boolean"
          },
          "cpu_seconds": {
            "default": 4,
            "maximum": 15.0,
            "minimum": 1.0,
            "title": "Cpu Seconds",
            "type": "integer"
          },
          "memory_bytes": {
            "default": 805306368,
            "maximum": 1610612736.0,
            "minimum": 268435456.0,
            "title": "Memory Bytes",
            "type": "integer"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "no_new_privileges": {
            "const": true,
            "default": true,
            "title": "No New Privileges",
            "type": "boolean"
          },
          "open_files": {
            "default": 64,
            "maximum": 256.0,
            "minimum": 16.0,
            "title": "Open Files",
            "type": "integer"
          },
          "output_bytes": {
            "default": 1048576,
            "maximum": 4194304.0,
            "minimum": 16384.0,
            "title": "Output Bytes",
            "type": "integer"
          },
          "process_count": {
            "default": 16,
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Process Count",
            "type": "integer"
          },
          "root_filesystem_read_only": {
            "const": true,
            "default": true,
            "title": "Root Filesystem Read Only",
            "type": "boolean"
          },
          "wall_millis": {
            "default": 8000,
            "maximum": 30000.0,
            "minimum": 500.0,
            "title": "Wall Millis",
            "type": "integer"
          },
          "writable_bytes": {
            "default": 16777216,
            "maximum": 67108864.0,
            "minimum": 1048576.0,
            "title": "Writable Bytes",
            "type": "integer"
          }
        },
        "title": "MathResourceLimits",
        "type": "object"
      },
      "MathRuntimePins": {
        "additionalProperties": false,
        "properties": {
          "computer_algebra_system": {
            "$ref": "#/components/schemas/PinnedTool"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "graph_renderer": {
            "$ref": "#/components/schemas/PinnedTool"
          },
          "mathml_renderer": {
            "$ref": "#/components/schemas/PinnedTool"
          }
        },
        "required": [
          "mathml_renderer",
          "graph_renderer",
          "computer_algebra_system",
          "deterministic_seed"
        ],
        "title": "MathRuntimePins",
        "type": "object"
      },
      "MathSandboxReceipt": {
        "additionalProperties": false,
        "properties": {
          "exit_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit Code"
          },
          "limits": {
            "$ref": "#/components/schemas/MathResourceLimits"
          },
          "namespaces_unshared": {
            "items": {
              "enum": ["user", "ipc", "pid", "network", "uts", "cgroup"],
              "type": "string"
            },
            "title": "Namespaces Unshared",
            "type": "array"
          },
          "network_probe_blocked": {
            "title": "Network Probe Blocked",
            "type": "boolean"
          },
          "output_truncated": {
            "title": "Output Truncated",
            "type": "boolean"
          },
          "ran_as_uid": {
            "minimum": 0.0,
            "title": "Ran As Uid",
            "type": "integer"
          },
          "root_write_probe_blocked": {
            "title": "Root Write Probe Blocked",
            "type": "boolean"
          },
          "sandbox_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Sandbox Id",
            "type": "string"
          },
          "sandbox_tool": {
            "$ref": "#/components/schemas/MathToolWitness"
          },
          "stderr": {
            "maxLength": 4000,
            "title": "Stderr",
            "type": "string"
          },
          "stdout_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stdout Sha256",
            "type": "string"
          },
          "timed_out": {
            "title": "Timed Out",
            "type": "boolean"
          }
        },
        "required": [
          "sandbox_id",
          "sandbox_tool",
          "namespaces_unshared",
          "network_probe_blocked",
          "root_write_probe_blocked",
          "ran_as_uid",
          "limits",
          "exit_code",
          "timed_out",
          "output_truncated",
          "stdout_sha256",
          "stderr"
        ],
        "title": "MathSandboxReceipt",
        "type": "object"
      },
      "MathSourceSpan": {
        "additionalProperties": false,
        "properties": {
          "end": {
            "exclusiveMinimum": 0.0,
            "maximum": 200000.0,
            "title": "End",
            "type": "integer"
          },
          "start": {
            "maximum": 200000.0,
            "minimum": 0.0,
            "title": "Start",
            "type": "integer"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": ["start", "end", "text", "text_sha256"],
        "title": "MathSourceSpan",
        "type": "object"
      },
      "MathSymbolicTask": {
        "additionalProperties": false,
        "properties": {
          "expected_solution_set": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "empty": "#/components/schemas/MathNamedSolutionSet",
                    "finite": "#/components/schemas/MathFiniteSolutionSet",
                    "integer": "#/components/schemas/MathNamedSolutionSet",
                    "interval": "#/components/schemas/MathIntervalSolutionSet",
                    "natural": "#/components/schemas/MathNamedSolutionSet",
                    "real": "#/components/schemas/MathNamedSolutionSet"
                  },
                  "propertyName": "set_kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/MathFiniteSolutionSet"
                  },
                  {
                    "$ref": "#/components/schemas/MathIntervalSolutionSet"
                  },
                  {
                    "$ref": "#/components/schemas/MathNamedSolutionSet"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Solution Set"
          },
          "kind": {
            "const": "symbolic",
            "default": "symbolic",
            "title": "Kind",
            "type": "string"
          },
          "left": {
            "$ref": "#/components/schemas/MathExpressionInput"
          },
          "operation": {
            "enum": ["equivalence", "identity", "equation_solution", "inequality_solution"],
            "title": "Operation",
            "type": "string"
          },
          "relation": {
            "default": "eq",
            "enum": ["eq", "lt", "le", "gt", "ge"],
            "title": "Relation",
            "type": "string"
          },
          "right": {
            "$ref": "#/components/schemas/MathExpressionInput"
          },
          "solve_variable": {
            "anyOf": [
              {
                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Solve Variable"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          }
        },
        "required": ["task_id", "operation", "left", "right"],
        "title": "MathSymbolicTask",
        "type": "object"
      },
      "MathTolerancePolicy": {
        "additionalProperties": false,
        "properties": {
          "absolute": {
            "default": "0",
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Absolute",
            "type": "string"
          },
          "decimal_precision": {
            "default": 30,
            "maximum": 80.0,
            "minimum": 15.0,
            "title": "Decimal Precision",
            "type": "integer"
          },
          "relative": {
            "default": "0",
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Relative",
            "type": "string"
          },
          "rounding_mode": {
            "default": "half_even",
            "enum": ["half_even", "half_up", "down"],
            "title": "Rounding Mode",
            "type": "string"
          }
        },
        "title": "MathTolerancePolicy",
        "type": "object"
      },
      "MathToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "MathToolWitness",
        "type": "object"
      },
      "MathTraceEntry": {
        "additionalProperties": false,
        "properties": {
          "input": {
            "maxLength": 20000,
            "title": "Input",
            "type": "string"
          },
          "operation": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Operation",
            "type": "string"
          },
          "output": {
            "maxLength": 20000,
            "title": "Output",
            "type": "string"
          },
          "sequence": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "state": {
            "enum": ["pass", "fail", "unknown", "timeout", "unsupported"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["sequence", "operation", "input", "output", "state"],
        "title": "MathTraceEntry",
        "type": "object"
      },
      "MathUnitTask": {
        "additionalProperties": false,
        "properties": {
          "actual_unit": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Actual Unit",
            "type": "string"
          },
          "actual_value": {
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Actual Value",
            "type": "string"
          },
          "constraints": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MathPhysicalConstraint"
            },
            "maxItems": 20,
            "title": "Constraints",
            "type": "array"
          },
          "expected_dimensionality": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Expected Dimensionality",
            "type": "string"
          },
          "expected_unit": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Unit",
            "type": "string"
          },
          "expected_value": {
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Expected Value",
            "type": "string"
          },
          "kind": {
            "const": "unit",
            "default": "unit",
            "title": "Kind",
            "type": "string"
          },
          "significant_figures": {
            "maximum": 30.0,
            "minimum": 1.0,
            "title": "Significant Figures",
            "type": "integer"
          },
          "source_span": {
            "$ref": "#/components/schemas/MathSourceSpan"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          },
          "tolerance": {
            "$ref": "#/components/schemas/MathTolerancePolicy"
          }
        },
        "required": [
          "task_id",
          "actual_value",
          "actual_unit",
          "expected_value",
          "expected_unit",
          "expected_dimensionality",
          "tolerance",
          "significant_figures",
          "source_span"
        ],
        "title": "MathUnitTask",
        "type": "object"
      },
      "MathVariableBinding": {
        "additionalProperties": false,
        "properties": {
          "domain": {
            "enum": [
              "real",
              "integer",
              "natural",
              "positive_real",
              "nonnegative_real",
              "nonzero_real"
            ],
            "title": "Domain",
            "type": "string"
          },
          "name": {
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
            "title": "Name",
            "type": "string"
          },
          "source_span": {
            "$ref": "#/components/schemas/MathSourceSpan"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": ["name", "domain", "source_span"],
        "title": "MathVariableBinding",
        "type": "object"
      },
      "MathVerificationProjection": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/MathVerificationReviewDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/MathVerificationRunResponse"
          },
          "target_revision_current": {
            "title": "Target Revision Current",
            "type": "boolean"
          }
        },
        "required": ["run", "target_revision_current", "decisions"],
        "title": "MathVerificationProjection",
        "type": "object"
      },
      "MathVerificationReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["acknowledge", "request_correction", "escalate_unknown"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "raw_result_overridden": {
            "const": false,
            "default": false,
            "title": "Raw Result Overridden",
            "type": "boolean"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "run_id",
          "expected_run_sha256",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "MathVerificationReviewDecision",
        "type": "object"
      },
      "MathVerificationReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["acknowledge", "request_correction", "escalate_unknown"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 5000,
            "minLength": 3,
            "title": "Comment",
            "type": "string"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_run_sha256", "action", "comment"],
        "title": "MathVerificationReviewRequest",
        "type": "object"
      },
      "MathVerificationRunRequest": {
        "additionalProperties": false,
        "properties": {
          "definitions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MathDefinitionBinding"
            },
            "maxItems": 100,
            "title": "Definitions",
            "type": "array"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/MathResourceLimits",
            "default": {
              "capabilities_dropped": true,
              "cpu_seconds": 4,
              "memory_bytes": 805306368,
              "network_access": false,
              "no_new_privileges": true,
              "open_files": 64,
              "output_bytes": 1048576,
              "process_count": 16,
              "root_filesystem_read_only": true,
              "wall_millis": 8000,
              "writable_bytes": 16777216
            }
          },
          "risk": {
            "default": "general",
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "schema_version": {
            "const": "5.21.0",
            "default": "5.21.0",
            "title": "Schema Version",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/MathVerificationTarget"
          },
          "tasks": {
            "items": {
              "discriminator": {
                "mapping": {
                  "numeric": "#/components/schemas/MathNumericTask",
                  "proof": "#/components/schemas/MathProofTask",
                  "symbolic": "#/components/schemas/MathSymbolicTask",
                  "unit": "#/components/schemas/MathUnitTask"
                },
                "propertyName": "kind"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/MathSymbolicTask"
                },
                {
                  "$ref": "#/components/schemas/MathNumericTask"
                },
                {
                  "$ref": "#/components/schemas/MathUnitTask"
                },
                {
                  "$ref": "#/components/schemas/MathProofTask"
                }
              ]
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Tasks",
            "type": "array"
          },
          "variables": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MathVariableBinding"
            },
            "maxItems": 100,
            "title": "Variables",
            "type": "array"
          }
        },
        "required": ["idempotency_key", "target", "tasks", "deterministic_seed"],
        "title": "MathVerificationRunRequest",
        "type": "object"
      },
      "MathVerificationRunResponse": {
        "additionalProperties": false,
        "properties": {
          "definitions": {
            "items": {
              "$ref": "#/components/schemas/MathDefinitionBinding"
            },
            "title": "Definitions",
            "type": "array"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/MathEngineWitness"
          },
          "limits": {
            "$ref": "#/components/schemas/MathResourceLimits"
          },
          "numeric_results": {
            "items": {
              "$ref": "#/components/schemas/MathRawResult"
            },
            "title": "Numeric Results",
            "type": "array"
          },
          "parsing": {
            "items": {
              "$ref": "#/components/schemas/MathParseArtifact"
            },
            "title": "Parsing",
            "type": "array"
          },
          "policy": {
            "$ref": "#/components/schemas/MathPolicyVerdict"
          },
          "previous_run_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Run Id"
          },
          "proof_results": {
            "items": {
              "$ref": "#/components/schemas/MathProofResult"
            },
            "title": "Proof Results",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "risk": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "sandbox": {
            "$ref": "#/components/schemas/MathSandboxReceipt"
          },
          "schema_version": {
            "const": "5.21.0",
            "default": "5.21.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "symbolic_results": {
            "items": {
              "$ref": "#/components/schemas/MathRawResult"
            },
            "title": "Symbolic Results",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/MathVerificationTarget"
          },
          "tasks": {
            "items": {
              "discriminator": {
                "mapping": {
                  "numeric": "#/components/schemas/MathNumericTask",
                  "proof": "#/components/schemas/MathProofTask",
                  "symbolic": "#/components/schemas/MathSymbolicTask",
                  "unit": "#/components/schemas/MathUnitTask"
                },
                "propertyName": "kind"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/MathSymbolicTask"
                },
                {
                  "$ref": "#/components/schemas/MathNumericTask"
                },
                {
                  "$ref": "#/components/schemas/MathUnitTask"
                },
                {
                  "$ref": "#/components/schemas/MathProofTask"
                }
              ]
            },
            "title": "Tasks",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "unit_results": {
            "items": {
              "$ref": "#/components/schemas/MathRawResult"
            },
            "title": "Unit Results",
            "type": "array"
          },
          "variables": {
            "items": {
              "$ref": "#/components/schemas/MathVariableBinding"
            },
            "title": "Variables",
            "type": "array"
          }
        },
        "required": [
          "run_id",
          "tenant_id",
          "requested_by",
          "requested_at",
          "request_sha256",
          "target",
          "variables",
          "definitions",
          "tasks",
          "deterministic_seed",
          "limits",
          "risk",
          "parsing",
          "symbolic_results",
          "numeric_results",
          "unit_results",
          "proof_results",
          "engine",
          "sandbox",
          "policy",
          "self_sha256"
        ],
        "title": "MathVerificationRunResponse",
        "type": "object"
      },
      "MathVerificationTarget": {
        "additionalProperties": false,
        "properties": {
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "source_text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Source Text",
            "type": "string"
          },
          "source_text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Text Sha256",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["authored_item", "worked_solution", "content_fragment"],
            "title": "Target Kind",
            "type": "string"
          }
        },
        "required": [
          "target_id",
          "target_kind",
          "revision_id",
          "revision_sha256",
          "locale",
          "source_text",
          "source_text_sha256"
        ],
        "title": "MathVerificationTarget",
        "type": "object"
      },
      "MathVerificationWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/MathEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/MathVerificationProjection"
            },
            "title": "Runs",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/MathVerificationWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "runs", "evaluation"],
        "title": "MathVerificationWorkspaceResponse",
        "type": "object"
      },
      "MathVerificationWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "minimum": 0.0,
            "title": "Allowed",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "manual_review": {
            "minimum": 0.0,
            "title": "Manual Review",
            "type": "integer"
          },
          "reviewed": {
            "minimum": 0.0,
            "title": "Reviewed",
            "type": "integer"
          },
          "runs": {
            "minimum": 0.0,
            "title": "Runs",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          }
        },
        "required": ["runs", "allowed", "blocked", "manual_review", "stale", "reviewed"],
        "title": "MathVerificationWorkspaceSummary",
        "type": "object"
      },
      "MatrixCell": {
        "additionalProperties": false,
        "properties": {
          "disposition": {
            "enum": ["allow", "deny", "scaffold_only", "require_aid_grant"],
            "title": "Disposition",
            "type": "string"
          },
          "operation": {
            "enum": [
              "tutor_hint",
              "tutor_explanation",
              "tutor_direct_answer",
              "visualization_render",
              "visualization_probe",
              "code_execution",
              "symbolic_execution",
              "source_lookup",
              "source_full_text",
              "answer_reveal",
              "answer_check",
              "accessibility_screen_reader",
              "accessibility_extra_time"
            ],
            "title": "Operation",
            "type": "string"
          }
        },
        "required": ["operation", "disposition"],
        "title": "MatrixCell",
        "type": "object"
      },
      "MatrixRow": {
        "additionalProperties": false,
        "properties": {
          "cells": {
            "items": {
              "$ref": "#/components/schemas/MatrixCell"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Cells",
            "type": "array"
          },
          "mode": {
            "enum": [
              "practice",
              "homework",
              "quiz",
              "graded",
              "exam",
              "proctored",
              "accommodation",
              "review"
            ],
            "title": "Mode",
            "type": "string"
          }
        },
        "required": ["mode", "cells"],
        "title": "MatrixRow",
        "type": "object"
      },
      "MatrixTotalityReport": {
        "additionalProperties": false,
        "description": "Whether the matrix decides everything it claims to decide.",
        "properties": {
          "cells_decided": {
            "minimum": 0.0,
            "title": "Cells Decided",
            "type": "integer"
          },
          "cells_declared": {
            "minimum": 1.0,
            "title": "Cells Declared",
            "type": "integer"
          },
          "dispositions_produced": {
            "default": [],
            "items": {
              "enum": ["allow", "deny", "scaffold_only", "require_aid_grant"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Dispositions Produced",
            "type": "array"
          },
          "duplicate_rows": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "title": "Duplicate Rows",
            "type": "array"
          },
          "modes": {
            "minimum": 1.0,
            "title": "Modes",
            "type": "integer"
          },
          "operations": {
            "minimum": 1.0,
            "title": "Operations",
            "type": "integer"
          },
          "rows": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MatrixRow"
            },
            "maxItems": 16,
            "title": "Rows",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "boolean"
          },
          "undecided_cells": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Undecided Cells",
            "type": "array"
          }
        },
        "required": ["modes", "operations", "cells_declared", "cells_decided", "total"],
        "title": "MatrixTotalityReport",
        "type": "object"
      },
      "MaturityState": {
        "enum": ["idea", "planned", "authoring", "in_review", "approved", "published", "archived"],
        "title": "MaturityState",
        "type": "string"
      },
      "MaturityTransitionOption": {
        "additionalProperties": false,
        "properties": {
          "allowed_roles": {
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "title": "Allowed Roles",
            "type": "array"
          },
          "blockers": {
            "items": {
              "$ref": "#/components/schemas/BoardGateCheck"
            },
            "title": "Blockers",
            "type": "array"
          },
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "from_maturity": {
            "$ref": "#/components/schemas/MaturityState"
          },
          "prerequisites": {
            "items": {
              "$ref": "#/components/schemas/BoardGateCheck"
            },
            "title": "Prerequisites",
            "type": "array"
          },
          "reason_required": {
            "const": true,
            "default": true,
            "title": "Reason Required",
            "type": "boolean"
          },
          "review_effect": {
            "enum": [
              "none",
              "request_review",
              "record_approval",
              "record_rejection",
              "invalidate_approval"
            ],
            "title": "Review Effect",
            "type": "string"
          },
          "role_allowed": {
            "title": "Role Allowed",
            "type": "boolean"
          },
          "to_maturity": {
            "$ref": "#/components/schemas/MaturityState"
          },
          "version_effect": {
            "enum": ["minor_revision", "publication_revision", "archive_revision"],
            "title": "Version Effect",
            "type": "string"
          }
        },
        "required": [
          "from_maturity",
          "to_maturity",
          "allowed_roles",
          "role_allowed",
          "prerequisites",
          "blockers",
          "review_effect",
          "version_effect",
          "eligible"
        ],
        "title": "MaturityTransitionOption",
        "type": "object"
      },
      "MeaningAttestation": {
        "additionalProperties": false,
        "description": "A named person saying the target says what the source says.",
        "properties": {
          "attested_at": {
            "format": "date-time",
            "title": "Attested At",
            "type": "string"
          },
          "attested_by": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Attested By",
            "type": "string"
          },
          "method": {
            "enum": ["bilingual_review", "back_translation_reviewed", "subject_expert_review"],
            "title": "Method",
            "type": "string"
          },
          "unit_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Unit Id",
            "type": "string"
          },
          "unit_version": {
            "minimum": 1.0,
            "title": "Unit Version",
            "type": "integer"
          }
        },
        "required": ["unit_id", "attested_by", "attested_at", "method", "unit_version"],
        "title": "MeaningAttestation",
        "type": "object"
      },
      "MeaningAttestationRequest": {
        "properties": {
          "method": {
            "maxLength": 40,
            "minLength": 3,
            "title": "Method",
            "type": "string"
          },
          "unit_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Unit Id",
            "type": "string"
          },
          "unit_version": {
            "minimum": 1.0,
            "title": "Unit Version",
            "type": "integer"
          }
        },
        "required": ["unit_id", "method", "unit_version"],
        "title": "MeaningAttestationRequest",
        "type": "object"
      },
      "MeasuredValue": {
        "additionalProperties": false,
        "description": "A number, or an explicit reason there is not one. Never a misleading zero.",
        "properties": {
          "detail": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "n": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "N"
          },
          "state": {
            "enum": ["reported", "unknown", "suppressed", "stale", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "suppression_reason": {
            "anyOf": [
              {
                "enum": [
                  "below_minimum_cohort",
                  "would_recover_a_suppressed_cell",
                  "complementary_to_a_suppressed_cell"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suppression Reason"
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value"
          },
          "wilson_high": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wilson High"
          },
          "wilson_low": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wilson Low"
          }
        },
        "required": ["state", "detail"],
        "title": "MeasuredValue",
        "type": "object"
      },
      "MeasurementEvaluator": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "components": {
            "items": {
              "$ref": "#/components/schemas/VersionedComponent"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Components",
            "type": "array"
          },
          "evaluator_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Evaluator Id",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["evaluator_id", "version", "artifact_sha256", "components"],
        "title": "MeasurementEvaluator",
        "type": "object"
      },
      "MeasurementFreshness": {
        "additionalProperties": false,
        "properties": {
          "observed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed At"
          },
          "reason": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "status": {
            "enum": ["current", "stale", "unknown", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "valid_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid Until"
          }
        },
        "required": ["status", "reason"],
        "title": "MeasurementFreshness",
        "type": "object"
      },
      "MeasurementInput": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "input_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Input Id",
            "type": "string"
          },
          "input_kind": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Input Kind",
            "type": "string"
          },
          "region_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Region Ids",
            "type": "array"
          },
          "revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Revision",
            "type": "string"
          },
          "role": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["input_id", "input_kind", "role", "revision", "content_sha256"],
        "title": "MeasurementInput",
        "type": "object"
      },
      "MeasurementLedgerCatalog": {
        "additionalProperties": false,
        "properties": {
          "measurements": {
            "items": {
              "$ref": "#/components/schemas/RawMeasurementRecord"
            },
            "title": "Measurements",
            "type": "array"
          },
          "verdicts": {
            "items": {
              "$ref": "#/components/schemas/PolicyVerdictRecord"
            },
            "title": "Verdicts",
            "type": "array"
          }
        },
        "required": ["measurements", "verdicts"],
        "title": "MeasurementLedgerCatalog",
        "type": "object"
      },
      "MeasurementLedgerStateExport": {
        "additionalProperties": false,
        "properties": {
          "export_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Export Sha256",
            "type": "string"
          },
          "exported_at": {
            "format": "date-time",
            "title": "Exported At",
            "type": "string"
          },
          "provenance_registry": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ProvenanceRegistryCatalog"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "default": "5.18.0",
            "enum": ["5.17.0", "5.18.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "vocabulary": {
            "$ref": "#/components/schemas/OutcomeStateVocabulary"
          },
          "workspace": {
            "$ref": "#/components/schemas/MeasurementLedgerWorkspace"
          }
        },
        "required": ["vocabulary", "workspace", "exported_at", "export_sha256"],
        "title": "MeasurementLedgerStateExport",
        "type": "object"
      },
      "MeasurementLedgerWorkspace": {
        "additionalProperties": false,
        "properties": {
          "current_verdict_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Verdict Id"
          },
          "measurements": {
            "items": {
              "$ref": "#/components/schemas/RawMeasurementRecord"
            },
            "title": "Measurements",
            "type": "array"
          },
          "provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ProvenanceCoverage"
              },
              {
                "type": "null"
              }
            ]
          },
          "subject": {
            "$ref": "#/components/schemas/MeasurementSubject"
          },
          "verdicts": {
            "items": {
              "$ref": "#/components/schemas/PolicyVerdictRecord"
            },
            "title": "Verdicts",
            "type": "array"
          }
        },
        "required": ["subject", "measurements", "verdicts"],
        "title": "MeasurementLedgerWorkspace",
        "type": "object"
      },
      "MeasurementProvenanceDeclaration": {
        "additionalProperties": false,
        "properties": {
          "corpora": {
            "items": {
              "$ref": "#/components/schemas/RegistryReference"
            },
            "title": "Corpora",
            "type": "array"
          },
          "environment": {
            "$ref": "#/components/schemas/RegistryReference"
          },
          "evaluator": {
            "$ref": "#/components/schemas/RegistryReference"
          },
          "reproducibility": {
            "$ref": "#/components/schemas/ReproducibilityDeclaration"
          }
        },
        "required": ["evaluator", "corpora", "environment", "reproducibility"],
        "title": "MeasurementProvenanceDeclaration",
        "type": "object"
      },
      "MeasurementReference": {
        "additionalProperties": false,
        "properties": {
          "measurement_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Measurement Id",
            "type": "string"
          },
          "measurement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Measurement Sha256",
            "type": "string"
          }
        },
        "required": ["measurement_id", "measurement_sha256"],
        "title": "MeasurementReference",
        "type": "object"
      },
      "MeasurementRegion-Input": {
        "additionalProperties": false,
        "properties": {
          "coordinates": {
            "anyOf": [
              {
                "maxItems": 4,
                "minItems": 4,
                "prefixItems": [
                  {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                        "type": "string"
                      }
                    ]
                  }
                ],
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coordinates"
          },
          "end": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "page": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Page"
          },
          "region_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Region Id",
            "type": "string"
          },
          "region_kind": {
            "enum": [
              "aggregate",
              "text_span",
              "time_range",
              "page",
              "item",
              "json_path",
              "bounding_box"
            ],
            "title": "Region Kind",
            "type": "string"
          },
          "start": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start"
          }
        },
        "required": ["region_id", "region_kind", "locator"],
        "title": "MeasurementRegion",
        "type": "object"
      },
      "MeasurementRegion-Output": {
        "additionalProperties": false,
        "properties": {
          "coordinates": {
            "anyOf": [
              {
                "maxItems": 4,
                "minItems": 4,
                "prefixItems": [
                  {
                    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                    "type": "string"
                  },
                  {
                    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                    "type": "string"
                  },
                  {
                    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                    "type": "string"
                  },
                  {
                    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                    "type": "string"
                  }
                ],
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coordinates"
          },
          "end": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "page": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Page"
          },
          "region_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Region Id",
            "type": "string"
          },
          "region_kind": {
            "enum": [
              "aggregate",
              "text_span",
              "time_range",
              "page",
              "item",
              "json_path",
              "bounding_box"
            ],
            "title": "Region Kind",
            "type": "string"
          },
          "start": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start"
          }
        },
        "required": ["region_id", "region_kind", "locator"],
        "title": "MeasurementRegion",
        "type": "object"
      },
      "MeasurementSample": {
        "additionalProperties": false,
        "properties": {
          "excluded_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excluded Count"
          },
          "method": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Method",
            "type": "string"
          },
          "observed_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Count"
          },
          "required_count": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required Count"
          },
          "status": {
            "enum": ["sufficient", "insufficient", "unavailable", "not_applicable", "unknown"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "method"],
        "title": "MeasurementSample",
        "type": "object"
      },
      "MeasurementStateEvidence": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable", "undetermined"],
            "title": "Applicability",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "freshness": {
            "$ref": "#/components/schemas/MeasurementFreshness"
          },
          "observation_state": {
            "enum": [
              "observed",
              "manual_review",
              "not_applicable",
              "insufficient_data",
              "unavailable",
              "error",
              "stale",
              "unknown"
            ],
            "title": "Observation State",
            "type": "string"
          },
          "reason_code": {
            "pattern": "^measurement_[a-z0-9_]{3,100}$",
            "title": "Reason Code",
            "type": "string"
          },
          "sample": {
            "$ref": "#/components/schemas/MeasurementSample"
          }
        },
        "required": [
          "observation_state",
          "applicability",
          "reason_code",
          "evidence_refs",
          "sample",
          "freshness"
        ],
        "title": "MeasurementStateEvidence",
        "type": "object"
      },
      "MeasurementSubject": {
        "additionalProperties": false,
        "properties": {
          "revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Revision",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": ["subject_kind", "subject_id", "revision", "revision_sha256"],
        "title": "MeasurementSubject",
        "type": "object"
      },
      "MeasurementUncertainty-Input": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "confidence": {
            "anyOf": [
              {
                "exclusiveMaximum": 1.0,
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "kind": {
            "enum": [
              "none",
              "absolute",
              "relative",
              "confidence_interval",
              "unknown",
              "not_applicable"
            ],
            "title": "Kind",
            "type": "string"
          },
          "lower": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lower"
          },
          "method": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Method",
            "type": "string"
          },
          "plus_minus": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plus Minus"
          },
          "upper": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upper"
          }
        },
        "required": ["kind", "method"],
        "title": "MeasurementUncertainty",
        "type": "object"
      },
      "MeasurementUncertainty-Output": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "confidence": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "kind": {
            "enum": [
              "none",
              "absolute",
              "relative",
              "confidence_interval",
              "unknown",
              "not_applicable"
            ],
            "title": "Kind",
            "type": "string"
          },
          "lower": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lower"
          },
          "method": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Method",
            "type": "string"
          },
          "plus_minus": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plus Minus"
          },
          "upper": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upper"
          }
        },
        "required": ["kind", "method"],
        "title": "MeasurementUncertainty",
        "type": "object"
      },
      "MeasurementView": {
        "additionalProperties": false,
        "description": "What the calibration found. Carries no verdict, on purpose.",
        "properties": {
          "comparisons": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DeclaredVersusEmpirical"
            },
            "maxItems": 20,
            "title": "Comparisons",
            "type": "array"
          },
          "estimates": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Estimate"
            },
            "maxItems": 20,
            "title": "Estimates",
            "type": "array"
          },
          "item_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "item_revision": {
            "minimum": 1.0,
            "title": "Item Revision",
            "type": "integer"
          },
          "method": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Method",
            "type": "string"
          },
          "model_family": {
            "maxLength": 40,
            "minLength": 2,
            "title": "Model Family",
            "type": "string"
          },
          "run_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "sample": {
            "$ref": "#/components/schemas/SampleQuality"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "9.6.0",
            "default": "9.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tool_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Tool Version",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "item_revision",
          "run_id",
          "method",
          "model_family",
          "tool_version",
          "sample_sha256",
          "sample"
        ],
        "title": "MeasurementView",
        "type": "object"
      },
      "MediaActionTicket": {
        "additionalProperties": false,
        "description": "What performing one action requires, and the revision it is fenced to.\n\nThe workspace reads productions; it does not write them. An action here is\ntherefore not a button that quietly reaches into another service's tables\nbut an exact request, addressed to the service that owns the production\nand fenced to the revision this page was rendered from. A cancel sent\nwithout that fence lands on whatever the stage has become in the meantime,\nwhich on a retried stage is a different attempt entirely.",
        "properties": {
          "action": {
            "enum": ["cancel", "retry", "regenerate"],
            "title": "Action",
            "type": "string"
          },
          "endpoint": {
            "title": "Endpoint",
            "type": "string"
          },
          "expected_revision": {
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "media_project_id": {
            "title": "Media Project Id",
            "type": "string"
          },
          "stage_id": {
            "title": "Stage Id",
            "type": "string"
          }
        },
        "required": [
          "action",
          "endpoint",
          "media_project_id",
          "stage_id",
          "expected_revision",
          "expected_revision_sha256"
        ],
        "title": "MediaActionTicket",
        "type": "object"
      },
      "MediaCriticFinding": {
        "additionalProperties": false,
        "description": "One thing a critic said about one exact render of one segment.",
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "domain": {
            "enum": ["visual", "layout", "correctness", "source", "accessibility", "technical"],
            "title": "Domain",
            "type": "string"
          },
          "evaluator": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Evaluator",
            "type": "string"
          },
          "evaluator_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Evaluator Version",
            "type": "string"
          },
          "finding_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Finding Id",
            "type": "string"
          },
          "render_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Render Sha256",
            "type": "string"
          },
          "segment_id": {
            "pattern": "^lecture-segment-[a-z0-9-]{3,119}$",
            "title": "Segment Id",
            "type": "string"
          },
          "severity": {
            "enum": ["blocker", "major", "minor", "advisory"],
            "title": "Severity",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "finding_id",
          "segment_id",
          "domain",
          "severity",
          "summary",
          "evaluator",
          "evaluator_version",
          "render_sha256",
          "created_at"
        ],
        "title": "MediaCriticFinding",
        "type": "object"
      },
      "MediaCritiqueRecord": {
        "additionalProperties": false,
        "description": "The one payload carrying free text, and it carries it redacted.\n\n``residual_identities`` must be empty. A critique whose redaction left\nsomething identity-shaped behind is not admitted, because a warning nobody\nacts on is the same as no redaction at all.",
        "properties": {
          "asset_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Asset Id",
            "type": "string"
          },
          "asset_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Asset Revision Sha256",
            "type": "string"
          },
          "critique": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Critique",
            "type": "string"
          },
          "critiqued_at": {
            "format": "date-time",
            "title": "Critiqued At",
            "type": "string"
          },
          "payload_kind": {
            "const": "media_critique",
            "default": "media_critique",
            "title": "Payload Kind",
            "type": "string"
          },
          "redactions_applied": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Redactions Applied",
            "type": "array"
          },
          "residual_identities": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Residual Identities",
            "type": "array"
          }
        },
        "required": ["asset_id", "asset_revision_sha256", "critique", "critiqued_at"],
        "title": "MediaCritiqueRecord",
        "type": "object"
      },
      "MediaCutManifest": {
        "additionalProperties": false,
        "description": "A whole cut, by content. This is what a replacement is compared with.",
        "properties": {
          "package_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision",
            "type": "string"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/MediaCutSegment"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Segments",
            "type": "array"
          }
        },
        "required": ["package_id", "revision", "segments"],
        "title": "MediaCutManifest",
        "type": "object"
      },
      "MediaCutSegment": {
        "additionalProperties": false,
        "description": "One segment as it stood in one cut, or as it is proposed to stand.\n\n`content_sha256` may be absent, and that is a statement rather than a\ngap: this segment is to be re-rendered and nobody knows its bytes yet. It\nis allowed only in a proposed cut \u2014 a baseline whose digests are unknown\ncould not show anything to be unchanged, which is the only thing a\nbaseline is for, and the aggregate refuses one.",
        "properties": {
          "content_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Sha256"
          },
          "segment_id": {
            "pattern": "^lecture-segment-[a-z0-9-]{3,119}$",
            "title": "Segment Id",
            "type": "string"
          }
        },
        "required": ["segment_id"],
        "title": "MediaCutSegment",
        "type": "object"
      },
      "MediaEvaluationMetricResponse": {
        "description": "One scored media-quality metric.",
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "string"
          },
          "score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["score", "status", "detail"],
        "title": "MediaEvaluationMetricResponse",
        "type": "object"
      },
      "MediaEvaluationRequest": {
        "description": "Request an output-quality evaluation run.",
        "properties": {
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          }
        },
        "title": "MediaEvaluationRequest",
        "type": "object"
      },
      "MediaFindingDecision": {
        "additionalProperties": false,
        "description": "What a person decided about a finding, and what they were looking at.",
        "properties": {
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["admin", "instructor"],
            "title": "Actor Role",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "enum": ["accepted", "dismissed", "waived"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Decision Id",
            "type": "string"
          },
          "finding_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Finding Id",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "render_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Render Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "finding_id",
          "decision",
          "actor_id",
          "actor_role",
          "reason",
          "render_sha256",
          "created_at"
        ],
        "title": "MediaFindingDecision",
        "type": "object"
      },
      "MediaFindingView": {
        "additionalProperties": false,
        "description": "One critic finding, with the render it is about and where it stands.\n\n`state` is computed, never stored: `undecided` is a finding about the\nrender the segment has now that nobody has answered, `settled` is one\nanswered against that same render, and `superseded` is one about a render\nthat is gone. A stored flag would keep saying `settled` after a re-render.",
        "properties": {
          "decided_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decided By"
          },
          "decision": {
            "anyOf": [
              {
                "enum": ["accepted", "dismissed", "waived"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision"
          },
          "decision_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision Reason"
          },
          "domain": {
            "enum": ["visual", "layout", "correctness", "source", "accessibility", "technical"],
            "title": "Domain",
            "type": "string"
          },
          "evaluator": {
            "title": "Evaluator",
            "type": "string"
          },
          "evaluator_version": {
            "title": "Evaluator Version",
            "type": "string"
          },
          "finding_id": {
            "title": "Finding Id",
            "type": "string"
          },
          "render_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Render Sha256",
            "type": "string"
          },
          "segment_id": {
            "title": "Segment Id",
            "type": "string"
          },
          "severity": {
            "enum": ["blocker", "major", "minor", "advisory"],
            "title": "Severity",
            "type": "string"
          },
          "state": {
            "enum": ["undecided", "settled", "superseded"],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "finding_id",
          "segment_id",
          "domain",
          "severity",
          "summary",
          "evaluator",
          "evaluator_version",
          "render_sha256",
          "state"
        ],
        "title": "MediaFindingView",
        "type": "object"
      },
      "MediaGateEligibilityWitness": {
        "additionalProperties": false,
        "description": "Non-evidentiary gate identity used by Metis publication decisions.",
        "properties": {
          "evaluator_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluator Id"
          },
          "evaluator_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluator Version"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "gate_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Gate Id",
            "type": "string"
          },
          "gate_revision": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Gate Revision",
            "type": "string"
          },
          "kind": {
            "enum": ["technical", "captions", "transcript", "synchronization"],
            "title": "Kind",
            "type": "string"
          },
          "state": {
            "enum": [
              "pass",
              "fail",
              "needs-review",
              "unavailable",
              "not-configured",
              "partial",
              "not-applicable"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["gate_id", "gate_revision", "kind", "state", "expires_at"],
        "title": "MediaGateEligibilityWitness",
        "type": "object"
      },
      "MediaGateScope": {
        "additionalProperties": false,
        "description": "A sign-off and the exact thing it covers.",
        "properties": {
          "approval_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approval Id"
          },
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approved_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Approved By",
            "type": "string"
          },
          "domain": {
            "enum": [
              "media",
              "consent",
              "rights",
              "source",
              "correctness",
              "accessibility",
              "sync",
              "technical",
              "target_playback"
            ],
            "title": "Domain",
            "type": "string"
          },
          "gate_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Gate Id",
            "type": "string"
          },
          "scope": {
            "enum": ["package", "segment", "track", "rendition"],
            "title": "Scope",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "block", "unavailable"],
            "title": "Status",
            "type": "string"
          },
          "subject_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject Id"
          }
        },
        "required": ["gate_id", "domain", "scope", "status", "approved_by", "approved_at"],
        "title": "MediaGateScope",
        "type": "object"
      },
      "MediaInteractiveAccessibility": {
        "additionalProperties": false,
        "properties": {
          "alternative_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Alternative Text",
            "type": "string"
          },
          "audio_description": {
            "$ref": "#/components/schemas/AlternativeProvision"
          },
          "captions": {
            "$ref": "#/components/schemas/AlternativeProvision"
          },
          "keyboard_path": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Keyboard Path",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "long_description": {
            "$ref": "#/components/schemas/AlternativeProvision"
          },
          "noninteractive_equivalent": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Noninteractive Equivalent",
            "type": "string"
          },
          "reduced_motion_equivalent": {
            "const": true,
            "default": true,
            "title": "Reduced Motion Equivalent",
            "type": "boolean"
          },
          "screen_reader_review_required": {
            "const": true,
            "default": true,
            "title": "Screen Reader Review Required",
            "type": "boolean"
          },
          "sign_language": {
            "$ref": "#/components/schemas/AlternativeProvision"
          },
          "support_requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Support Requirements",
            "type": "array"
          },
          "transcript": {
            "$ref": "#/components/schemas/AlternativeProvision"
          }
        },
        "required": [
          "locale",
          "alternative_text",
          "long_description",
          "transcript",
          "captions",
          "audio_description",
          "sign_language",
          "keyboard_path",
          "noninteractive_equivalent",
          "support_requirements"
        ],
        "title": "MediaInteractiveAccessibility",
        "type": "object"
      },
      "MediaInteractiveActor": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "MediaInteractiveActor",
        "type": "object"
      },
      "MediaInteractiveItemContent": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "items": {
              "$ref": "#/components/schemas/MediaInteractiveAccessibility"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Accessibility",
            "type": "array"
          },
          "event_schemas": {
            "items": {
              "$ref": "#/components/schemas/TypedEventSchema"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Event Schemas",
            "type": "array"
          },
          "interactions": {
            "items": {
              "$ref": "#/components/schemas/InteractionDefinition"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Interactions",
            "type": "array"
          },
          "kind": {
            "enum": [
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale_surfaces": {
            "items": {
              "$ref": "#/components/schemas/MediaInteractiveLocaleSurface"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Surfaces",
            "type": "array"
          },
          "media": {
            "items": {
              "$ref": "#/components/schemas/GovernedMediaRevision"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Media",
            "type": "array"
          },
          "qti_profile": {
            "$ref": "#/components/schemas/QtiMappingProfile"
          },
          "runtime": {
            "$ref": "#/components/schemas/InteractiveSandboxRuntime"
          },
          "scoring_hooks": {
            "items": {
              "$ref": "#/components/schemas/ScoringHook"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Scoring Hooks",
            "type": "array"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          },
          "state_schema": {
            "items": {
              "$ref": "#/components/schemas/TypedStateField"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "State Schema",
            "type": "array"
          }
        },
        "required": [
          "kind",
          "locale_surfaces",
          "source_references",
          "media",
          "interactions",
          "state_schema",
          "event_schemas",
          "scoring_hooks",
          "accessibility",
          "runtime",
          "qti_profile"
        ],
        "title": "MediaInteractiveItemContent",
        "type": "object"
      },
      "MediaInteractiveLearnerPayload": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/LearnerAccessibility"
          },
          "event_schemas": {
            "items": {
              "$ref": "#/components/schemas/TypedEventSchema"
            },
            "title": "Event Schemas",
            "type": "array"
          },
          "initial_state": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "title": "Initial State",
            "type": "object"
          },
          "interactions": {
            "items": {
              "$ref": "#/components/schemas/LearnerInteraction"
            },
            "title": "Interactions",
            "type": "array"
          },
          "media": {
            "items": {
              "$ref": "#/components/schemas/LearnerMediaBinding"
            },
            "title": "Media",
            "type": "array"
          },
          "runtime": {
            "$ref": "#/components/schemas/LearnerRuntimePlan"
          }
        },
        "required": [
          "media",
          "interactions",
          "initial_state",
          "event_schemas",
          "accessibility",
          "runtime"
        ],
        "title": "MediaInteractiveLearnerPayload",
        "type": "object"
      },
      "MediaInteractiveLocaleSurface": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/MediaInteractiveRichContent"
          },
          "instructions": {
            "$ref": "#/components/schemas/MediaInteractiveRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "prompt": {
            "$ref": "#/components/schemas/MediaInteractiveRichContent"
          }
        },
        "required": ["locale", "prompt", "instructions", "context"],
        "title": "MediaInteractiveLocaleSurface",
        "type": "object"
      },
      "MediaInteractivePreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "allowed_kind": {
            "enum": [
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction"
            ],
            "title": "Allowed Kind",
            "type": "string"
          },
          "current": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MediaInteractiveRevisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/MediaInteractiveSourceSnapshot"
          }
        },
        "required": ["source", "allowed_kind", "current"],
        "title": "MediaInteractivePreparationResponse",
        "type": "object"
      },
      "MediaInteractivePreview": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "items": {
              "$ref": "#/components/schemas/AccommodationDecision"
            },
            "title": "Accommodations",
            "type": "array"
          },
          "context": {
            "$ref": "#/components/schemas/MediaInteractiveRichContent"
          },
          "delivery_renderer": {
            "$ref": "#/components/schemas/PinnedArtifact"
          },
          "device": {
            "title": "Device",
            "type": "string"
          },
          "input_mode": {
            "title": "Input Mode",
            "type": "string"
          },
          "instructions": {
            "$ref": "#/components/schemas/MediaInteractiveRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_interactive_item_id": {
            "title": "Media Interactive Item Id",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/MediaInteractiveLearnerPayload"
          },
          "prompt": {
            "$ref": "#/components/schemas/MediaInteractiveRichContent"
          },
          "protected_material_visible": {
            "const": false,
            "default": false,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "media_interactive_item_id",
          "revision",
          "revision_sha256",
          "locale",
          "device",
          "input_mode",
          "prompt",
          "instructions",
          "context",
          "payload",
          "accommodations",
          "delivery_renderer"
        ],
        "title": "MediaInteractivePreview",
        "type": "object"
      },
      "MediaInteractiveProtectedExport": {
        "additionalProperties": false,
        "properties": {
          "authorization_scope": {
            "const": "media-interactive:protected-export",
            "default": "media-interactive:protected-export",
            "title": "Authorization Scope",
            "type": "string"
          },
          "protected_material_visible": {
            "const": true,
            "default": true,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "revision": {
            "$ref": "#/components/schemas/MediaInteractiveRevisionResponse"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["revision"],
        "title": "MediaInteractiveProtectedExport",
        "type": "object"
      },
      "MediaInteractiveQtiReport": {
        "additionalProperties": false,
        "properties": {
          "declared_loss_paths": {
            "items": {
              "type": "string"
            },
            "title": "Declared Loss Paths",
            "type": "array"
          },
          "disposition": {
            "enum": ["extension", "lossy", "incompatible"],
            "title": "Disposition",
            "type": "string"
          },
          "incompatibility_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Incompatibility Reasons",
            "type": "array"
          },
          "item_xml": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Xml"
          },
          "recovered_content_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recovered Content Sha256"
          },
          "roundtrip_status": {
            "enum": ["exact", "lossy", "incompatible"],
            "title": "Roundtrip Status",
            "type": "string"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sidecar_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sidecar Json"
          },
          "sidecar_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sidecar Sha256"
          },
          "source_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Content Sha256",
            "type": "string"
          },
          "target": {
            "enum": ["qti-3.0-core", "qti-3.0-metis-extension", "qti-2.2"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "target",
          "disposition",
          "item_xml",
          "sidecar_json",
          "sidecar_sha256",
          "declared_loss_paths",
          "incompatibility_reasons",
          "roundtrip_status",
          "source_content_sha256",
          "recovered_content_sha256"
        ],
        "title": "MediaInteractiveQtiReport",
        "type": "object"
      },
      "MediaInteractiveRevisionHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/MediaInteractiveRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "revisions"],
        "title": "MediaInteractiveRevisionHistoryResponse",
        "type": "object"
      },
      "MediaInteractiveRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/MediaInteractiveItemContent"
          },
          "expected_editor_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision"
          },
          "expected_editor_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision Sha256"
          },
          "expected_source_revision": {
            "minimum": 1.0,
            "title": "Expected Source Revision",
            "type": "integer"
          },
          "expected_source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^media-interactive:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_source_revision",
          "expected_source_revision_sha256",
          "reason",
          "content"
        ],
        "title": "MediaInteractiveRevisionRequest",
        "type": "object"
      },
      "MediaInteractiveRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/MediaInteractiveActor"
          },
          "content": {
            "$ref": "#/components/schemas/MediaInteractiveItemContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "media_interactive_item_id": {
            "pattern": "^media-interactive-item-[a-f0-9]{40}$",
            "title": "Media Interactive Item Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/MediaInteractiveSourceSnapshot"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "media_interactive_item_id",
          "draft_id",
          "tenant_id",
          "revision",
          "source",
          "actor",
          "reason",
          "content",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "MediaInteractiveRevisionResponse",
        "type": "object"
      },
      "MediaInteractiveRichContent": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "format": {
            "default": "plain_text",
            "enum": ["plain_text", "markdown"],
            "title": "Format",
            "type": "string"
          },
          "value": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "accessible_text"],
        "title": "MediaInteractiveRichContent",
        "type": "object"
      },
      "MediaInteractiveSafeProjection": {
        "additionalProperties": false,
        "properties": {
          "excluded_properties": {
            "items": {
              "enum": ["expected_values", "scoring_hooks", "signing_key", "freeform_telemetry"],
              "type": "string"
            },
            "title": "Excluded Properties",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_interactive_item_id": {
            "title": "Media Interactive Item Id",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/MediaInteractiveLearnerPayload"
          },
          "prompt_text": {
            "title": "Prompt Text",
            "type": "string"
          },
          "protected_material_visible": {
            "const": false,
            "default": false,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "surface": {
            "enum": ["learner", "search", "export", "log", "tutor"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": [
          "surface",
          "media_interactive_item_id",
          "revision",
          "revision_sha256",
          "locale",
          "prompt_text",
          "payload",
          "excluded_properties"
        ],
        "title": "MediaInteractiveSafeProjection",
        "type": "object"
      },
      "MediaInteractiveSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "draft_revision": {
            "minimum": 1.0,
            "title": "Draft Revision",
            "type": "integer"
          },
          "draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Draft Revision Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "assessment-kind:media",
              "assessment-kind:simulation",
              "assessment-kind:interaction"
            ],
            "title": "Kind",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "prompt": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Prompt",
            "type": "string"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "draft_revision",
          "draft_revision_sha256",
          "kind",
          "prompt",
          "objective_ids",
          "source_references",
          "source_sha256"
        ],
        "title": "MediaInteractiveSourceSnapshot",
        "type": "object"
      },
      "MediaInvalidationView": {
        "additionalProperties": false,
        "description": "One thing a person signed that no longer holds, and why.",
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "string"
          },
          "identifier": {
            "title": "Identifier",
            "type": "string"
          },
          "kind": {
            "enum": ["gate", "approval", "track", "consent"],
            "title": "Kind",
            "type": "string"
          },
          "reason": {
            "enum": [
              "baseline_unknown",
              "package_scoped",
              "segment_replaced",
              "segment_removed",
              "track_stale",
              "consent_lapsed"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["kind", "identifier", "reason", "detail"],
        "title": "MediaInvalidationView",
        "type": "object"
      },
      "MediaLoopAgentRef": {
        "additionalProperties": false,
        "properties": {
          "agent_id": {
            "pattern": "^media-agent-[a-z0-9-]{3,119}$",
            "title": "Agent Id",
            "type": "string"
          },
          "approval_authority": {
            "const": false,
            "default": false,
            "title": "Approval Authority",
            "type": "boolean"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model Version",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "role": {
            "enum": [
              "author",
              "reviser",
              "visual_critic",
              "layout_critic",
              "accessibility_critic",
              "correctness_critic",
              "source_critic",
              "technical_critic"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "agent_id",
          "role",
          "provider",
          "model",
          "model_version",
          "prompt_version",
          "config_sha256"
        ],
        "title": "MediaLoopAgentRef",
        "type": "object"
      },
      "MediaLoopArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "pattern": "^media-loop-artifact-[a-f0-9]{40}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "byte_length": {
            "maximum": 10000000000.0,
            "minimum": 0.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "pattern": "^(?:/|[a-z][a-z0-9+.-]*://)",
            "title": "Locator",
            "type": "string"
          },
          "media_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Media Type",
            "type": "string"
          },
          "renderer_environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Renderer Environment Sha256",
            "type": "string"
          },
          "role": {
            "enum": [
              "primary",
              "preview",
              "frame",
              "typed_spec",
              "render_log",
              "sandbox_receipt",
              "accessible_equivalent"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "artifact_id",
          "role",
          "media_type",
          "locator",
          "content_sha256",
          "byte_length",
          "generation_sha256",
          "renderer_environment_sha256"
        ],
        "title": "MediaLoopArtifact",
        "type": "object"
      },
      "MediaLoopBudget": {
        "additionalProperties": false,
        "properties": {
          "currency": {
            "const": "USD",
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "deadline": {
            "format": "date-time",
            "title": "Deadline",
            "type": "string"
          },
          "max_compute_seconds": {
            "maximum": 86400.0,
            "minimum": 1.0,
            "title": "Max Compute Seconds",
            "type": "integer"
          },
          "max_cost_minor_units": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Max Cost Minor Units",
            "type": "integer"
          },
          "max_iterations": {
            "maximum": 12.0,
            "minimum": 1.0,
            "title": "Max Iterations",
            "type": "integer"
          },
          "max_tokens": {
            "maximum": 10000000.0,
            "minimum": 1.0,
            "title": "Max Tokens",
            "type": "integer"
          },
          "max_tool_calls": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Max Tool Calls",
            "type": "integer"
          },
          "max_wall_seconds": {
            "maximum": 86400.0,
            "minimum": 1.0,
            "title": "Max Wall Seconds",
            "type": "integer"
          }
        },
        "required": [
          "max_iterations",
          "max_tokens",
          "max_tool_calls",
          "max_compute_seconds",
          "max_cost_minor_units",
          "max_wall_seconds",
          "deadline"
        ],
        "title": "MediaLoopBudget",
        "type": "object"
      },
      "MediaLoopCatalog": {
        "additionalProperties": false,
        "properties": {
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "loops": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopRevision"
            },
            "title": "Loops",
            "type": "array"
          }
        },
        "required": ["lesson_id", "loops", "catalog_sha256"],
        "title": "MediaLoopCatalog",
        "type": "object"
      },
      "MediaLoopCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "accessibility_requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Accessibility Requirements",
            "type": "array"
          },
          "budget": {
            "$ref": "#/components/schemas/MediaLoopBudget"
          },
          "expected_lesson_witness": {
            "$ref": "#/components/schemas/TeachingMediaLessonWitness"
          },
          "expected_project": {
            "$ref": "#/components/schemas/MediaLoopProjectRef"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/MediaLoopTargetProfile"
          }
        },
        "required": [
          "expected_lesson_witness",
          "expected_project",
          "target",
          "accessibility_requirements",
          "budget",
          "idempotency_key"
        ],
        "title": "MediaLoopCreateRequest",
        "type": "object"
      },
      "MediaLoopCritique": {
        "additionalProperties": false,
        "properties": {
          "approval_authority": {
            "const": false,
            "default": false,
            "title": "Approval Authority",
            "type": "boolean"
          },
          "critic_agent_id": {
            "pattern": "^media-agent-[a-z0-9-]{3,119}$",
            "title": "Critic Agent Id",
            "type": "string"
          },
          "critic_model_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Critic Model Version",
            "type": "string"
          },
          "critique_id": {
            "pattern": "^media-critique-[a-f0-9]{40}$",
            "title": "Critique Id",
            "type": "string"
          },
          "critique_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Critique Sha256",
            "type": "string"
          },
          "domain": {
            "enum": ["visual", "layout", "accessibility", "correctness", "source", "technical"],
            "title": "Domain",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopFinding"
            },
            "maxItems": 1000,
            "title": "Findings",
            "type": "array"
          },
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "render_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Render Receipt Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "fail", "uncertain", "abstain"],
            "title": "Status",
            "type": "string"
          },
          "uncertainty": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Uncertainty",
            "type": "string"
          }
        },
        "required": [
          "critique_id",
          "domain",
          "status",
          "critic_agent_id",
          "critic_model_version",
          "generation_sha256",
          "render_receipt_sha256",
          "uncertainty",
          "critique_sha256"
        ],
        "title": "MediaLoopCritique",
        "type": "object"
      },
      "MediaLoopDecision": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["admin", "instructor"],
            "title": "Actor Role",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "enum": ["approve", "accept", "edit", "reject"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^media-loop-decision-[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "edited_plan_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Plan Sha256"
          },
          "phase": {
            "enum": ["plan", "proposal"],
            "title": "Phase",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "self_published": {
            "const": false,
            "default": false,
            "title": "Self Published",
            "type": "boolean"
          },
          "subject_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "phase",
          "decision",
          "subject_sha256",
          "actor_id",
          "actor_role",
          "reason",
          "decision_sha256",
          "created_at"
        ],
        "title": "MediaLoopDecision",
        "type": "object"
      },
      "MediaLoopFinding": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "critic_agent_id": {
            "pattern": "^media-agent-[a-z0-9-]{3,119}$",
            "title": "Critic Agent Id",
            "type": "string"
          },
          "domain": {
            "enum": ["visual", "layout", "accessibility", "correctness", "source", "technical"],
            "title": "Domain",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^media-finding-[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "finding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Finding Sha256",
            "type": "string"
          },
          "severity": {
            "enum": ["info", "warning", "error", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "title": "Source Ids",
            "type": "array"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "uncertainty": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Uncertainty",
            "type": "string"
          }
        },
        "required": [
          "finding_id",
          "domain",
          "severity",
          "summary",
          "evidence_ref",
          "artifact_sha256",
          "confidence",
          "uncertainty",
          "critic_agent_id",
          "finding_sha256"
        ],
        "title": "MediaLoopFinding",
        "type": "object"
      },
      "MediaLoopGeneration": {
        "additionalProperties": false,
        "properties": {
          "agent_id": {
            "pattern": "^media-agent-[a-z0-9-]{3,119}$",
            "title": "Agent Id",
            "type": "string"
          },
          "dataset_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Dataset Sha256S",
            "type": "array"
          },
          "dependency_lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dependency Lock Sha256",
            "type": "string"
          },
          "generation_id": {
            "pattern": "^media-generation-[a-f0-9]{40}$",
            "title": "Generation Id",
            "type": "string"
          },
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["code", "spec"],
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "enum": [
              "python-manim",
              "python",
              "javascript",
              "json",
              "vega-lite",
              "mermaid",
              "ssml",
              "ffmpeg-graph",
              "presentation-json"
            ],
            "title": "Language",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "source": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Source",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tool_id": {
            "pattern": "^media-loop-tool-[a-z0-9-]{3,119}$",
            "title": "Tool Id",
            "type": "string"
          },
          "untrusted_content_fenced": {
            "const": true,
            "default": true,
            "title": "Untrusted Content Fenced",
            "type": "boolean"
          },
          "untrusted_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Untrusted Content Sha256",
            "type": "string"
          }
        },
        "required": [
          "generation_id",
          "kind",
          "language",
          "source",
          "source_sha256",
          "dependency_lock_sha256",
          "plan_sha256",
          "objective_ids",
          "source_ids",
          "agent_id",
          "tool_id",
          "untrusted_content_sha256",
          "generation_sha256"
        ],
        "title": "MediaLoopGeneration",
        "type": "object"
      },
      "MediaLoopHistory": {
        "additionalProperties": false,
        "properties": {
          "current": {
            "$ref": "#/components/schemas/MediaLoopRevision"
          },
          "loop_id": {
            "pattern": "^media-loop-[a-f0-9]{40}$",
            "title": "Loop Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopRevision"
            },
            "minItems": 1,
            "title": "Revisions",
            "type": "array"
          }
        },
        "required": ["loop_id", "current", "revisions"],
        "title": "MediaLoopHistory",
        "type": "object"
      },
      "MediaLoopIteration": {
        "additionalProperties": false,
        "properties": {
          "critiques": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopCritique"
            },
            "maxItems": 6,
            "title": "Critiques",
            "type": "array"
          },
          "disagreement_groups": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "maxItems": 100,
            "title": "Disagreement Groups",
            "type": "array"
          },
          "generation": {
            "$ref": "#/components/schemas/MediaLoopGeneration"
          },
          "iteration_id": {
            "pattern": "^media-iteration-[a-f0-9]{40}$",
            "title": "Iteration Id",
            "type": "string"
          },
          "iteration_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Iteration Sha256",
            "type": "string"
          },
          "number": {
            "maximum": 12.0,
            "minimum": 1.0,
            "title": "Number",
            "type": "integer"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MediaLoopRevisionPatch"
              },
              {
                "type": "null"
              }
            ]
          },
          "sandbox": {
            "$ref": "#/components/schemas/MediaLoopSandboxReceipt"
          },
          "usage": {
            "$ref": "#/components/schemas/MediaLoopUsage"
          }
        },
        "required": [
          "iteration_id",
          "number",
          "plan_sha256",
          "generation",
          "sandbox",
          "usage",
          "iteration_sha256"
        ],
        "title": "MediaLoopIteration",
        "type": "object"
      },
      "MediaLoopIterationEventRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Plan Sha256",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "iteration": {
            "$ref": "#/components/schemas/MediaLoopIteration"
          },
          "worker_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Worker Receipt Sha256",
            "type": "string"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "expected_plan_sha256",
          "iteration",
          "worker_receipt_sha256",
          "idempotency_key"
        ],
        "title": "MediaLoopIterationEventRequest",
        "type": "object"
      },
      "MediaLoopPlan": {
        "additionalProperties": false,
        "properties": {
          "accessibility_requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Accessibility Requirements",
            "type": "array"
          },
          "authored_by_agent_id": {
            "pattern": "^media-agent-[a-z0-9-]{3,119}$",
            "title": "Authored By Agent Id",
            "type": "string"
          },
          "authored_with_tool_id": {
            "pattern": "^media-loop-tool-[a-z0-9-]{3,119}$",
            "title": "Authored With Tool Id",
            "type": "string"
          },
          "lesson_witness_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lesson Witness Sha256",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "plan_id": {
            "pattern": "^media-plan-[a-f0-9]{40}$",
            "title": "Plan Id",
            "type": "string"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "plan_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Plan Version",
            "type": "string"
          },
          "project_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Project Revision Sha256",
            "type": "string"
          },
          "scenes": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopScenePlan"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Scenes",
            "type": "array"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/MediaLoopTargetProfile"
          },
          "untrusted_content_fenced": {
            "const": true,
            "default": true,
            "title": "Untrusted Content Fenced",
            "type": "boolean"
          },
          "untrusted_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Untrusted Content Sha256",
            "type": "string"
          }
        },
        "required": [
          "plan_id",
          "lesson_witness_sha256",
          "project_revision_sha256",
          "target",
          "accessibility_requirements",
          "objective_ids",
          "source_ids",
          "scenes",
          "authored_by_agent_id",
          "authored_with_tool_id",
          "untrusted_content_sha256",
          "plan_sha256"
        ],
        "title": "MediaLoopPlan",
        "type": "object"
      },
      "MediaLoopPlanDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["approve", "edit", "reject"],
            "title": "Decision",
            "type": "string"
          },
          "edited_plan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MediaLoopPlan"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Plan Sha256",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "decision",
          "expected_revision",
          "expected_revision_sha256",
          "expected_plan_sha256",
          "reason",
          "idempotency_key"
        ],
        "title": "MediaLoopPlanDecisionRequest",
        "type": "object"
      },
      "MediaLoopPlanEventRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "plan": {
            "$ref": "#/components/schemas/MediaLoopPlan"
          },
          "worker_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Worker Receipt Sha256",
            "type": "string"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "plan",
          "worker_receipt_sha256",
          "idempotency_key"
        ],
        "title": "MediaLoopPlanEventRequest",
        "type": "object"
      },
      "MediaLoopPolicyRegistry": {
        "additionalProperties": false,
        "properties": {
          "agents": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopAgentRef"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Agents",
            "type": "array"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "renderer": {
            "$ref": "#/components/schemas/TeachingMediaRendererRef"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopToolRef"
            },
            "maxItems": 20,
            "minItems": 6,
            "title": "Tools",
            "type": "array"
          }
        },
        "required": ["agents", "tools", "renderer", "registry_sha256"],
        "title": "MediaLoopPolicyRegistry",
        "type": "object"
      },
      "MediaLoopProjectRef": {
        "additionalProperties": false,
        "properties": {
          "project_id": {
            "pattern": "^media-project-[a-f0-9]{40}$",
            "title": "Project Id",
            "type": "string"
          },
          "project_revision": {
            "minimum": 1.0,
            "title": "Project Revision",
            "type": "integer"
          },
          "project_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Project Revision Sha256",
            "type": "string"
          },
          "spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Spec Sha256",
            "type": "string"
          }
        },
        "required": ["project_id", "project_revision", "project_revision_sha256", "spec_sha256"],
        "title": "MediaLoopProjectRef",
        "type": "object"
      },
      "MediaLoopProposal": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Artifact Sha256S",
            "type": "array"
          },
          "critique_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Critique Sha256S",
            "type": "array"
          },
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "iteration_number": {
            "maximum": 12.0,
            "minimum": 1.0,
            "title": "Iteration Number",
            "type": "integer"
          },
          "iteration_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Iteration Sha256",
            "type": "string"
          },
          "normal_acceptance_decision_created": {
            "const": false,
            "default": false,
            "title": "Normal Acceptance Decision Created",
            "type": "boolean"
          },
          "normal_media_project": {
            "$ref": "#/components/schemas/MediaLoopProjectRef"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "proposal_id": {
            "pattern": "^media-loop-proposal-[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Proposal Sha256",
            "type": "string"
          },
          "publication_state": {
            "const": "unpublished_proposal",
            "default": "unpublished_proposal",
            "title": "Publication State",
            "type": "string"
          },
          "render_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Render Receipt Sha256",
            "type": "string"
          },
          "self_published": {
            "const": false,
            "default": false,
            "title": "Self Published",
            "type": "boolean"
          },
          "self_waived": {
            "const": false,
            "default": false,
            "title": "Self Waived",
            "type": "boolean"
          }
        },
        "required": [
          "proposal_id",
          "iteration_number",
          "iteration_sha256",
          "plan_sha256",
          "generation_sha256",
          "render_receipt_sha256",
          "artifact_sha256s",
          "critique_sha256s",
          "normal_media_project",
          "proposal_sha256"
        ],
        "title": "MediaLoopProposal",
        "type": "object"
      },
      "MediaLoopProposalDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["accept", "edit", "reject"],
            "title": "Decision",
            "type": "string"
          },
          "edited_plan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MediaLoopPlan"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Proposal Sha256",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "decision",
          "expected_revision",
          "expected_revision_sha256",
          "expected_proposal_sha256",
          "reason",
          "idempotency_key"
        ],
        "title": "MediaLoopProposalDecisionRequest",
        "type": "object"
      },
      "MediaLoopRevision": {
        "additionalProperties": false,
        "properties": {
          "accessibility_requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Accessibility Requirements",
            "type": "array"
          },
          "budget": {
            "$ref": "#/components/schemas/MediaLoopBudget"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopDecision"
            },
            "maxItems": 1000,
            "title": "Decisions",
            "type": "array"
          },
          "iterations": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopIteration"
            },
            "maxItems": 12,
            "title": "Iterations",
            "type": "array"
          },
          "lesson_witness": {
            "$ref": "#/components/schemas/TeachingMediaLessonWitness"
          },
          "loop_id": {
            "pattern": "^media-loop-[a-f0-9]{40}$",
            "title": "Loop Id",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_role": {
            "enum": ["admin", "instructor"],
            "title": "Owner Role",
            "type": "string"
          },
          "plan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MediaLoopPlan"
              },
              {
                "type": "null"
              }
            ]
          },
          "plan_approved_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plan Approved Sha256"
          },
          "policy": {
            "$ref": "#/components/schemas/MediaLoopPolicyRegistry"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "project": {
            "$ref": "#/components/schemas/MediaLoopProjectRef"
          },
          "proposal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MediaLoopProposal"
              },
              {
                "type": "null"
              }
            ]
          },
          "revised_at": {
            "format": "date-time",
            "title": "Revised At",
            "type": "string"
          },
          "revision": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "state": {
            "enum": [
              "awaiting_plan",
              "plan_review",
              "queued",
              "revision_pending",
              "proposal_ready",
              "stopped",
              "accepted_for_media_review",
              "rejected"
            ],
            "title": "State",
            "type": "string"
          },
          "stop": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MediaLoopStopReceipt"
              },
              {
                "type": "null"
              }
            ]
          },
          "target": {
            "$ref": "#/components/schemas/MediaLoopTargetProfile"
          },
          "usage": {
            "$ref": "#/components/schemas/MediaLoopUsage"
          }
        },
        "required": [
          "loop_id",
          "revision",
          "revision_sha256",
          "state",
          "lesson_witness",
          "project",
          "objective_ids",
          "source_ids",
          "target",
          "accessibility_requirements",
          "budget",
          "usage",
          "policy",
          "owner_id",
          "owner_role",
          "created_at",
          "revised_at"
        ],
        "title": "MediaLoopRevision",
        "type": "object"
      },
      "MediaLoopRevisionPatch": {
        "additionalProperties": false,
        "properties": {
          "based_on_iteration_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Based On Iteration Sha256",
            "type": "string"
          },
          "changes": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Changes",
            "type": "array"
          },
          "finding_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 6000,
            "minItems": 1,
            "title": "Finding Ids",
            "type": "array"
          },
          "revised_by_agent_id": {
            "pattern": "^media-agent-[a-z0-9-]{3,119}$",
            "title": "Revised By Agent Id",
            "type": "string"
          },
          "revision_id": {
            "pattern": "^media-revision-[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "revision_id",
          "based_on_iteration_sha256",
          "finding_ids",
          "changes",
          "revised_by_agent_id",
          "revision_sha256"
        ],
        "title": "MediaLoopRevisionPatch",
        "type": "object"
      },
      "MediaLoopSandboxReceipt": {
        "additionalProperties": false,
        "properties": {
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/MediaLoopArtifact"
            },
            "maxItems": 10000,
            "title": "Artifacts",
            "type": "array"
          },
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "error_code": {
            "anyOf": [
              {
                "pattern": "^[a-z][a-z0-9_]{2,79}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "max_cpu_seconds": {
            "maximum": 3600.0,
            "minimum": 1.0,
            "title": "Max Cpu Seconds",
            "type": "integer"
          },
          "max_memory_mb": {
            "maximum": 32768.0,
            "minimum": 128.0,
            "title": "Max Memory Mb",
            "type": "integer"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "profile": {
            "enum": [
              "vector-isolate-v1",
              "data-render-isolate-v1",
              "document-export-isolate-v1",
              "audio-worker-isolate-v1",
              "video-worker-isolate-v1",
              "manim-worker-isolate-v1"
            ],
            "title": "Profile",
            "type": "string"
          },
          "receipt_id": {
            "pattern": "^media-sandbox-[a-f0-9]{40}$",
            "title": "Receipt Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "enum": ["succeeded", "partial", "failed", "policy_blocked", "timeout"],
            "title": "Status",
            "type": "string"
          },
          "stderr_locator": {
            "maxLength": 2048,
            "pattern": "^(?:/|[a-z][a-z0-9+.-]*://)",
            "title": "Stderr Locator",
            "type": "string"
          },
          "stderr_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stderr Sha256",
            "type": "string"
          },
          "stdout_locator": {
            "maxLength": 2048,
            "pattern": "^(?:/|[a-z][a-z0-9+.-]*://)",
            "title": "Stdout Locator",
            "type": "string"
          },
          "stdout_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stdout Sha256",
            "type": "string"
          },
          "timeout_seconds": {
            "maximum": 3600.0,
            "minimum": 1.0,
            "title": "Timeout Seconds",
            "type": "integer"
          },
          "worker_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Worker Id",
            "type": "string"
          },
          "worker_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Worker Version",
            "type": "string"
          },
          "writable_filesystem": {
            "const": "job_directory_only",
            "default": "job_directory_only",
            "title": "Writable Filesystem",
            "type": "string"
          }
        },
        "required": [
          "receipt_id",
          "profile",
          "max_cpu_seconds",
          "max_memory_mb",
          "timeout_seconds",
          "status",
          "worker_id",
          "worker_version",
          "started_at",
          "completed_at",
          "stdout_locator",
          "stdout_sha256",
          "stderr_locator",
          "stderr_sha256",
          "receipt_sha256"
        ],
        "title": "MediaLoopSandboxReceipt",
        "type": "object"
      },
      "MediaLoopScenePlan": {
        "additionalProperties": false,
        "properties": {
          "accessibility_requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Accessibility Requirements",
            "type": "array"
          },
          "end_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 3600.0,
            "title": "End Seconds",
            "type": "number"
          },
          "learning_purpose": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Learning Purpose",
            "type": "string"
          },
          "narration_outline": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Narration Outline",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "order": {
            "maximum": 999.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "scene_id": {
            "pattern": "^scene-[a-z0-9-]{3,119}$",
            "title": "Scene Id",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "start_seconds": {
            "maximum": 3600.0,
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "visual_intent": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Visual Intent",
            "type": "string"
          }
        },
        "required": [
          "scene_id",
          "order",
          "title",
          "learning_purpose",
          "narration_outline",
          "visual_intent",
          "objective_ids",
          "source_ids",
          "accessibility_requirements",
          "start_seconds",
          "end_seconds"
        ],
        "title": "MediaLoopScenePlan",
        "type": "object"
      },
      "MediaLoopStopReceipt": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "iteration_number": {
            "anyOf": [
              {
                "maximum": 12.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iteration Number"
          },
          "kind": {
            "enum": [
              "budget_exhausted",
              "policy_blocked",
              "renderer_failed",
              "verification_failed",
              "iteration_limit",
              "token_limit",
              "tool_limit",
              "compute_limit",
              "cost_limit",
              "deadline_exceeded",
              "timeout",
              "critic_abstained",
              "partial_output",
              "educator_rejected"
            ],
            "title": "Kind",
            "type": "string"
          },
          "message": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "retry_permitted": {
            "title": "Retry Permitted",
            "type": "boolean"
          },
          "usage": {
            "$ref": "#/components/schemas/MediaLoopUsage"
          }
        },
        "required": ["kind", "message", "usage", "retry_permitted", "receipt_sha256", "created_at"],
        "title": "MediaLoopStopReceipt",
        "type": "object"
      },
      "MediaLoopTargetProfile": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Audience",
            "type": "string"
          },
          "delivery_context": {
            "enum": ["lesson", "presentation", "assessment_review", "offline"],
            "title": "Delivery Context",
            "type": "string"
          },
          "locale": {
            "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "target_duration_seconds": {
            "maximum": 3600.0,
            "minimum": 1.0,
            "title": "Target Duration Seconds",
            "type": "integer"
          },
          "viewport_height": {
            "maximum": 4320.0,
            "minimum": 240.0,
            "title": "Viewport Height",
            "type": "integer"
          },
          "viewport_width": {
            "maximum": 7680.0,
            "minimum": 320.0,
            "title": "Viewport Width",
            "type": "integer"
          }
        },
        "required": [
          "audience",
          "delivery_context",
          "locale",
          "viewport_width",
          "viewport_height",
          "target_duration_seconds"
        ],
        "title": "MediaLoopTargetProfile",
        "type": "object"
      },
      "MediaLoopToolRef": {
        "additionalProperties": false,
        "properties": {
          "allowlisted": {
            "const": true,
            "default": true,
            "title": "Allowlisted",
            "type": "boolean"
          },
          "capability": {
            "enum": [
              "lesson_plan",
              "typed_generation",
              "sandbox_render",
              "frame_inspection",
              "source_verification",
              "accessibility_verification"
            ],
            "title": "Capability",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "dependency_lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dependency Lock Sha256",
            "type": "string"
          },
          "tool_id": {
            "pattern": "^media-loop-tool-[a-z0-9-]{3,119}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "capability", "dependency_lock_sha256", "config_sha256"],
        "title": "MediaLoopToolRef",
        "type": "object"
      },
      "MediaLoopUsage": {
        "additionalProperties": false,
        "properties": {
          "compute_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Compute Seconds",
            "type": "integer"
          },
          "cost_minor_units": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "iterations": {
            "maximum": 12.0,
            "minimum": 0.0,
            "title": "Iterations",
            "type": "integer"
          },
          "tokens": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Tokens",
            "type": "integer"
          },
          "tool_calls": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Tool Calls",
            "type": "integer"
          },
          "wall_seconds": {
            "maximum": 86400.0,
            "minimum": 0.0,
            "title": "Wall Seconds",
            "type": "integer"
          }
        },
        "required": [
          "iterations",
          "tokens",
          "tool_calls",
          "compute_seconds",
          "cost_minor_units",
          "wall_seconds"
        ],
        "title": "MediaLoopUsage",
        "type": "object"
      },
      "MediaProjectDetailView": {
        "additionalProperties": false,
        "description": "One project, its segments, and everything it still owes.",
        "properties": {
          "consent_refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Consent Refusals",
            "type": "array"
          },
          "cost": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Cost",
            "type": "object"
          },
          "gate_states": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Gate States",
            "type": "array"
          },
          "objective_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Objective Ids",
            "type": "array"
          },
          "optional_tracks": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Optional Tracks",
            "type": "array"
          },
          "orphaned_output": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Orphaned Output",
            "type": "array"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "package_revision": {
            "title": "Package Revision",
            "type": "string"
          },
          "primary_locale": {
            "title": "Primary Locale",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "pronunciation_conflicts": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Pronunciation Conflicts",
            "type": "array"
          },
          "pronunciations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaPronunciationView"
            },
            "title": "Pronunciations",
            "type": "array"
          },
          "publish_refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Publish Refusals",
            "type": "array"
          },
          "rendition_coverage": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Rendition Coverage",
            "type": "array"
          },
          "rendition_gaps": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Rendition Gaps",
            "type": "array"
          },
          "renditions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaRenditionView"
            },
            "title": "Renditions",
            "type": "array"
          },
          "segments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaSegmentTimelineView"
            },
            "title": "Segments",
            "type": "array"
          },
          "source_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Source Ids",
            "type": "array"
          },
          "status": {
            "enum": [
              "failed",
              "cancelled",
              "blocked",
              "in_progress",
              "not_started",
              "rendered",
              "accepted"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "track_gaps": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Track Gaps",
            "type": "array"
          },
          "tracks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaTrackView"
            },
            "title": "Tracks",
            "type": "array"
          },
          "withdrawn_sources": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Withdrawn Sources",
            "type": "array"
          }
        },
        "required": [
          "project_id",
          "title",
          "owner",
          "package_id",
          "package_revision",
          "primary_locale",
          "status"
        ],
        "title": "MediaProjectDetailView",
        "type": "object"
      },
      "MediaProjectSummaryView": {
        "additionalProperties": false,
        "description": "One row of the project list.",
        "properties": {
          "cost_cents": {
            "title": "Cost Cents",
            "type": "integer"
          },
          "missing_gates": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Missing Gates",
            "type": "array"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "package_revision": {
            "title": "Package Revision",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "refusal_count": {
            "default": 0,
            "title": "Refusal Count",
            "type": "integer"
          },
          "segment_count": {
            "title": "Segment Count",
            "type": "integer"
          },
          "status": {
            "enum": [
              "failed",
              "cancelled",
              "blocked",
              "in_progress",
              "not_started",
              "rendered",
              "accepted"
            ],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "undecided_findings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Undecided Findings",
            "type": "array"
          }
        },
        "required": [
          "project_id",
          "title",
          "owner",
          "package_revision",
          "status",
          "segment_count",
          "cost_cents"
        ],
        "title": "MediaProjectSummaryView",
        "type": "object"
      },
      "MediaPronunciationView": {
        "additionalProperties": false,
        "description": "How one presenter says one term.",
        "properties": {
          "phonetic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phonetic"
          },
          "presenter_id": {
            "title": "Presenter Id",
            "type": "string"
          },
          "spoken_as": {
            "title": "Spoken As",
            "type": "string"
          },
          "term": {
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["presenter_id", "term", "spoken_as"],
        "title": "MediaPronunciationView",
        "type": "object"
      },
      "MediaReadinessEligibility": {
        "additionalProperties": false,
        "description": "Metis-owned eligibility translation; raw Isis measurements never enter this model.",
        "properties": {
          "accessibility_needs": {
            "items": {
              "enum": [
                "alternative-text",
                "long-description",
                "transcript",
                "captions",
                "audio-description",
                "sign-language",
                "text-description",
                "synchronization"
              ],
              "type": "string"
            },
            "title": "Accessibility Needs",
            "type": "array"
          },
          "asset_revision_id": {
            "title": "Asset Revision Id",
            "type": "string"
          },
          "content_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Sha256"
          },
          "contract_version": {
            "const": "5.8.0",
            "default": "5.8.0",
            "title": "Contract Version",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/MediaGateEligibilityWitness"
            },
            "title": "Gates",
            "type": "array"
          },
          "isis_authority_revision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isis Authority Revision"
          },
          "isis_snapshot_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isis Snapshot Sha256"
          },
          "live_isis_authority_verified": {
            "title": "Live Isis Authority Verified",
            "type": "boolean"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "measurement_set_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measurement Set Id"
          },
          "measurement_set_revision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measurement Set Revision"
          },
          "media_kind": {
            "enum": ["image", "audio", "video"],
            "title": "Media Kind",
            "type": "string"
          },
          "policy_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy Id"
          },
          "policy_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy Version"
          },
          "profile_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Profile Id"
          },
          "profile_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Profile Version"
          },
          "publication_allowed": {
            "title": "Publication Allowed",
            "type": "boolean"
          },
          "raw_isis_evidence_copied": {
            "const": false,
            "default": false,
            "title": "Raw Isis Evidence Copied",
            "type": "boolean"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "rendition_id": {
            "title": "Rendition Id",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision": {
            "title": "Subject Revision",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          },
          "subject_scope": {
            "enum": ["lesson", "item", "assessment_build"],
            "title": "Subject Scope",
            "type": "string"
          },
          "target": {
            "enum": ["learner-web", "learner-mobile", "lms", "print"],
            "title": "Target",
            "type": "string"
          },
          "technical_evaluator_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Technical Evaluator Id"
          },
          "technical_evaluator_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Technical Evaluator Version"
          },
          "verdict": {
            "enum": ["eligible", "blocked", "unavailable", "not_configured", "partial"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": [
          "subject_scope",
          "subject_id",
          "subject_revision",
          "subject_revision_sha256",
          "verdict",
          "publication_allowed",
          "reason_codes",
          "media_kind",
          "target",
          "locale",
          "accessibility_needs",
          "asset_revision_id",
          "rendition_id",
          "content_sha256",
          "profile_id",
          "profile_version",
          "policy_id",
          "policy_version",
          "measurement_set_id",
          "measurement_set_revision",
          "technical_evaluator_id",
          "technical_evaluator_version",
          "gates",
          "isis_authority_revision",
          "isis_snapshot_sha256",
          "live_isis_authority_verified",
          "evaluated_at"
        ],
        "title": "MediaReadinessEligibility",
        "type": "object"
      },
      "MediaReadinessEvaluationRequest": {
        "additionalProperties": false,
        "description": "Exact Metis subject and Isis selection to evaluate without persisting raw evidence.",
        "properties": {
          "accessibility_needs": {
            "items": {
              "enum": [
                "alternative-text",
                "long-description",
                "transcript",
                "captions",
                "audio-description",
                "sign-language",
                "text-description",
                "synchronization"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Accessibility Needs",
            "type": "array"
          },
          "contract_version": {
            "const": "5.8.0",
            "default": "5.8.0",
            "title": "Contract Version",
            "type": "string"
          },
          "expected_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Expected Locale",
            "type": "string"
          },
          "expected_media_kind": {
            "enum": ["image", "audio", "video"],
            "title": "Expected Media Kind",
            "type": "string"
          },
          "expected_target": {
            "enum": ["learner-web", "learner-mobile", "lms", "print"],
            "title": "Expected Target",
            "type": "string"
          },
          "selection": {
            "$ref": "#/components/schemas/LessonGallerySelection"
          },
          "subject_id": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Subject Revision",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          },
          "subject_scope": {
            "enum": ["lesson", "item", "assessment_build"],
            "title": "Subject Scope",
            "type": "string"
          }
        },
        "required": [
          "subject_scope",
          "subject_id",
          "subject_revision",
          "subject_revision_sha256",
          "expected_media_kind",
          "expected_target",
          "expected_locale",
          "accessibility_needs",
          "selection"
        ],
        "title": "MediaReadinessEvaluationRequest",
        "type": "object"
      },
      "MediaReadinessEvaluationResponse": {
        "additionalProperties": false,
        "description": "Ephemeral authority snapshot plus the separate Metis eligibility translation.",
        "properties": {
          "authority_snapshot": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LessonGalleryMediaReadiness"
              },
              {
                "type": "null"
              }
            ]
          },
          "eligibility": {
            "$ref": "#/components/schemas/MediaReadinessEligibility"
          }
        },
        "required": ["authority_snapshot", "eligibility"],
        "title": "MediaReadinessEvaluationResponse",
        "type": "object"
      },
      "MediaReference": {
        "additionalProperties": false,
        "description": "A media item the turn refers to, and whether a text alternative exists.",
        "properties": {
          "media_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Media Id",
            "type": "string"
          },
          "text_alternative": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Alternative"
          }
        },
        "required": ["media_id"],
        "title": "MediaReference",
        "type": "object"
      },
      "MediaRenditionView": {
        "additionalProperties": false,
        "description": "One rendition and the tracks it actually carries.",
        "properties": {
          "bandwidth": {
            "title": "Bandwidth",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "device": {
            "title": "Device",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "mime_type": {
            "title": "Mime Type",
            "type": "string"
          },
          "offline": {
            "title": "Offline",
            "type": "boolean"
          },
          "rendition_id": {
            "title": "Rendition Id",
            "type": "string"
          },
          "track_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Track Ids",
            "type": "array"
          }
        },
        "required": [
          "rendition_id",
          "kind",
          "locale",
          "device",
          "bandwidth",
          "offline",
          "mime_type",
          "content_sha256"
        ],
        "title": "MediaRenditionView",
        "type": "object"
      },
      "MediaReplacementPlanView": {
        "additionalProperties": false,
        "description": "What replacing part of a cut would actually cost.",
        "properties": {
          "added_segment_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Added Segment Ids",
            "type": "array"
          },
          "baseline_known": {
            "title": "Baseline Known",
            "type": "boolean"
          },
          "baseline_revision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baseline Revision"
          },
          "invalidated": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaInvalidationView"
            },
            "title": "Invalidated",
            "type": "array"
          },
          "removed_segment_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Removed Segment Ids",
            "type": "array"
          },
          "replaced_segment_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Replaced Segment Ids",
            "type": "array"
          },
          "surviving_approval_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Surviving Approval Ids",
            "type": "array"
          },
          "surviving_gate_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Surviving Gate Ids",
            "type": "array"
          },
          "unchanged_segment_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unchanged Segment Ids",
            "type": "array"
          }
        },
        "required": ["baseline_known"],
        "title": "MediaReplacementPlanView",
        "type": "object"
      },
      "MediaReplacementRequest": {
        "additionalProperties": false,
        "description": "What a replacement would look like, and what to compare it with.\n\n`before_revision` may be omitted. The engine does not then fall back to\n\"probably the latest\": the saving a surgical replacement claims comes\nentirely from the parts nobody touched, and with no baseline there is\nnothing to show they were not touched.",
        "properties": {
          "after": {
            "$ref": "#/components/schemas/MediaCutManifest"
          },
          "before_revision": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Before Revision"
          }
        },
        "required": ["after"],
        "title": "MediaReplacementRequest",
        "type": "object"
      },
      "MediaReplacementView": {
        "additionalProperties": false,
        "description": "The plan, what refuses it outright, and the cut-to-cut comparison.",
        "properties": {
          "comparison": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Comparison",
            "type": "array"
          },
          "plan": {
            "$ref": "#/components/schemas/MediaReplacementPlanView"
          },
          "refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          }
        },
        "required": ["plan"],
        "title": "MediaReplacementView",
        "type": "object"
      },
      "MediaSegmentBinding": {
        "additionalProperties": false,
        "description": "Which media project renders one lecture segment.\n\nThe join is declared rather than inferred. A workspace that guessed which\nrender belonged to which segment would attribute a critic finding to the\nwrong thirty seconds, and the person reading it would fix the wrong shot.",
        "properties": {
          "media_project_id": {
            "pattern": "^media-project-[a-f0-9]{40}$",
            "title": "Media Project Id",
            "type": "string"
          },
          "segment_id": {
            "pattern": "^lecture-segment-[a-z0-9-]{3,119}$",
            "title": "Segment Id",
            "type": "string"
          }
        },
        "required": ["segment_id", "media_project_id"],
        "title": "MediaSegmentBinding",
        "type": "object"
      },
      "MediaSegmentTimelineView": {
        "additionalProperties": false,
        "description": "One segment: what has run, what it says, and what a person may do.",
        "properties": {
          "actions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Actions",
            "type": "array"
          },
          "consent_live": {
            "default": true,
            "title": "Consent Live",
            "type": "boolean"
          },
          "cost_cents": {
            "default": 0,
            "title": "Cost Cents",
            "type": "integer"
          },
          "critique": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "Critique",
            "type": "object"
          },
          "dropped_attempts": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Dropped Attempts",
            "type": "array"
          },
          "end_seconds": {
            "default": 0.0,
            "title": "End Seconds",
            "type": "number"
          },
          "findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaFindingView"
            },
            "title": "Findings",
            "type": "array"
          },
          "media_project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Media Project Id"
          },
          "next_step": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Step"
          },
          "orphaned_output": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Orphaned Output",
            "type": "array"
          },
          "presenter_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Presenter Id"
          },
          "preview_locator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preview Locator"
          },
          "preview_media_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preview Media Type"
          },
          "render_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Render Sha256"
          },
          "segment_id": {
            "title": "Segment Id",
            "type": "string"
          },
          "stale_decisions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Stale Decisions",
            "type": "array"
          },
          "start_seconds": {
            "default": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "status": {
            "enum": [
              "failed",
              "cancelled",
              "blocked",
              "in_progress",
              "not_started",
              "rendered",
              "accepted"
            ],
            "title": "Status",
            "type": "string"
          },
          "steps": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaStepView"
            },
            "title": "Steps",
            "type": "array"
          },
          "superseded_findings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Superseded Findings",
            "type": "array"
          },
          "tickets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaActionTicket"
            },
            "title": "Tickets",
            "type": "array"
          },
          "undecided": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Undecided",
            "type": "array"
          },
          "withdrawn_sources": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Withdrawn Sources",
            "type": "array"
          }
        },
        "required": ["segment_id", "status"],
        "title": "MediaSegmentTimelineView",
        "type": "object"
      },
      "MediaStepView": {
        "additionalProperties": false,
        "description": "One step of one segment's production, as a timeline shows it.",
        "properties": {
          "attempt": {
            "title": "Attempt",
            "type": "integer"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "cost_cents": {
            "default": 0,
            "title": "Cost Cents",
            "type": "integer"
          },
          "failure": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Failure"
          },
          "log_locator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Log Locator"
          },
          "output_digests": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "title": "Output Digests",
            "type": "array"
          },
          "progress_percent": {
            "title": "Progress Percent",
            "type": "integer"
          },
          "retryable": {
            "default": false,
            "title": "Retryable",
            "type": "boolean"
          },
          "stage_id": {
            "title": "Stage Id",
            "type": "string"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "step": {
            "title": "Step",
            "type": "string"
          }
        },
        "required": ["stage_id", "step", "state", "attempt", "progress_percent"],
        "title": "MediaStepView",
        "type": "object"
      },
      "MediaTrackView": {
        "additionalProperties": false,
        "description": "One accessibility track, and whether it still describes this cut.",
        "properties": {
          "anchor_current": {
            "default": true,
            "title": "Anchor Current",
            "type": "boolean"
          },
          "covered_segment_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Covered Segment Ids",
            "type": "array"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "required": {
            "default": false,
            "title": "Required",
            "type": "boolean"
          },
          "review_status": {
            "title": "Review Status",
            "type": "string"
          },
          "reviewer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Id"
          },
          "track_id": {
            "title": "Track Id",
            "type": "string"
          }
        },
        "required": ["track_id", "kind", "locale", "review_status"],
        "title": "MediaTrackView",
        "type": "object"
      },
      "MediaWorkspaceAggregate": {
        "additionalProperties": false,
        "description": "Everything one lecture-production workspace reads.\n\nIt is one object because every question the workspace answers is a join:\na segment's status needs its media project, a finding's currency needs the\nrender that project produced, a track's staleness needs the cut, and a\nreplacement needs the cuts that came before.",
        "properties": {
          "baselines": {
            "items": {
              "$ref": "#/components/schemas/MediaCutManifest"
            },
            "maxItems": 1000,
            "title": "Baselines",
            "type": "array"
          },
          "bindings": {
            "items": {
              "$ref": "#/components/schemas/MediaSegmentBinding"
            },
            "maxItems": 10000,
            "title": "Bindings",
            "type": "array"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/MediaFindingDecision"
            },
            "maxItems": 100000,
            "title": "Decisions",
            "type": "array"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/MediaCriticFinding"
            },
            "maxItems": 100000,
            "title": "Findings",
            "type": "array"
          },
          "gates": {
            "items": {
              "$ref": "#/components/schemas/MediaGateScope"
            },
            "maxItems": 10000,
            "title": "Gates",
            "type": "array"
          },
          "media": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaProjectRevision"
            },
            "maxItems": 10000,
            "title": "Media",
            "type": "array"
          },
          "package": {
            "$ref": "#/components/schemas/LecturePackageRevision"
          },
          "project_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Project Id",
            "type": "string"
          },
          "schema_version": {
            "const": "9.17.0",
            "default": "9.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "withdrawn_source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Withdrawn Source Ids",
            "type": "array"
          }
        },
        "required": ["project_id", "package"],
        "title": "MediaWorkspaceAggregate",
        "type": "object"
      },
      "MemoryAcceptRequest": {
        "properties": {
          "entry_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Entry Id",
            "type": "string"
          },
          "source_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Digest",
            "type": "string"
          },
          "target_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Target Text",
            "type": "string"
          }
        },
        "required": ["entry_id", "target_text", "source_digest"],
        "title": "MemoryAcceptRequest",
        "type": "object"
      },
      "MergeFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "overlay.merge.loosens-a-broader-scope",
              "overlay.floor.weakens-a-protected-floor",
              "overlay.floor.protected-family-has-no-platform-floor",
              "overlay.merge.no-applicable-overlay"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "dimension": {
            "anyOf": [
              {
                "enum": [
                  "safety.required_safety_gates",
                  "safety.max_autonomous_advance_steps",
                  "privacy.max_learner_signal_retention_days",
                  "privacy.allowed_signal_kinds",
                  "accessibility.required_learner_supports",
                  "accessibility.allowed_delivery_modes",
                  "integrity.required_integrity_checks",
                  "exposure.max_item_exposure_rate_basis_points",
                  "rights.allowed_licence_classes",
                  "prerequisite.min_prerequisite_mastery_basis_points",
                  "assessment.max_attempts_per_item",
                  "human_authority.require_human_review_before_activation",
                  "mastery.min_mastery_to_advance_basis_points",
                  "mastery.required_mastery_evidence_kinds",
                  "pacing.max_items_per_session",
                  "pacing.min_spacing_days_between_repeats",
                  "difficulty.max_difficulty_centilogits",
                  "difficulty.allowed_difficulty_bands"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dimension"
          },
          "family": {
            "anyOf": [
              {
                "enum": [
                  "safety",
                  "privacy",
                  "accessibility",
                  "integrity",
                  "exposure",
                  "rights",
                  "prerequisite",
                  "assessment",
                  "human_authority",
                  "mastery",
                  "pacing",
                  "difficulty"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Family"
          },
          "overlay_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overlay Id"
          },
          "severity": {
            "enum": ["floor", "scope", "coverage"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "severity", "dimension", "family", "overlay_id", "detail"],
        "title": "MergeFinding",
        "type": "object"
      },
      "MetisIncidentResponse": {
        "properties": {
          "category": {
            "enum": [
              "tutoring_latency",
              "grounding_failure",
              "build_failure",
              "export_failure",
              "model_cost_anomaly",
              "teacher_representation",
              "learner_complaint",
              "moderation",
              "source_rights",
              "learner_investigation"
            ],
            "title": "Category",
            "type": "string"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "detected_at": {
            "format": "date-time",
            "title": "Detected At",
            "type": "string"
          },
          "escalation_routes": {
            "items": {
              "$ref": "#/components/schemas/IncidentEscalationRouteResponse"
            },
            "title": "Escalation Routes",
            "type": "array"
          },
          "facts": {
            "items": {
              "$ref": "#/components/schemas/AdminAuditFactResponse"
            },
            "title": "Facts",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "learner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Learner Id"
          },
          "learner_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Learner Name"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "runbook_steps": {
            "items": {
              "$ref": "#/components/schemas/IncidentRunbookStepResponse"
            },
            "title": "Runbook Steps",
            "type": "array"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "source_href": {
            "title": "Source Href",
            "type": "string"
          },
          "source_workspace": {
            "title": "Source Workspace",
            "type": "string"
          },
          "status": {
            "enum": ["open", "watch", "escalated"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "category",
          "status",
          "severity",
          "title",
          "summary",
          "owner",
          "source_workspace",
          "source_href",
          "detected_at"
        ],
        "title": "MetisIncidentResponse",
        "type": "object"
      },
      "MetisIncidentWorkspaceResponse": {
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/MetisIncidentResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/MetisIncidentWorkspaceSummaryResponse"
          }
        },
        "required": ["summary", "generated_at"],
        "title": "MetisIncidentWorkspaceResponse",
        "type": "object"
      },
      "MetisIncidentWorkspaceSummaryResponse": {
        "properties": {
          "critical": {
            "minimum": 0.0,
            "title": "Critical",
            "type": "integer"
          },
          "escalated": {
            "minimum": 0.0,
            "title": "Escalated",
            "type": "integer"
          },
          "high": {
            "minimum": 0.0,
            "title": "High",
            "type": "integer"
          },
          "learner_visible": {
            "minimum": 0.0,
            "title": "Learner Visible",
            "type": "integer"
          },
          "rights_or_grounding": {
            "minimum": 0.0,
            "title": "Rights Or Grounding",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "critical",
          "high",
          "escalated",
          "learner_visible",
          "rights_or_grounding"
        ],
        "title": "MetisIncidentWorkspaceSummaryResponse",
        "type": "object"
      },
      "MetricAnalysis": {
        "additionalProperties": false,
        "description": "One metric's result, and whether the plan registered it.\n\nA metric the pre-registration did not register is ``exploratory``. The\ncontract will not let it be labelled confirmatory, so a finding chosen after\nseeing the data cannot be presented as one the experiment set out to test.",
        "properties": {
          "alpha_used_basis_points": {
            "anyOf": [
              {
                "maximum": 5000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alpha Used Basis Points"
          },
          "control_rate_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Control Rate Basis Points"
          },
          "detail": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Detail",
            "type": "string"
          },
          "difference_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Difference Basis Points"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "role": {
            "anyOf": [
              {
                "enum": ["primary", "secondary", "guardrail"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          },
          "standing": {
            "enum": ["confirmatory", "exploratory"],
            "title": "Standing",
            "type": "string"
          },
          "treatment_rate_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Treatment Rate Basis Points"
          },
          "verdict": {
            "enum": ["significant", "not_significant", "underpowered", "not_analysed"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["metric_id", "standing", "role", "verdict", "detail"],
        "title": "MetricAnalysis",
        "type": "object"
      },
      "MetricCatalog": {
        "additionalProperties": false,
        "description": "The catalog, and a statement that it covers every family it declares.",
        "properties": {
          "catalog_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Catalog Id",
            "type": "string"
          },
          "catalog_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Revision Sha256",
            "type": "string"
          },
          "covers_every_family": {
            "title": "Covers Every Family",
            "type": "boolean"
          },
          "families_covered": {
            "items": {
              "enum": [
                "completion",
                "progression",
                "drop_off",
                "item_performance",
                "objective_mastery",
                "misconception",
                "fairness",
                "accessibility"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Families Covered",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/MetricDefinition"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "catalog_id",
          "catalog_revision_sha256",
          "metrics",
          "families_covered",
          "covers_every_family"
        ],
        "title": "MetricCatalog",
        "type": "object"
      },
      "MetricComparison": {
        "additionalProperties": false,
        "description": "Two measurements set beside each other, and whether that is fair.",
        "properties": {
          "difference": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Difference"
          },
          "left": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "left_label": {
            "maxLength": 600,
            "minLength": 10,
            "title": "Left Label",
            "type": "string"
          },
          "left_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Left Revision Sha256",
            "type": "string"
          },
          "like_for_like": {
            "title": "Like For Like",
            "type": "boolean"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "right": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "right_label": {
            "maxLength": 600,
            "minLength": 10,
            "title": "Right Label",
            "type": "string"
          },
          "right_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Right Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "metric_id",
          "left_label",
          "right_label",
          "left",
          "right",
          "left_revision_sha256",
          "right_revision_sha256",
          "like_for_like"
        ],
        "title": "MetricComparison",
        "type": "object"
      },
      "MetricDefinition": {
        "additionalProperties": false,
        "description": "One catalog entry. Everything a reader needs to know what the number is.",
        "properties": {
          "denominator": {
            "anyOf": [
              {
                "maxLength": 600,
                "minLength": 10,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Denominator"
          },
          "family": {
            "enum": [
              "completion",
              "progression",
              "drop_off",
              "item_performance",
              "objective_mastery",
              "misconception",
              "fairness",
              "accessibility"
            ],
            "title": "Family",
            "type": "string"
          },
          "known_limitations": {
            "items": {
              "maxLength": 600,
              "minLength": 10,
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Known Limitations",
            "type": "array"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "missingness_policy": {
            "enum": ["exclude", "report_separately", "treat_as_zero"],
            "title": "Missingness Policy",
            "type": "string"
          },
          "owner": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "population": {
            "maxLength": 600,
            "minLength": 10,
            "title": "Population",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "unit": {
            "enum": ["count", "rate", "proportion", "duration_seconds", "score"],
            "title": "Unit",
            "type": "string"
          },
          "valid_descriptive_use": {
            "maxLength": 600,
            "minLength": 10,
            "title": "Valid Descriptive Use",
            "type": "string"
          },
          "window": {
            "$ref": "#/components/schemas/AnalyticsWindow"
          }
        },
        "required": [
          "metric_id",
          "family",
          "unit",
          "population",
          "denominator",
          "window",
          "source_id",
          "source_revision_sha256",
          "missingness_policy",
          "owner",
          "valid_descriptive_use",
          "known_limitations"
        ],
        "title": "MetricDefinition",
        "type": "object"
      },
      "MetricEstimate": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "f1": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "F1"
          },
          "false_negative": {
            "minimum": 0.0,
            "title": "False Negative",
            "type": "integer"
          },
          "false_positive": {
            "minimum": 0.0,
            "title": "False Positive",
            "type": "integer"
          },
          "precision": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Precision"
          },
          "precision_lower": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Precision Lower"
          },
          "precision_upper": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Precision Upper"
          },
          "recall": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recall"
          },
          "recall_lower": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recall Lower"
          },
          "recall_upper": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recall Upper"
          },
          "true_positive": {
            "minimum": 0.0,
            "title": "True Positive",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          }
        },
        "required": ["true_positive", "false_positive", "false_negative"],
        "title": "MetricEstimate",
        "type": "object"
      },
      "MetricObservation": {
        "additionalProperties": false,
        "description": "What a metric did, as rates over the arms that were actually assigned.\n\nCounts are derived by the service from the allocation, not supplied. A\nrequest that named its own totals could describe a population this\nexperiment never assigned \u2014 1,000 observations against a 10% ramp that\nreached 106 subjects \u2014 and the analysis would then be about some other run.\n``observed_coverage_basis_points`` is what produces attrition: at 8,000 the\nmetric saw four fifths of each arm, and the fifth that is missing is counted.",
        "properties": {
          "control_success_rate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Control Success Rate Basis Points",
            "type": "integer"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "observed_coverage_basis_points": {
            "default": 10000,
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Observed Coverage Basis Points",
            "type": "integer"
          },
          "treatment_success_rate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Treatment Success Rate Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "metric_id",
          "control_success_rate_basis_points",
          "treatment_success_rate_basis_points"
        ],
        "title": "MetricObservation",
        "type": "object"
      },
      "MetricTrend": {
        "additionalProperties": false,
        "properties": {
          "causal_limit": {
            "maxLength": 600,
            "minLength": 10,
            "title": "Causal Limit",
            "type": "string"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "points": {
            "items": {
              "$ref": "#/components/schemas/TrendPoint"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Points",
            "type": "array"
          },
          "single_revision": {
            "title": "Single Revision",
            "type": "boolean"
          }
        },
        "required": ["metric_id", "points", "single_revision", "causal_limit"],
        "title": "MetricTrend",
        "type": "object"
      },
      "MigrateRequest": {
        "additionalProperties": false,
        "properties": {
          "delta": {
            "$ref": "#/components/schemas/RevisionDelta"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["subject_id", "delta"],
        "title": "MigrateRequest",
        "type": "object"
      },
      "MigrationPlan": {
        "additionalProperties": false,
        "description": "Every phase for one aggregate, in the one order that is safe.",
        "properties": {
          "aggregate": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Aggregate",
            "type": "string"
          },
          "module": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Module",
            "type": "string"
          },
          "phases": {
            "items": {
              "$ref": "#/components/schemas/PhasePlan"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Phases",
            "type": "array"
          },
          "ready_to_apply": {
            "title": "Ready To Apply",
            "type": "boolean"
          },
          "schema_version": {
            "const": "8.1.2",
            "default": "8.1.2",
            "title": "Schema Version",
            "type": "string"
          },
          "source_root": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Root"
          },
          "table_name": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Table Name",
            "type": "string"
          }
        },
        "required": ["table_name", "module", "aggregate", "phases", "ready_to_apply"],
        "title": "MigrationPlan",
        "type": "object"
      },
      "MigrationPlanReport": {
        "additionalProperties": false,
        "properties": {
          "awaiting_ratification": {
            "minimum": 0.0,
            "title": "Awaiting Ratification",
            "type": "integer"
          },
          "by_phase_statement_count": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Phase Statement Count",
            "type": "object"
          },
          "frozen_matches_design": {
            "title": "Frozen Matches Design",
            "type": "boolean"
          },
          "frozen_revision": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Frozen Revision",
            "type": "string"
          },
          "plans": {
            "items": {
              "$ref": "#/components/schemas/MigrationPlan"
            },
            "maxItems": 600,
            "minItems": 1,
            "title": "Plans",
            "type": "array"
          },
          "ready_to_apply": {
            "minimum": 0.0,
            "title": "Ready To Apply",
            "type": "integer"
          },
          "schema_version": {
            "const": "8.1.2",
            "default": "8.1.2",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "plans",
          "ready_to_apply",
          "awaiting_ratification",
          "by_phase_statement_count",
          "frozen_revision",
          "frozen_matches_design"
        ],
        "title": "MigrationPlanReport",
        "type": "object"
      },
      "MigrationRecord": {
        "additionalProperties": false,
        "properties": {
          "changed_materials": {
            "minimum": 0.0,
            "title": "Changed Materials",
            "type": "integer"
          },
          "differences": {
            "items": {
              "$ref": "#/components/schemas/RevisionDifference"
            },
            "maxItems": 400,
            "title": "Differences",
            "type": "array"
          },
          "from_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "From Revision Sha256",
            "type": "string"
          },
          "historical_sessions_rewritten": {
            "const": 0,
            "default": 0,
            "title": "Historical Sessions Rewritten",
            "type": "integer"
          },
          "sessions_still_on_the_old_revision": {
            "minimum": 0.0,
            "title": "Sessions Still On The Old Revision",
            "type": "integer"
          },
          "to_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "from_revision_sha256",
          "to_revision_sha256",
          "differences",
          "changed_materials",
          "sessions_still_on_the_old_revision"
        ],
        "title": "MigrationRecord",
        "type": "object"
      },
      "MigrationsResponse": {
        "additionalProperties": false,
        "properties": {
          "migrations": {
            "items": {
              "$ref": "#/components/schemas/ThreadMigration"
            },
            "title": "Migrations",
            "type": "array"
          }
        },
        "required": ["migrations"],
        "title": "MigrationsResponse",
        "type": "object"
      },
      "MinimisationCell": {
        "additionalProperties": false,
        "properties": {
          "protected_class": {
            "enum": [
              "answer_text",
              "learner_identity",
              "grade",
              "integrity_flag",
              "biometric_voice",
              "source_identity",
              "tenant_identity",
              "free_text_pii"
            ],
            "title": "Protected Class",
            "type": "string"
          },
          "source_kind": {
            "enum": [
              "educator_decision",
              "cohort_outcome",
              "verifier_disagreement",
              "media_critique"
            ],
            "title": "Source Kind",
            "type": "string"
          },
          "treatment": {
            "enum": ["absent_by_construction", "aggregated", "redacted", "withheld_from_release"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["protected_class", "source_kind", "treatment"],
        "title": "MinimisationCell",
        "type": "object"
      },
      "MinimisationProbe": {
        "additionalProperties": false,
        "properties": {
          "field_class": {
            "enum": [
              "learner_identity",
              "answer_content",
              "integrity_detail",
              "source_text",
              "reviewer_identity",
              "private_note"
            ],
            "title": "Field Class",
            "type": "string"
          },
          "purpose": {
            "enum": [
              "institutional_audit",
              "accreditation_review",
              "regulatory_request",
              "learner_subject_access",
              "internal_quality_review"
            ],
            "title": "Purpose",
            "type": "string"
          },
          "raw_value_present_in_bytes": {
            "title": "Raw Value Present In Bytes",
            "type": "boolean"
          },
          "treatment": {
            "enum": ["kept", "pseudonymised", "redacted", "omitted"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["purpose", "field_class", "treatment", "raw_value_present_in_bytes"],
        "title": "MinimisationProbe",
        "type": "object"
      },
      "MisconceptionAggregate": {
        "additionalProperties": false,
        "description": "Evidence that a misconception is present in a cohort \u2014 never in a person.\n\nThere is deliberately no learner field on this model. Aggregate misconception\nevidence is a signal about the material, and ``individual_diagnosis`` is a\n``Literal[False]`` so the shape cannot be repurposed into a diagnosis.",
        "properties": {
          "distinct_items": {
            "minimum": 1.0,
            "title": "Distinct Items",
            "type": "integer"
          },
          "individual_diagnosis": {
            "const": false,
            "default": false,
            "title": "Individual Diagnosis",
            "type": "boolean"
          },
          "misconception_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Misconception Id",
            "type": "string"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          },
          "supporting_responses": {
            "$ref": "#/components/schemas/MeasuredValue"
          }
        },
        "required": ["misconception_id", "objective_id", "supporting_responses", "distinct_items"],
        "title": "MisconceptionAggregate",
        "type": "object"
      },
      "MisconceptionCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "current": {
            "items": {
              "$ref": "#/components/schemas/MisconceptionConceptRevisionResponse"
            },
            "title": "Current",
            "type": "array"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/MisconceptionConceptRevisionResponse"
            },
            "title": "History",
            "type": "array"
          },
          "schema_version": {
            "const": "4.11.0",
            "default": "4.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "catalog_sha256", "current", "history"],
        "title": "MisconceptionCatalogResponse",
        "type": "object"
      },
      "MisconceptionConceptContent": {
        "additionalProperties": false,
        "properties": {
          "concept_id": {
            "pattern": "^misconception:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Concept Id",
            "type": "string"
          },
          "correction_guidance": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Correction Guidance",
            "type": "string"
          },
          "description": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Description",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/MisconceptionEvidenceSource"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "indicator_terms": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Indicator Terms",
            "type": "array"
          },
          "label": {
            "maxLength": 255,
            "minLength": 3,
            "title": "Label",
            "type": "string"
          },
          "learner_band_id": {
            "pattern": "^learner-band:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Learner Band Id",
            "type": "string"
          },
          "learner_band_label": {
            "maxLength": 255,
            "minLength": 2,
            "title": "Learner Band Label",
            "type": "string"
          },
          "lifecycle": {
            "enum": ["draft", "active", "deprecated", "superseded"],
            "title": "Lifecycle",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "supersedes_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Revision Sha256"
          }
        },
        "required": [
          "concept_id",
          "locale",
          "label",
          "description",
          "correction_guidance",
          "objective_ids",
          "learner_band_id",
          "learner_band_label",
          "indicator_terms",
          "lifecycle",
          "evidence"
        ],
        "title": "MisconceptionConceptContent",
        "type": "object"
      },
      "MisconceptionConceptRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/MisconceptionConceptContent"
          },
          "expected_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision"
          },
          "expected_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "reason", "content"],
        "title": "MisconceptionConceptRevisionRequest",
        "type": "object"
      },
      "MisconceptionConceptRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/MisconceptionConceptContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.11.0",
            "default": "4.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "MisconceptionConceptRevisionResponse",
        "type": "object"
      },
      "MisconceptionEvidenceSource": {
        "additionalProperties": false,
        "properties": {
          "assertion": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Assertion",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^misconception-evidence:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_kind": {
            "enum": ["curriculum", "research", "expert", "author"],
            "title": "Source Kind",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Source Version",
            "type": "string"
          }
        },
        "required": [
          "evidence_id",
          "source_kind",
          "source_id",
          "source_version",
          "source_sha256",
          "locator",
          "assertion"
        ],
        "title": "MisconceptionEvidenceSource",
        "type": "object"
      },
      "MissingMeasurement": {
        "additionalProperties": false,
        "properties": {
          "observed_samples": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Observed Samples",
            "type": "integer"
          },
          "required_samples": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Required Samples",
            "type": "integer"
          },
          "tier": {
            "enum": ["desktop_broadband", "laptop_wifi", "tablet_4g", "phone_3g"],
            "title": "Tier",
            "type": "string"
          }
        },
        "required": ["tier", "required_samples", "observed_samples"],
        "title": "MissingMeasurement",
        "type": "object"
      },
      "MitigationApproval": {
        "additionalProperties": false,
        "description": "Somebody other than the conflicted reviewer signs the mitigation off.",
        "properties": {
          "approved_at": {
            "format": "date-time",
            "title": "Approved At",
            "type": "string"
          },
          "approver_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Approver Digest",
            "type": "string"
          },
          "approver_role": {
            "enum": ["review_coordinator", "integrity_lead"],
            "title": "Approver Role",
            "type": "string"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["approver_digest", "approver_role", "approved_at", "rationale"],
        "title": "MitigationApproval",
        "type": "object"
      },
      "MitigationPlan": {
        "additionalProperties": false,
        "properties": {
          "approval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MitigationApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "declaration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Declaration Id",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "kinds": {
            "items": {
              "enum": [
                "second_reviewer",
                "scope_narrowed",
                "disclosure_to_panel",
                "blind_review",
                "chair_oversight"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Kinds",
            "type": "array"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          }
        },
        "required": ["plan_id", "declaration_id", "reviewer_digest", "dimension", "kinds"],
        "title": "MitigationPlan",
        "type": "object"
      },
      "MobileDecisionRequest": {
        "description": "A conclusion. The subject is read from the store, not from the body: a\ndecision that carried its own idea of the subject's state could be taken\nagainst a state nobody is in.",
        "properties": {
          "confirmed": {
            "default": false,
            "title": "Confirmed",
            "type": "boolean"
          },
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewDecisionEvidence"
            },
            "title": "Evidence",
            "type": "array"
          },
          "kind": {
            "enum": ["approve", "reject", "request_changes", "abstain"],
            "title": "Kind",
            "type": "string"
          },
          "purpose": {
            "enum": ["content", "accessibility", "integrity", "psychometrics", "learner_support"],
            "title": "Purpose",
            "type": "string"
          },
          "reason": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "revision": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision",
            "type": "string"
          },
          "role": {
            "enum": [
              "author",
              "editor",
              "subject_expert",
              "accessibility_specialist",
              "integrity_officer",
              "learner_support"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["revision", "purpose", "role", "kind", "reason"],
        "title": "MobileDecisionRequest",
        "type": "object"
      },
      "MobileScope": {
        "additionalProperties": false,
        "description": "What the reviewer surface offers, and what it refuses to.",
        "properties": {
          "excluded": {
            "default": [
              "stem_editor",
              "option_editor",
              "rubric_editor",
              "media_editor",
              "variant_builder",
              "generation"
            ],
            "items": {
              "type": "string"
            },
            "title": "Excluded",
            "type": "array"
          },
          "panels": {
            "default": [
              "identity",
              "preview",
              "sources",
              "gates",
              "diffs",
              "comments",
              "decision",
              "escalation"
            ],
            "items": {
              "enum": [
                "identity",
                "preview",
                "sources",
                "gates",
                "diffs",
                "comments",
                "decision",
                "escalation"
              ],
              "type": "string"
            },
            "title": "Panels",
            "type": "array"
          },
          "reason": {
            "default": "a phone is a bad place to rewrite a stem, and a surface that offers it is one somebody will use to do it",
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "title": "MobileScope",
        "type": "object"
      },
      "ModalityCheck": {
        "additionalProperties": false,
        "description": "One path, and whether the interlock is live on it.\n\n``interlock_active`` is not a boolean somebody set: it is paired with the\nmove the path attempted and the mode it attempted it in, so a path claiming\nan active interlock while making a forbidden move is unconstructible.",
        "properties": {
          "attempted_move": {
            "enum": [
              "ask_a_diagnostic_question",
              "offer_a_hint",
              "scaffold_a_step",
              "demonstrate_a_worked_example",
              "give_the_direct_answer",
              "restate_the_objective"
            ],
            "title": "Attempted Move",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "interlock_active": {
            "title": "Interlock Active",
            "type": "boolean"
          },
          "mode": {
            "enum": ["practice", "formative", "assessment", "high_stakes"],
            "title": "Mode",
            "type": "string"
          },
          "move_permitted_here": {
            "title": "Move Permitted Here",
            "type": "boolean"
          },
          "path": {
            "enum": ["text", "voice", "tool", "demonstration", "accessibility", "cached"],
            "title": "Path",
            "type": "string"
          },
          "synthetic_marker_present": {
            "title": "Synthetic Marker Present",
            "type": "boolean"
          }
        },
        "required": [
          "path",
          "mode",
          "attempted_move",
          "move_permitted_here",
          "interlock_active",
          "synthetic_marker_present",
          "detail"
        ],
        "title": "ModalityCheck",
        "type": "object"
      },
      "ModelAdmissionRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "fallback": {
            "const": "not_configured",
            "default": "not_configured",
            "title": "Fallback",
            "type": "string"
          },
          "reason": {
            "enum": [
              "not_admitted",
              "fingerprint_moved",
              "approval_stale",
              "outside_tenant",
              "outside_course",
              "outside_use",
              "outside_data_class",
              "outside_region",
              "scope_expired",
              "credential_overdue",
              "blocking_probe_failed",
              "killed"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "ModelAdmissionRefusal",
        "type": "object"
      },
      "ModelApplicability": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "evidence_age_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Age Days"
          },
          "maximum_evidence_age_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Evidence Age Days"
          },
          "observations_available": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Observations Available",
            "type": "integer"
          },
          "observations_required": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Observations Required",
            "type": "integer"
          },
          "reason_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reason Code",
            "type": "string"
          },
          "state": {
            "enum": ["applicable", "not_applicable", "insufficient_data", "stale"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "reason_code",
          "detail",
          "observations_available",
          "observations_required"
        ],
        "title": "ModelApplicability",
        "type": "object"
      },
      "ModelCandidate": {
        "additionalProperties": false,
        "description": "A model a tenant asks us to use. It arrives quarantined and stays there.",
        "properties": {
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "capabilities": {
            "items": {
              "enum": ["chat", "embedding", "rerank", "vision", "tool_use"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Capabilities",
            "type": "array"
          },
          "cost": {
            "$ref": "#/components/schemas/CostEnvelope"
          },
          "credential": {
            "$ref": "#/components/schemas/CredentialRef"
          },
          "data_use": {
            "enum": ["no_training", "no_retention", "retention_30_days", "provider_default"],
            "title": "Data Use",
            "type": "string"
          },
          "endpoint": {
            "$ref": "#/components/schemas/ProviderEndpoint"
          },
          "licence": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Licence",
            "type": "string"
          },
          "owner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Owner Digest",
            "type": "string"
          },
          "residency": {
            "enum": ["eu", "uk", "us", "unspecified"],
            "title": "Residency",
            "type": "string"
          },
          "schema_version": {
            "const": "7.11.0",
            "default": "7.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "security_review_ref": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Security Review Ref",
            "type": "string"
          },
          "state": {
            "enum": [
              "quarantined",
              "evaluating",
              "awaiting_approval",
              "admitted",
              "suspended",
              "killed"
            ],
            "title": "State",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "candidate_id",
          "tenant_id",
          "endpoint",
          "credential",
          "owner_digest",
          "licence",
          "security_review_ref",
          "data_use",
          "residency",
          "cost",
          "capabilities",
          "submitted_at",
          "state"
        ],
        "title": "ModelCandidate",
        "type": "object"
      },
      "ModelDisagreement": {
        "additionalProperties": false,
        "properties": {
          "left_basis": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Left Basis",
            "type": "string"
          },
          "left_family": {
            "enum": ["bkt", "fsrs_5", "graph_tracing", "irt"],
            "title": "Left Family",
            "type": "string"
          },
          "left_ready": {
            "title": "Left Ready",
            "type": "boolean"
          },
          "right_basis": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Right Basis",
            "type": "string"
          },
          "right_family": {
            "enum": ["bkt", "fsrs_5", "graph_tracing", "irt"],
            "title": "Right Family",
            "type": "string"
          },
          "right_ready": {
            "title": "Right Ready",
            "type": "boolean"
          }
        },
        "required": [
          "left_family",
          "right_family",
          "left_ready",
          "right_ready",
          "left_basis",
          "right_basis"
        ],
        "title": "ModelDisagreement",
        "type": "object"
      },
      "ModelReadiness": {
        "additionalProperties": false,
        "properties": {
          "abstention_reason": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Abstention Reason"
          },
          "applicability_state": {
            "enum": ["applicable", "not_applicable", "insufficient_data", "stale"],
            "title": "Applicability State",
            "type": "string"
          },
          "basis": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Basis",
            "type": "string"
          },
          "contributes": {
            "title": "Contributes",
            "type": "boolean"
          },
          "model_family": {
            "enum": ["bkt", "fsrs_5", "graph_tracing", "irt"],
            "title": "Model Family",
            "type": "string"
          },
          "ready": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ready"
          }
        },
        "required": [
          "model_family",
          "applicability_state",
          "contributes",
          "ready",
          "basis",
          "abstention_reason"
        ],
        "title": "ModelReadiness",
        "type": "object"
      },
      "ModelRunIdentity": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "items": {
              "type": "string"
            },
            "maxItems": 12,
            "minItems": 1,
            "title": "Assumptions",
            "type": "array"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "input_projection_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Projection Sha256",
            "type": "string"
          },
          "item_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Id"
          },
          "model_family": {
            "enum": ["bkt", "fsrs_5", "graph_tracing", "irt"],
            "title": "Model Family",
            "type": "string"
          },
          "model_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$",
            "title": "Model Version",
            "type": "string"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          }
        },
        "required": [
          "model_family",
          "model_id",
          "model_version",
          "config_sha256",
          "input_projection_sha256",
          "evaluated_at",
          "objective_id",
          "assumptions"
        ],
        "title": "ModelRunIdentity",
        "type": "object"
      },
      "ModerationIncidentDecisionRequest": {
        "properties": {
          "action": {
            "enum": [
              "clear",
              "request_changes",
              "remove_content",
              "warn_learner",
              "restrict_tutor",
              "invalidate_submission",
              "escalate"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "default": "",
            "maxLength": 4000,
            "title": "Comment",
            "type": "string"
          }
        },
        "required": ["action"],
        "title": "ModerationIncidentDecisionRequest",
        "type": "object"
      },
      "ModerationIncidentDecisionResponse": {
        "properties": {
          "action": {
            "enum": [
              "clear",
              "request_changes",
              "remove_content",
              "warn_learner",
              "restrict_tutor",
              "invalidate_submission",
              "escalate"
            ],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer": {
            "title": "Reviewer",
            "type": "string"
          }
        },
        "required": ["action", "comment", "reviewer", "reviewed_at"],
        "title": "ModerationIncidentDecisionResponse",
        "type": "object"
      },
      "ModerationIncidentDecisionResultResponse": {
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/ModerationIncidentDecisionResponse"
          },
          "incident": {
            "$ref": "#/components/schemas/ModerationIncidentResponse"
          }
        },
        "required": ["incident", "decision"],
        "title": "ModerationIncidentDecisionResultResponse",
        "type": "object"
      },
      "ModerationIncidentEvidenceResponse": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "ModerationIncidentEvidenceResponse",
        "type": "object"
      },
      "ModerationIncidentResponse": {
        "properties": {
          "content_preview": {
            "title": "Content Preview",
            "type": "string"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ModerationIncidentEvidenceResponse"
            },
            "title": "Evidence",
            "type": "array"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/ModerationIncidentDecisionResponse"
            },
            "title": "History",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "incident_type": {
            "enum": [
              "generated_educational_content",
              "tutor_abuse_report",
              "academic_integrity_incident"
            ],
            "title": "Incident Type",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "recommended_actions": {
            "items": {
              "enum": [
                "clear",
                "request_changes",
                "remove_content",
                "warn_learner",
                "restrict_tutor",
                "invalidate_submission",
                "escalate"
              ],
              "type": "string"
            },
            "title": "Recommended Actions",
            "type": "array"
          },
          "reported_date": {
            "format": "date-time",
            "title": "Reported Date",
            "type": "string"
          },
          "reporter_id": {
            "title": "Reporter Id",
            "type": "string"
          },
          "reporter_name": {
            "title": "Reporter Name",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "enum": ["pending", "under_review", "resolved", "dismissed", "escalated"],
            "title": "Status",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_label": {
            "title": "Subject Label",
            "type": "string"
          },
          "subject_type": {
            "title": "Subject Type",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "incident_type",
          "title",
          "subject_id",
          "subject_type",
          "subject_label",
          "reporter_name",
          "reporter_id",
          "reported_date",
          "severity",
          "status",
          "reason",
          "summary",
          "content_preview"
        ],
        "title": "ModerationIncidentResponse",
        "type": "object"
      },
      "ModerationRequest": {
        "properties": {
          "action": {
            "enum": ["approve", "remove", "warn_author"],
            "title": "Action",
            "type": "string"
          },
          "notes": {
            "default": "",
            "maxLength": 4000,
            "title": "Notes",
            "type": "string"
          }
        },
        "required": ["action"],
        "title": "ModerationRequest",
        "type": "object"
      },
      "ModerationResultResponse": {
        "properties": {
          "action": {
            "enum": ["approve", "remove", "warn_author"],
            "title": "Action",
            "type": "string"
          },
          "flag_id": {
            "title": "Flag Id",
            "type": "string"
          },
          "moderator_id": {
            "title": "Moderator Id",
            "type": "string"
          },
          "moderator_name": {
            "title": "Moderator Name",
            "type": "string"
          },
          "notes": {
            "title": "Notes",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          }
        },
        "required": ["flag_id", "action", "moderator_id", "moderator_name", "timestamp", "notes"],
        "title": "ModerationResultResponse",
        "type": "object"
      },
      "ModuleCreate": {
        "description": "Schema for creating a new module within a course.",
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "estimated_minutes": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Minutes"
          },
          "is_published": {
            "default": false,
            "title": "Is Published",
            "type": "boolean"
          },
          "order": {
            "default": 0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["title"],
        "title": "ModuleCreate",
        "type": "object"
      },
      "ModuleResponse": {
        "description": "Module data returned in API responses, including nested lessons.",
        "properties": {
          "course_id": {
            "format": "uuid",
            "title": "Course Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "estimated_minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Minutes"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "is_published": {
            "title": "Is Published",
            "type": "boolean"
          },
          "lessons": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LessonResponse"
            },
            "title": "Lessons",
            "type": "array"
          },
          "maturity": {
            "default": "idea",
            "title": "Maturity",
            "type": "string"
          },
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "revision": {
            "default": 1,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "order",
          "is_published",
          "course_id",
          "created_at",
          "updated_at"
        ],
        "title": "ModuleResponse",
        "type": "object"
      },
      "ModuleUpdate": {
        "description": "Schema for updating module fields.",
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "estimated_minutes": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Minutes"
          },
          "is_published": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Published"
          },
          "order": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Order"
          },
          "title": {
            "anyOf": [
              {
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "ModuleUpdate",
        "type": "object"
      },
      "MonitoringDataResponse": {
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "job_queue": {
            "$ref": "#/components/schemas/JobQueueStatusResponse"
          },
          "observability_streams": {
            "items": {
              "$ref": "#/components/schemas/ObservabilityStreamResponse"
            },
            "title": "Observability Streams",
            "type": "array"
          },
          "observability_summary": {
            "$ref": "#/components/schemas/ObservabilitySummaryResponse"
          },
          "panels": {
            "items": {
              "$ref": "#/components/schemas/MonitoringPanelResponse"
            },
            "title": "Panels",
            "type": "array"
          },
          "recent_errors": {
            "items": {
              "$ref": "#/components/schemas/MonitoringErrorResponse"
            },
            "title": "Recent Errors",
            "type": "array"
          },
          "services": {
            "items": {
              "$ref": "#/components/schemas/MonitoringServiceResponse"
            },
            "title": "Services",
            "type": "array"
          },
          "slo_summary": {
            "$ref": "#/components/schemas/MonitoringSloSummaryResponse"
          },
          "slos": {
            "items": {
              "$ref": "#/components/schemas/MonitoringSloResponse"
            },
            "title": "Slos",
            "type": "array"
          },
          "system_resources": {
            "$ref": "#/components/schemas/SystemResourcesResponse"
          },
          "uptime": {
            "$ref": "#/components/schemas/UptimeInfoResponse"
          }
        },
        "required": [
          "observability_summary",
          "slo_summary",
          "job_queue",
          "system_resources",
          "uptime",
          "generated_at"
        ],
        "title": "MonitoringDataResponse",
        "type": "object"
      },
      "MonitoringErrorResponse": {
        "properties": {
          "count": {
            "minimum": 0.0,
            "title": "Count",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "level": {
            "enum": ["error", "warning", "critical"],
            "title": "Level",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "service": {
            "title": "Service",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          }
        },
        "required": ["id", "timestamp", "service", "message", "count", "level"],
        "title": "MonitoringErrorResponse",
        "type": "object"
      },
      "MonitoringPanelIncidentResponse": {
        "properties": {
          "href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Href"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "severity": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": ["id", "title", "summary", "severity", "owner", "updated_at"],
        "title": "MonitoringPanelIncidentResponse",
        "type": "object"
      },
      "MonitoringPanelMetricResponse": {
        "properties": {
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "tone": {
            "default": "neutral",
            "enum": ["neutral", "positive", "warning", "critical"],
            "title": "Tone",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "MonitoringPanelMetricResponse",
        "type": "object"
      },
      "MonitoringPanelResponse": {
        "properties": {
          "incidents": {
            "items": {
              "$ref": "#/components/schemas/MonitoringPanelIncidentResponse"
            },
            "title": "Incidents",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/MonitoringPanelMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "panel_id": {
            "enum": [
              "tutoring_latency",
              "grounding_failures",
              "build_failures",
              "export_failures",
              "model_cost_anomalies"
            ],
            "title": "Panel Id",
            "type": "string"
          },
          "primary_label": {
            "title": "Primary Label",
            "type": "string"
          },
          "primary_value": {
            "title": "Primary Value",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["panel_id", "title", "status", "summary", "primary_value", "primary_label"],
        "title": "MonitoringPanelResponse",
        "type": "object"
      },
      "MonitoringServiceResponse": {
        "properties": {
          "details": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                }
              ]
            },
            "title": "Details",
            "type": "object"
          },
          "error_rate": {
            "minimum": 0.0,
            "title": "Error Rate",
            "type": "number"
          },
          "latency": {
            "minimum": 0.0,
            "title": "Latency",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "degraded", "down"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["name", "status", "latency", "error_rate", "details"],
        "title": "MonitoringServiceResponse",
        "type": "object"
      },
      "MonitoringSloResponse": {
        "properties": {
          "dimension": {
            "enum": ["cost", "latency", "quality", "failure"],
            "title": "Dimension",
            "type": "string"
          },
          "href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Href"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/MonitoringPanelMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "observed": {
            "title": "Observed",
            "type": "string"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "slo_id": {
            "enum": [
              "generation_cost",
              "generation_latency",
              "generation_quality",
              "generation_failure",
              "tutoring_cost",
              "tutoring_latency",
              "tutoring_quality",
              "tutoring_failure"
            ],
            "title": "Slo Id",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "surface": {
            "enum": ["generation", "tutoring"],
            "title": "Surface",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "window": {
            "title": "Window",
            "type": "string"
          }
        },
        "required": [
          "slo_id",
          "surface",
          "dimension",
          "title",
          "status",
          "summary",
          "target",
          "observed",
          "window",
          "owner"
        ],
        "title": "MonitoringSloResponse",
        "type": "object"
      },
      "MonitoringSloSummaryResponse": {
        "properties": {
          "critical": {
            "minimum": 0.0,
            "title": "Critical",
            "type": "integer"
          },
          "healthy": {
            "minimum": 0.0,
            "title": "Healthy",
            "type": "integer"
          },
          "release_blocking": {
            "minimum": 0.0,
            "title": "Release Blocking",
            "type": "integer"
          },
          "warning": {
            "minimum": 0.0,
            "title": "Warning",
            "type": "integer"
          }
        },
        "required": ["healthy", "warning", "critical", "release_blocking"],
        "title": "MonitoringSloSummaryResponse",
        "type": "object"
      },
      "MutationScan": {
        "additionalProperties": false,
        "description": "The comment types' fields, and the words a mutation would have to be spelled with.",
        "properties": {
          "fields_matching": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Fields Matching",
            "type": "array"
          },
          "fields_scanned": {
            "minimum": 1.0,
            "title": "Fields Scanned",
            "type": "integer"
          },
          "forbidden_words": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Forbidden Words",
            "type": "array"
          },
          "models_scanned": {
            "minimum": 1.0,
            "title": "Models Scanned",
            "type": "integer"
          }
        },
        "required": ["models_scanned", "fields_scanned", "forbidden_words"],
        "title": "MutationScan",
        "type": "object"
      },
      "NestedStimulusSetRevision": {
        "additionalProperties": false,
        "properties": {
          "locator": {
            "pattern": "^stimulus-set://[A-Za-z0-9._:/-]{3,500}$",
            "title": "Locator",
            "type": "string"
          },
          "member_type": {
            "const": "stimulus_set",
            "default": "stimulus_set",
            "title": "Member Type",
            "type": "string"
          },
          "order": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Order",
            "type": "integer"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "role": {
            "const": "nested_context",
            "default": "nested_context",
            "title": "Role",
            "type": "string"
          },
          "stimulus_set_id": {
            "pattern": "^stimulus-set-[a-f0-9]{40}$",
            "title": "Stimulus Set Id",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "stimulus_set_id",
          "revision",
          "revision_sha256",
          "tenant_id",
          "locator",
          "order"
        ],
        "title": "NestedStimulusSetRevision",
        "type": "object"
      },
      "NewEvidenceLink": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "previous_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Sha256"
          }
        },
        "required": ["evidence_id", "artifact_id", "content_sha256"],
        "title": "NewEvidenceLink",
        "type": "object"
      },
      "NextItemDecision": {
        "additionalProperties": false,
        "properties": {
          "accounting": {
            "$ref": "#/components/schemas/WorkAccounting"
          },
          "bounds": {
            "$ref": "#/components/schemas/WorkBounds"
          },
          "degraded_from_stage": {
            "anyOf": [
              {
                "enum": [
                  "context_receipt",
                  "eligibility",
                  "model_panel",
                  "selection",
                  "render_handoff"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Degraded From Stage"
          },
          "selected_item_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Item Id"
          },
          "state": {
            "enum": ["served", "served_degraded", "unavailable"],
            "title": "State",
            "type": "string"
          },
          "trace": {
            "$ref": "#/components/schemas/NextItemTrace"
          },
          "unavailable_reason": {
            "anyOf": [
              {
                "enum": [
                  "deadline_exhausted_before_next_item",
                  "stage_timed_out_without_a_fallback",
                  "candidate_budget_exhausted"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unavailable Reason"
          }
        },
        "required": [
          "state",
          "selected_item_id",
          "degraded_from_stage",
          "unavailable_reason",
          "bounds",
          "accounting",
          "trace"
        ],
        "title": "NextItemDecision",
        "type": "object"
      },
      "NextItemTrace": {
        "additionalProperties": false,
        "properties": {
          "deadline_micros": {
            "maximum": 60000000.0,
            "minimum": 1.0,
            "title": "Deadline Micros",
            "type": "integer"
          },
          "spans": {
            "items": {
              "$ref": "#/components/schemas/StageSpan"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Spans",
            "type": "array"
          },
          "tier": {
            "enum": ["desktop_broadband", "laptop_wifi", "tablet_4g", "phone_3g"],
            "title": "Tier",
            "type": "string"
          },
          "total_duration_micros": {
            "maximum": 60000000.0,
            "minimum": 0.0,
            "title": "Total Duration Micros",
            "type": "integer"
          },
          "trace_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Trace Id",
            "type": "string"
          }
        },
        "required": ["trace_id", "tier", "deadline_micros", "spans", "total_duration_micros"],
        "title": "NextItemTrace",
        "type": "object"
      },
      "NotebookSourceScope": {
        "properties": {
          "level": {
            "const": "notebook",
            "title": "Level",
            "type": "string"
          },
          "notebookId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Notebookid",
            "type": "string"
          },
          "notebookTitle": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Notebooktitle",
            "type": "string"
          },
          "ownerId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ownerid",
            "type": "string"
          },
          "ownerName": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ownername",
            "type": "string"
          }
        },
        "required": ["level", "notebookId", "notebookTitle", "ownerId", "ownerName"],
        "title": "NotebookSourceScope",
        "type": "object"
      },
      "Notification": {
        "additionalProperties": false,
        "description": "One attempt to tell somebody something, and what became of it.",
        "properties": {
          "acknowledged_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Acknowledged At"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "channel": {
            "enum": ["in_product", "email", "sms", "pager"],
            "title": "Channel",
            "type": "string"
          },
          "deferred_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deferred Until"
          },
          "delivered_to_substitute": {
            "default": false,
            "title": "Delivered To Substitute",
            "type": "boolean"
          },
          "idempotency_key": {
            "pattern": "^[0-9a-f]{40}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "kind": {
            "enum": ["reminder", "escalation", "assignment", "acknowledgement_request"],
            "title": "Kind",
            "type": "string"
          },
          "notification_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Notification Id",
            "type": "string"
          },
          "outcome": {
            "enum": ["sent", "deferred_quiet_hours", "sent_over_quiet_hours", "suppressed"],
            "title": "Outcome",
            "type": "string"
          },
          "ratification": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UrgencyRatification"
              },
              {
                "type": "null"
              }
            ]
          },
          "recipient_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Recipient Digest",
            "type": "string"
          },
          "schema_version": {
            "const": "7.12.0",
            "default": "7.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          }
        },
        "required": [
          "notification_id",
          "task_id",
          "kind",
          "recipient_digest",
          "channel",
          "at",
          "outcome",
          "idempotency_key"
        ],
        "title": "Notification",
        "type": "object"
      },
      "NotificationPlan": {
        "additionalProperties": false,
        "description": "Who is told, why and how. A muted thread produces no row, not a silent one.",
        "properties": {
          "comment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Comment Id",
            "type": "string"
          },
          "muted_digests": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Muted Digests",
            "type": "array"
          },
          "recipients": {
            "default": [],
            "items": {
              "maxItems": 3,
              "minItems": 3,
              "prefixItems": [
                {
                  "pattern": "^[a-f0-9]{64}$",
                  "type": "string"
                },
                {
                  "enum": ["mentioned", "reply_to_followed"],
                  "type": "string"
                },
                {
                  "enum": ["none", "digest", "immediate"],
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "maxItems": 200,
            "title": "Recipients",
            "type": "array"
          },
          "thread_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Thread Id",
            "type": "string"
          }
        },
        "required": ["thread_id", "comment_id"],
        "title": "NotificationPlan",
        "type": "object"
      },
      "NotificationPolicy": {
        "additionalProperties": false,
        "properties": {
          "channels": {
            "items": {
              "enum": ["in_product", "email", "sms", "pager"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Channels",
            "type": "array"
          },
          "on_call": {
            "default": false,
            "title": "On Call",
            "type": "boolean"
          },
          "quiet_hours": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/QuietHours"
              },
              {
                "type": "null"
              }
            ]
          },
          "recipient_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Recipient Digest",
            "type": "string"
          },
          "substitute_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Substitute Digest"
          }
        },
        "required": ["recipient_digest", "channels"],
        "title": "NotificationPolicy",
        "type": "object"
      },
      "NotificationPreference": {
        "additionalProperties": false,
        "description": "Per person: the default, and the threads they muted or followed by hand.",
        "properties": {
          "followed_thread_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Followed Thread Ids",
            "type": "array"
          },
          "muted_thread_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Muted Thread Ids",
            "type": "array"
          },
          "on_mention": {
            "default": "immediate",
            "enum": ["none", "digest", "immediate"],
            "title": "On Mention",
            "type": "string"
          },
          "on_reply_to_followed": {
            "default": "digest",
            "enum": ["none", "digest", "immediate"],
            "title": "On Reply To Followed",
            "type": "string"
          },
          "person_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Person Digest",
            "type": "string"
          }
        },
        "required": ["person_digest"],
        "title": "NotificationPreference",
        "type": "object"
      },
      "NotificationRequest": {
        "additionalProperties": false,
        "properties": {
          "comment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Comment Id",
            "type": "string"
          },
          "followers": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Followers",
            "type": "array"
          },
          "preferences": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/NotificationPreference"
            },
            "maxItems": 200,
            "title": "Preferences",
            "type": "array"
          }
        },
        "required": ["comment_id"],
        "title": "NotificationRequest",
        "type": "object"
      },
      "NumericResponse": {
        "additionalProperties": false,
        "properties": {
          "equivalence": {
            "$ref": "#/components/schemas/MathEquivalencePolicy"
          },
          "expected_value": {
            "maxLength": 80,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
            "title": "Expected Value",
            "type": "string"
          },
          "response_type": {
            "const": "numeric",
            "default": "numeric",
            "title": "Response Type",
            "type": "string"
          }
        },
        "required": ["equivalence", "expected_value"],
        "title": "NumericResponse",
        "type": "object"
      },
      "ObjectPermission": {
        "additionalProperties": false,
        "description": "What one person may do with one subject, as the surrounding system says.\n\n`readable_paths` is the property-level half: a field or text anchor into a\npath the reader cannot read is refused before the comment exists.",
        "properties": {
          "all_paths_readable": {
            "default": false,
            "title": "All Paths Readable",
            "type": "boolean"
          },
          "may_comment": {
            "title": "May Comment",
            "type": "boolean"
          },
          "may_read": {
            "title": "May Read",
            "type": "boolean"
          },
          "readable_paths": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Readable Paths",
            "type": "array"
          },
          "reader_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reader Digest",
            "type": "string"
          },
          "reader_role": {
            "enum": [
              "author",
              "reviewer",
              "instructional_designer",
              "accessibility_specialist",
              "integrity_lead"
            ],
            "title": "Reader Role",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": [
              "course",
              "lesson",
              "block",
              "objective",
              "rubric",
              "item",
              "response",
              "stimulus",
              "media"
            ],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": [
          "subject_kind",
          "subject_id",
          "reader_digest",
          "reader_role",
          "may_read",
          "may_comment"
        ],
        "title": "ObjectPermission",
        "type": "object"
      },
      "ObjectiveAlignmentCatalog": {
        "additionalProperties": false,
        "properties": {
          "gate_runs": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentGateRun"
            },
            "maxItems": 1000,
            "title": "Gate Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "5.1.0",
            "default": "5.1.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["gate_runs"],
        "title": "ObjectiveAlignmentCatalog",
        "type": "object"
      },
      "ObjectiveAlignmentCriterion": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "pattern": "^criterion:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "evidence_requirement_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Requirement Ids",
            "type": "array"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          }
        },
        "required": ["criterion_id", "description", "required"],
        "title": "ObjectiveAlignmentCriterion",
        "type": "object"
      },
      "ObjectiveAlignmentDistributionBucket": {
        "additionalProperties": false,
        "properties": {
          "direct_count": {
            "minimum": 0.0,
            "title": "Direct Count",
            "type": "integer"
          },
          "indirect_count": {
            "minimum": 0.0,
            "title": "Indirect Count",
            "type": "integer"
          },
          "key": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "link_count": {
            "minimum": 0.0,
            "title": "Link Count",
            "type": "integer"
          },
          "weight_basis_points": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["key", "link_count", "direct_count", "indirect_count", "weight_basis_points"],
        "title": "ObjectiveAlignmentDistributionBucket",
        "type": "object"
      },
      "ObjectiveAlignmentFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "introduced_undercoverage",
              "practice_undercoverage",
              "assessment_undercoverage",
              "criterion_underrepresentation",
              "construct_underrepresentation",
              "depth_mismatch",
              "cognitive_level_mismatch",
              "construct_irrelevant_variance",
              "stale_link",
              "missing_link",
              "conflicting_link",
              "unknown_applicability",
              "unknown_construct_relevance",
              "unlinked_resource"
            ],
            "title": "Code",
            "type": "string"
          },
          "disposition": {
            "enum": ["blocking", "manual_review", "advisory"],
            "title": "Disposition",
            "type": "string"
          },
          "enforcement": {
            "enum": ["required", "advisory"],
            "title": "Enforcement",
            "type": "string"
          },
          "evidence_state": {
            "enum": ["confirmed", "unknown", "conflicting"],
            "title": "Evidence State",
            "type": "string"
          },
          "finding_id": {
            "pattern": "^objective-alignment-finding-[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "observed": {
            "title": "Observed",
            "type": "string"
          },
          "policy_profile_id": {
            "title": "Policy Profile Id",
            "type": "string"
          },
          "related_ids": {
            "items": {
              "type": "string"
            },
            "title": "Related Ids",
            "type": "array"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["scope", "objective", "criterion", "construct", "resource", "link"],
            "title": "Subject Kind",
            "type": "string"
          },
          "threshold": {
            "title": "Threshold",
            "type": "string"
          }
        },
        "required": [
          "finding_id",
          "code",
          "evidence_state",
          "enforcement",
          "disposition",
          "subject_kind",
          "subject_id",
          "related_ids",
          "observed",
          "threshold",
          "policy_profile_id",
          "message"
        ],
        "title": "ObjectiveAlignmentFinding",
        "type": "object"
      },
      "ObjectiveAlignmentGateRun": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "gate_run_id": {
            "pattern": "^objective-alignment-gate-[a-f0-9]{40}$",
            "title": "Gate Run Id",
            "type": "string"
          },
          "gate_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Gate Run Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "policy_id": {
            "const": "metis.objective-construct-alignment",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_profile": {
            "$ref": "#/components/schemas/ObjectiveAlignmentPolicyProfile"
          },
          "policy_version": {
            "const": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "raw_measurement_id": {
            "title": "Raw Measurement Id",
            "type": "string"
          },
          "raw_measurement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Raw Measurement Sha256",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "remediation": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentRemediation"
            },
            "title": "Remediation",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.1.0",
            "default": "5.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "verdict": {
            "$ref": "#/components/schemas/ObjectiveAlignmentVerdict"
          }
        },
        "required": [
          "gate_run_id",
          "tenant_id",
          "raw_measurement_id",
          "raw_measurement_sha256",
          "policy_id",
          "policy_version",
          "policy_profile",
          "verdict",
          "remediation",
          "actor_id",
          "actor_role",
          "reason",
          "idempotency_key",
          "request_sha256",
          "gate_run_sha256",
          "created_at"
        ],
        "title": "ObjectiveAlignmentGateRun",
        "type": "object"
      },
      "ObjectiveAlignmentLinkMeasure": {
        "additionalProperties": false,
        "properties": {
          "cognitive_level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Cognitive Level",
            "type": "string"
          },
          "coverage_link_id": {
            "title": "Coverage Link Id",
            "type": "string"
          },
          "depth": {
            "anyOf": [
              {
                "enum": ["exposure", "guided", "independent", "transfer"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depth"
          },
          "evidence_locator": {
            "title": "Evidence Locator",
            "type": "string"
          },
          "objective_id": {
            "title": "Objective Id",
            "type": "string"
          },
          "related_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Related Link Ids",
            "type": "array"
          },
          "relationship": {
            "enum": ["direct", "indirect"],
            "title": "Relationship",
            "type": "string"
          },
          "resource_id": {
            "title": "Resource Id",
            "type": "string"
          },
          "role": {
            "title": "Role",
            "type": "string"
          },
          "status": {
            "enum": ["current", "stale", "missing", "unsupported", "duplicate", "conflicting"],
            "title": "Status",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "coverage_link_id",
          "objective_id",
          "resource_id",
          "role",
          "relationship",
          "status",
          "weight_basis_points",
          "depth",
          "cognitive_level",
          "related_link_ids",
          "evidence_locator"
        ],
        "title": "ObjectiveAlignmentLinkMeasure",
        "type": "object"
      },
      "ObjectiveAlignmentObjectiveMeasure": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable", "unknown"],
            "title": "Applicability",
            "type": "string"
          },
          "conflicting_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Conflicting Link Ids",
            "type": "array"
          },
          "construct_dimensions": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveConstructDimensionMeasure"
            },
            "title": "Construct Dimensions",
            "type": "array"
          },
          "construct_irrelevant_weight_basis_points": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Construct Irrelevant Weight Basis Points",
            "type": "integer"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveCriterionMeasure"
            },
            "title": "Criteria",
            "type": "array"
          },
          "measurement_state": {
            "enum": ["measured", "not_applicable", "unknown", "conflicting"],
            "title": "Measurement State",
            "type": "string"
          },
          "missing_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Missing Link Ids",
            "type": "array"
          },
          "objective_id": {
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "title": "Objective Revision Id",
            "type": "string"
          },
          "required_for_outcome": {
            "title": "Required For Outcome",
            "type": "boolean"
          },
          "role_measures": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentRoleMeasure"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Role Measures",
            "type": "array"
          },
          "stale_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Stale Link Ids",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "unknown_signal_count": {
            "minimum": 0.0,
            "title": "Unknown Signal Count",
            "type": "integer"
          },
          "variance_signals": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveConstructVarianceSignal"
            },
            "title": "Variance Signals",
            "type": "array"
          }
        },
        "required": [
          "objective_id",
          "objective_revision_id",
          "title",
          "required_for_outcome",
          "applicability",
          "measurement_state",
          "role_measures",
          "criteria",
          "construct_dimensions",
          "variance_signals",
          "stale_link_ids",
          "missing_link_ids",
          "conflicting_link_ids",
          "construct_irrelevant_weight_basis_points",
          "unknown_signal_count"
        ],
        "title": "ObjectiveAlignmentObjectiveMeasure",
        "type": "object"
      },
      "ObjectiveAlignmentPolicyProfile": {
        "additionalProperties": false,
        "properties": {
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "profile_id": {
            "pattern": "^objective-alignment:(?:course|assessment):(?:standard|high-stakes)$",
            "title": "Profile Id",
            "type": "string"
          },
          "profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Profile Sha256",
            "type": "string"
          },
          "risk_classification": {
            "enum": ["standard", "high_stakes"],
            "title": "Risk Classification",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          },
          "subject_kind": {
            "enum": ["course", "assessment"],
            "title": "Subject Kind",
            "type": "string"
          },
          "thresholds": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentThreshold"
            },
            "maxItems": 12,
            "minItems": 12,
            "title": "Thresholds",
            "type": "array"
          }
        },
        "required": [
          "profile_id",
          "subject_kind",
          "risk_classification",
          "thresholds",
          "source_refs",
          "limitations",
          "profile_sha256"
        ],
        "title": "ObjectiveAlignmentPolicyProfile",
        "type": "object"
      },
      "ObjectiveAlignmentPolicyRegistry": {
        "additionalProperties": false,
        "properties": {
          "policy_id": {
            "const": "metis.objective-construct-alignment",
            "default": "metis.objective-construct-alignment",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "const": "2026.09.1",
            "default": "2026.09.1",
            "title": "Policy Version",
            "type": "string"
          },
          "profiles": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentPolicyProfile"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Profiles",
            "type": "array"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.1.0",
            "default": "5.1.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["profiles", "registry_sha256"],
        "title": "ObjectiveAlignmentPolicyRegistry",
        "type": "object"
      },
      "ObjectiveAlignmentRawMeasurement": {
        "additionalProperties": false,
        "properties": {
          "all_objectives_accounted": {
            "const": true,
            "default": true,
            "title": "All Objectives Accounted",
            "type": "boolean"
          },
          "all_resources_accounted": {
            "const": true,
            "default": true,
            "title": "All Resources Accounted",
            "type": "boolean"
          },
          "coverage_raw_measurement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Coverage Raw Measurement Sha256",
            "type": "string"
          },
          "links": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentLinkMeasure"
            },
            "title": "Links",
            "type": "array"
          },
          "not_applicable_objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Not Applicable Objective Ids",
            "type": "array"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentObjectiveMeasure"
            },
            "title": "Objectives",
            "type": "array"
          },
          "raw_measurement_id": {
            "pattern": "^objective-alignment-raw-[a-f0-9]{40}$",
            "title": "Raw Measurement Id",
            "type": "string"
          },
          "raw_measurement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Raw Measurement Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.1.0",
            "default": "5.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["course", "assessment"],
            "title": "Subject Kind",
            "type": "string"
          },
          "subject_revision_id": {
            "title": "Subject Revision Id",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "unknown_objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unknown Objective Ids",
            "type": "array"
          },
          "unlinked_resource_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unlinked Resource Ids",
            "type": "array"
          }
        },
        "required": [
          "raw_measurement_id",
          "tenant_id",
          "subject_kind",
          "subject_id",
          "subject_revision_id",
          "subject_revision_sha256",
          "source_sha256",
          "coverage_raw_measurement_sha256",
          "links",
          "objectives",
          "unlinked_resource_ids",
          "not_applicable_objective_ids",
          "unknown_objective_ids",
          "raw_measurement_sha256"
        ],
        "title": "ObjectiveAlignmentRawMeasurement",
        "type": "object"
      },
      "ObjectiveAlignmentRemediation": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "add_introduction",
              "add_practice",
              "add_assessment",
              "map_criterion",
              "map_construct_dimension",
              "raise_depth",
              "raise_cognitive_level",
              "remove_irrelevant_demand",
              "refresh_link",
              "repair_link",
              "resolve_conflict",
              "classify_applicability",
              "review_construct_relevance",
              "link_resource"
            ],
            "title": "Action",
            "type": "string"
          },
          "automatic_change_applied": {
            "const": false,
            "default": false,
            "title": "Automatic Change Applied",
            "type": "boolean"
          },
          "finding_id": {
            "title": "Finding Id",
            "type": "string"
          },
          "instruction": {
            "title": "Instruction",
            "type": "string"
          },
          "remediation_id": {
            "pattern": "^objective-alignment-remediation-[a-f0-9]{40}$",
            "title": "Remediation Id",
            "type": "string"
          },
          "target_ids": {
            "items": {
              "type": "string"
            },
            "title": "Target Ids",
            "type": "array"
          }
        },
        "required": ["remediation_id", "finding_id", "action", "target_ids", "instruction"],
        "title": "ObjectiveAlignmentRemediation",
        "type": "object"
      },
      "ObjectiveAlignmentRoleMeasure": {
        "additionalProperties": false,
        "properties": {
          "cognitive_distribution": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentDistributionBucket"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Cognitive Distribution",
            "type": "array"
          },
          "depth_distribution": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentDistributionBucket"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Depth Distribution",
            "type": "array"
          },
          "direct_count": {
            "minimum": 0.0,
            "title": "Direct Count",
            "type": "integer"
          },
          "indirect_count": {
            "minimum": 0.0,
            "title": "Indirect Count",
            "type": "integer"
          },
          "role": {
            "enum": ["introduced", "practiced", "assessed"],
            "title": "Role",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "role",
          "direct_count",
          "indirect_count",
          "weight_basis_points",
          "depth_distribution",
          "cognitive_distribution"
        ],
        "title": "ObjectiveAlignmentRoleMeasure",
        "type": "object"
      },
      "ObjectiveAlignmentRunRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_policy_profile_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Policy Profile Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^objective-alignment-run:[A-Za-z0-9._:-]{8,130}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "policy_profile_id": {
            "pattern": "^objective-alignment:(?:course|assessment):(?:standard|high-stakes)$",
            "title": "Policy Profile Id",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "5.1.0",
            "default": "5.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/ObjectiveAlignmentSourceSnapshot"
          }
        },
        "required": [
          "idempotency_key",
          "source",
          "policy_profile_id",
          "expected_policy_profile_sha256",
          "reason"
        ],
        "title": "ObjectiveAlignmentRunRequest",
        "type": "object"
      },
      "ObjectiveAlignmentSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "captured_at": {
            "format": "date-time",
            "title": "Captured At",
            "type": "string"
          },
          "captured_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Captured By",
            "type": "string"
          },
          "constructs": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveConstructSnapshot"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Constructs",
            "type": "array"
          },
          "coverage_source": {
            "$ref": "#/components/schemas/CoverageSourceSnapshot-Input"
          },
          "demands": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveResourceDemandSnapshot"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Demands",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "mappings": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveConstructMappingSnapshot"
            },
            "maxItems": 100000,
            "title": "Mappings",
            "type": "array"
          },
          "risk_classification": {
            "enum": ["standard", "high_stakes"],
            "title": "Risk Classification",
            "type": "string"
          },
          "schema_version": {
            "const": "5.1.0",
            "default": "5.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["course", "assessment"],
            "title": "Subject Kind",
            "type": "string"
          },
          "subject_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Subject Revision Id",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "subject_kind",
          "subject_id",
          "subject_revision_id",
          "subject_revision_sha256",
          "risk_classification",
          "locale",
          "coverage_source",
          "constructs",
          "demands",
          "mappings",
          "captured_at",
          "captured_by",
          "source_sha256"
        ],
        "title": "ObjectiveAlignmentSourceSnapshot",
        "type": "object"
      },
      "ObjectiveAlignmentThreshold": {
        "additionalProperties": false,
        "properties": {
          "enforcement": {
            "enum": ["required", "advisory"],
            "title": "Enforcement",
            "type": "string"
          },
          "metric": {
            "enum": [
              "minimum_direct_introduced_links",
              "minimum_direct_practiced_links",
              "minimum_direct_assessed_links",
              "minimum_required_criterion_coverage_basis_points",
              "minimum_required_construct_coverage_basis_points",
              "minimum_assessed_depth_ordinal",
              "minimum_assessed_cognitive_ordinal",
              "maximum_construct_irrelevant_weight_basis_points",
              "maximum_stale_links",
              "maximum_missing_links",
              "maximum_conflicting_links",
              "maximum_unknown_signals"
            ],
            "title": "Metric",
            "type": "string"
          },
          "operator": {
            "enum": ["at_least", "at_most"],
            "title": "Operator",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "required_objectives_only": {
            "title": "Required Objectives Only",
            "type": "boolean"
          },
          "value": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Value",
            "type": "integer"
          }
        },
        "required": [
          "metric",
          "operator",
          "value",
          "enforcement",
          "required_objectives_only",
          "rationale"
        ],
        "title": "ObjectiveAlignmentThreshold",
        "type": "object"
      },
      "ObjectiveAlignmentVerdict": {
        "additionalProperties": false,
        "properties": {
          "advisory_count": {
            "minimum": 0.0,
            "title": "Advisory Count",
            "type": "integer"
          },
          "blocking_count": {
            "minimum": 0.0,
            "title": "Blocking Count",
            "type": "integer"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "manual_review_count": {
            "minimum": 0.0,
            "title": "Manual Review Count",
            "type": "integer"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "status": {
            "enum": ["pass", "review", "manual_review", "block"],
            "title": "Status",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          }
        },
        "required": [
          "status",
          "release_allowed",
          "blocking_count",
          "manual_review_count",
          "advisory_count",
          "findings",
          "verdict_sha256"
        ],
        "title": "ObjectiveAlignmentVerdict",
        "type": "object"
      },
      "ObjectiveAlignmentWorkspace": {
        "additionalProperties": false,
        "properties": {
          "gate_run": {
            "$ref": "#/components/schemas/ObjectiveAlignmentGateRun"
          },
          "raw_measurement": {
            "$ref": "#/components/schemas/ObjectiveAlignmentRawMeasurement"
          },
          "schema_version": {
            "const": "5.1.0",
            "default": "5.1.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["raw_measurement", "gate_run"],
        "title": "ObjectiveAlignmentWorkspace",
        "type": "object"
      },
      "ObjectiveConstructDimension": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "dimension_id": {
            "pattern": "^construct:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Dimension Id",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "minimum_cognitive_level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Minimum Cognitive Level",
            "type": "string"
          },
          "minimum_depth": {
            "enum": ["exposure", "guided", "independent", "transfer"],
            "title": "Minimum Depth",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          }
        },
        "required": [
          "dimension_id",
          "label",
          "description",
          "required",
          "minimum_depth",
          "minimum_cognitive_level"
        ],
        "title": "ObjectiveConstructDimension",
        "type": "object"
      },
      "ObjectiveConstructDimensionMeasure": {
        "additionalProperties": false,
        "properties": {
          "assessed_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Assessed Link Ids",
            "type": "array"
          },
          "assessment_coverage_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Assessment Coverage Basis Points",
            "type": "integer"
          },
          "deepest_assessed_depth": {
            "anyOf": [
              {
                "enum": ["exposure", "guided", "independent", "transfer"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deepest Assessed Depth"
          },
          "dimension_id": {
            "title": "Dimension Id",
            "type": "string"
          },
          "highest_assessed_cognitive_level": {
            "anyOf": [
              {
                "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Highest Assessed Cognitive Level"
          },
          "minimum_cognitive_level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Minimum Cognitive Level",
            "type": "string"
          },
          "minimum_depth": {
            "enum": ["exposure", "guided", "independent", "transfer"],
            "title": "Minimum Depth",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "state": {
            "enum": ["covered", "underrepresented", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "dimension_id",
          "required",
          "minimum_depth",
          "minimum_cognitive_level",
          "assessed_link_ids",
          "assessment_coverage_basis_points",
          "deepest_assessed_depth",
          "highest_assessed_cognitive_level",
          "state"
        ],
        "title": "ObjectiveConstructDimensionMeasure",
        "type": "object"
      },
      "ObjectiveConstructMappingSnapshot": {
        "additionalProperties": false,
        "properties": {
          "coverage_link_id": {
            "pattern": "^coverage_link_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Coverage Link Id",
            "type": "string"
          },
          "covered_construct_dimension_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Covered Construct Dimension Ids",
            "type": "array"
          },
          "covered_criterion_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Covered Criterion Ids",
            "type": "array"
          },
          "engaged_demand_dimension_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Engaged Demand Dimension Ids",
            "type": "array"
          },
          "evidence_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Locator",
            "type": "string"
          },
          "mapping_id": {
            "pattern": "^construct-map:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Mapping Id",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          }
        },
        "required": [
          "mapping_id",
          "coverage_link_id",
          "objective_id",
          "resource_id",
          "evidence_locator",
          "rationale"
        ],
        "title": "ObjectiveConstructMappingSnapshot",
        "type": "object"
      },
      "ObjectiveConstructSnapshot": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable", "unknown"],
            "title": "Applicability",
            "type": "string"
          },
          "applicability_rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Applicability Rationale",
            "type": "string"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveAlignmentCriterion"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/ObjectiveConstructDimension"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Dimensions",
            "type": "array"
          },
          "intended_construct": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Intended Construct",
            "type": "string"
          },
          "objective_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Objective Content Sha256",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "pattern": "^objectiverev_[a-f0-9]{40}$",
            "title": "Objective Revision Id",
            "type": "string"
          },
          "permitted_support_dimension_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Permitted Support Dimension Ids",
            "type": "array"
          }
        },
        "required": [
          "objective_id",
          "objective_revision_id",
          "objective_content_sha256",
          "applicability",
          "applicability_rationale",
          "intended_construct",
          "criteria",
          "dimensions"
        ],
        "title": "ObjectiveConstructSnapshot",
        "type": "object"
      },
      "ObjectiveConstructVarianceSignal": {
        "additionalProperties": false,
        "properties": {
          "coverage_link_id": {
            "title": "Coverage Link Id",
            "type": "string"
          },
          "demand_dimension_id": {
            "title": "Demand Dimension Id",
            "type": "string"
          },
          "demand_level": {
            "maximum": 4.0,
            "minimum": 1.0,
            "title": "Demand Level",
            "type": "integer"
          },
          "learner_variability_risk": {
            "enum": ["low", "moderate", "high", "unknown"],
            "title": "Learner Variability Risk",
            "type": "string"
          },
          "objective_id": {
            "title": "Objective Id",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "resource_id": {
            "title": "Resource Id",
            "type": "string"
          },
          "signal_id": {
            "pattern": "^construct-variance-[a-f0-9]{40}$",
            "title": "Signal Id",
            "type": "string"
          },
          "state": {
            "enum": ["confirmed", "unknown"],
            "title": "State",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "signal_id",
          "objective_id",
          "resource_id",
          "coverage_link_id",
          "demand_dimension_id",
          "demand_level",
          "learner_variability_risk",
          "weight_basis_points",
          "state",
          "reason"
        ],
        "title": "ObjectiveConstructVarianceSignal",
        "type": "object"
      },
      "ObjectiveCoverageRule": {
        "additionalProperties": false,
        "properties": {
          "forbidden_objective_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Forbidden Objective Ids",
            "type": "array"
          },
          "match": {
            "enum": ["any_of", "all_of"],
            "title": "Match",
            "type": "string"
          },
          "required_objective_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Required Objective Ids",
            "type": "array"
          }
        },
        "required": ["match", "required_objective_ids"],
        "title": "ObjectiveCoverageRule",
        "type": "object"
      },
      "ObjectiveCriterionMeasure": {
        "additionalProperties": false,
        "properties": {
          "assessed_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Assessed Link Ids",
            "type": "array"
          },
          "assessment_coverage_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Assessment Coverage Basis Points",
            "type": "integer"
          },
          "criterion_id": {
            "title": "Criterion Id",
            "type": "string"
          },
          "introduced_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Introduced Link Ids",
            "type": "array"
          },
          "practiced_link_ids": {
            "items": {
              "type": "string"
            },
            "title": "Practiced Link Ids",
            "type": "array"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "state": {
            "enum": ["covered", "underrepresented", "unknown", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "criterion_id",
          "required",
          "introduced_link_ids",
          "practiced_link_ids",
          "assessed_link_ids",
          "assessment_coverage_basis_points",
          "state"
        ],
        "title": "ObjectiveCriterionMeasure",
        "type": "object"
      },
      "ObjectiveDemandDimension": {
        "additionalProperties": false,
        "properties": {
          "demand_level": {
            "maximum": 4.0,
            "minimum": 1.0,
            "title": "Demand Level",
            "type": "integer"
          },
          "dimension_id": {
            "pattern": "^(?:construct|demand):[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Dimension Id",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "learner_variability_risk": {
            "enum": ["low", "moderate", "high", "unknown"],
            "title": "Learner Variability Risk",
            "type": "string"
          },
          "necessity": {
            "enum": ["construct_required", "delivery_required", "incidental", "unknown"],
            "title": "Necessity",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "dimension_id",
          "label",
          "demand_level",
          "necessity",
          "learner_variability_risk",
          "rationale"
        ],
        "title": "ObjectiveDemandDimension",
        "type": "object"
      },
      "ObjectiveMastery": {
        "additionalProperties": false,
        "properties": {
          "mastery_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Mastery Basis Points",
            "type": "integer"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          }
        },
        "required": ["objective_id", "mastery_basis_points"],
        "title": "ObjectiveMastery",
        "type": "object"
      },
      "ObjectiveMasteryAggregate": {
        "additionalProperties": false,
        "description": "A cohort's mastery of one objective, according to one named model.\n\nDeliberately not called ``ObjectiveMastery``: M6.3 already publishes a schema\nby that name for *one learner's* mastery, and reusing it would have renamed\nboth in the API and broken the generated client for M6.3.",
        "properties": {
          "measured": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "model_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Model Id",
            "type": "string"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          }
        },
        "required": ["objective_id", "model_id", "measured"],
        "title": "ObjectiveMasteryAggregate",
        "type": "object"
      },
      "ObjectiveResourceDemandSnapshot": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable", "unknown"],
            "title": "Applicability",
            "type": "string"
          },
          "applicability_rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Applicability Rationale",
            "type": "string"
          },
          "cognitive_level": {
            "enum": ["remember", "understand", "apply", "analyze", "evaluate", "create"],
            "title": "Cognitive Level",
            "type": "string"
          },
          "demand_kind": {
            "enum": ["content", "activity", "item", "rubric"],
            "title": "Demand Kind",
            "type": "string"
          },
          "demand_statement": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Demand Statement",
            "type": "string"
          },
          "depth": {
            "enum": ["exposure", "guided", "independent", "transfer"],
            "title": "Depth",
            "type": "string"
          },
          "dimensions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ObjectiveDemandDimension"
            },
            "maxItems": 64,
            "title": "Dimensions",
            "type": "array"
          },
          "resource_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Resource Content Sha256",
            "type": "string"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "resource_kind": {
            "enum": [
              "module",
              "lesson",
              "block",
              "activity",
              "practice",
              "item",
              "assessment",
              "rubric"
            ],
            "title": "Resource Kind",
            "type": "string"
          },
          "resource_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Revision Id",
            "type": "string"
          }
        },
        "required": [
          "resource_id",
          "resource_revision_id",
          "resource_content_sha256",
          "resource_kind",
          "demand_kind",
          "applicability",
          "applicability_rationale",
          "demand_statement",
          "depth",
          "cognitive_level"
        ],
        "title": "ObjectiveResourceDemandSnapshot",
        "type": "object"
      },
      "ObservabilityEventResponse": {
        "properties": {
          "facts": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueFactResponse"
            },
            "title": "Facts",
            "type": "array"
          },
          "href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Href"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "severity": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "enum": ["observed", "running", "succeeded", "failed", "blocked"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "summary", "severity", "status", "owner", "recorded_at"],
        "title": "ObservabilityEventResponse",
        "type": "object"
      },
      "ObservabilityStreamResponse": {
        "properties": {
          "events": {
            "items": {
              "$ref": "#/components/schemas/ObservabilityEventResponse"
            },
            "title": "Events",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/MonitoringPanelMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "primary_label": {
            "title": "Primary Label",
            "type": "string"
          },
          "primary_value": {
            "title": "Primary Value",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Status",
            "type": "string"
          },
          "stream_id": {
            "enum": [
              "build_jobs",
              "tutor_sessions",
              "retrieval_quality",
              "export_jobs",
              "release_gates"
            ],
            "title": "Stream Id",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["stream_id", "title", "status", "summary", "primary_value", "primary_label"],
        "title": "ObservabilityStreamResponse",
        "type": "object"
      },
      "ObservabilitySummaryResponse": {
        "properties": {
          "blocked_release_gates": {
            "minimum": 0.0,
            "title": "Blocked Release Gates",
            "type": "integer"
          },
          "critical_streams": {
            "minimum": 0.0,
            "title": "Critical Streams",
            "type": "integer"
          },
          "events_last_24h": {
            "minimum": 0.0,
            "title": "Events Last 24H",
            "type": "integer"
          },
          "warning_streams": {
            "minimum": 0.0,
            "title": "Warning Streams",
            "type": "integer"
          }
        },
        "required": [
          "critical_streams",
          "warning_streams",
          "events_last_24h",
          "blocked_release_gates"
        ],
        "title": "ObservabilitySummaryResponse",
        "type": "object"
      },
      "ObservationCohorts": {
        "additionalProperties": false,
        "description": "The cohort attributes an observation may carry, and no others.\n\nEach ratified dimension is a named optional field. There is no map, no free\nkey, and no derived value \u2014 so an attribute nobody ratified has nowhere to\narrive, and the engine has no code path that would infer one from behaviour.",
        "properties": {
          "consented_demographic": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consented Demographic"
          },
          "language_support": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language Support"
          },
          "locale_family": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale Family"
          },
          "region": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          }
        },
        "title": "ObservationCohorts",
        "type": "object"
      },
      "ObservedMastery": {
        "additionalProperties": false,
        "properties": {
          "mastered": {
            "title": "Mastered",
            "type": "boolean"
          },
          "model_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Model Id",
            "type": "string"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          }
        },
        "required": ["objective_id", "model_id", "mastered"],
        "title": "ObservedMastery",
        "type": "object"
      },
      "OneRosterClassRecord": {
        "properties": {
          "class_code": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Class Code"
          },
          "course_sourced_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Sourced Id"
          },
          "date_last_modified": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date Last Modified"
          },
          "sourced_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sourced Id",
            "type": "string"
          },
          "status": {
            "default": "active",
            "enum": ["active", "inactive", "tobedeleted"],
            "title": "Status",
            "type": "string"
          },
          "term_sourced_ids": {
            "items": {
              "type": "string"
            },
            "title": "Term Sourced Ids",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["sourced_id", "title"],
        "title": "OneRosterClassRecord",
        "type": "object"
      },
      "OneRosterConflictResponse": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "entity_type": {
            "enum": ["user", "course", "class", "enrollment", "organization"],
            "title": "Entity Type",
            "type": "string"
          },
          "existing_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Existing Value"
          },
          "field": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Field"
          },
          "incoming_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Incoming Value"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "resolution": {
            "title": "Resolution",
            "type": "string"
          },
          "severity": {
            "enum": ["warning", "blocking"],
            "title": "Severity",
            "type": "string"
          },
          "sourced_id": {
            "title": "Sourced Id",
            "type": "string"
          }
        },
        "required": ["severity", "entity_type", "sourced_id", "code", "message", "resolution"],
        "title": "OneRosterConflictResponse",
        "type": "object"
      },
      "OneRosterCourseRecord": {
        "properties": {
          "course_code": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Code"
          },
          "date_last_modified": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date Last Modified"
          },
          "org_sourced_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Org Sourced Id"
          },
          "sourced_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sourced Id",
            "type": "string"
          },
          "status": {
            "default": "active",
            "enum": ["active", "inactive", "tobedeleted"],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["sourced_id", "title"],
        "title": "OneRosterCourseRecord",
        "type": "object"
      },
      "OneRosterEnrollmentRecord": {
        "properties": {
          "begin_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Begin Date"
          },
          "class_sourced_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Class Sourced Id",
            "type": "string"
          },
          "date_last_modified": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date Last Modified"
          },
          "end_date": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "End Date"
          },
          "primary": {
            "default": false,
            "title": "Primary",
            "type": "boolean"
          },
          "role": {
            "enum": [
              "student",
              "teacher",
              "administrator",
              "aide",
              "guardian",
              "parent",
              "proctor"
            ],
            "title": "Role",
            "type": "string"
          },
          "sourced_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sourced Id",
            "type": "string"
          },
          "status": {
            "default": "active",
            "enum": ["active", "inactive", "tobedeleted"],
            "title": "Status",
            "type": "string"
          },
          "user_sourced_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "User Sourced Id",
            "type": "string"
          }
        },
        "required": ["sourced_id", "user_sourced_id", "class_sourced_id", "role"],
        "title": "OneRosterEnrollmentRecord",
        "type": "object"
      },
      "OneRosterGradebookResponse": {
        "description": "What this tenant publishes, and what it could not publish.\n\n`unpublishable_line_items` is not decoration. A grade whose learner this\ntenant's roster has never named cannot become a `result`, and a SIS that\nreceived a short gradebook with no way to tell it was short would record\nthose learners as having done no work.",
        "properties": {
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "connector": {
            "title": "Connector",
            "type": "string"
          },
          "line_items": {
            "items": {
              "$ref": "#/components/schemas/OneRosterLineItemResponse"
            },
            "title": "Line Items",
            "type": "array"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/OneRosterResultResponse"
            },
            "title": "Results",
            "type": "array"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "unpublishable_line_items": {
            "items": {
              "type": "string"
            },
            "title": "Unpublishable Line Items",
            "type": "array"
          }
        },
        "required": ["tenant_id", "connector", "complete"],
        "title": "OneRosterGradebookResponse",
        "type": "object"
      },
      "OneRosterLineItemResponse": {
        "description": "One line item, as OneRoster reads it.",
        "properties": {
          "date_last_modified": {
            "format": "date-time",
            "title": "Date Last Modified",
            "type": "string"
          },
          "result_value_max": {
            "title": "Result Value Max",
            "type": "number"
          },
          "result_value_min": {
            "title": "Result Value Min",
            "type": "number"
          },
          "sourced_id": {
            "title": "Sourced Id",
            "type": "string"
          },
          "status": {
            "enum": ["active", "inactive", "tobedeleted"],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "sourced_id",
          "status",
          "date_last_modified",
          "title",
          "result_value_min",
          "result_value_max"
        ],
        "title": "OneRosterLineItemResponse",
        "type": "object"
      },
      "OneRosterOperationResponse": {
        "properties": {
          "action": {
            "enum": ["create", "update", "deactivate", "skip", "conflict"],
            "title": "Action",
            "type": "string"
          },
          "details": {
            "additionalProperties": true,
            "title": "Details",
            "type": "object"
          },
          "entity_type": {
            "enum": ["user", "course", "class", "enrollment", "organization"],
            "title": "Entity Type",
            "type": "string"
          },
          "sourced_id": {
            "title": "Sourced Id",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "target_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Id"
          }
        },
        "required": ["action", "entity_type", "sourced_id", "summary"],
        "title": "OneRosterOperationResponse",
        "type": "object"
      },
      "OneRosterOrganizationRecord": {
        "description": "One org the SIS asserts.\n\nM10.7.b. Metis has no organisation of its own \u2014 a tenant is not a school \u2014\nso this is kept as what it is: the source's record, under the source's id,\nso a user's `org_sourced_ids` can be CHECKED instead of believed, and so a\ndelta or a `tobedeleted` can reach an org the way it reaches a class.",
        "properties": {
          "date_last_modified": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date Last Modified"
          },
          "identifier": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Identifier"
          },
          "name": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "parent_sourced_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Sourced Id"
          },
          "sourced_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sourced Id",
            "type": "string"
          },
          "status": {
            "default": "active",
            "enum": ["active", "inactive", "tobedeleted"],
            "title": "Status",
            "type": "string"
          },
          "type": {
            "enum": ["department", "school", "district", "local", "state", "national"],
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["sourced_id", "name", "type"],
        "title": "OneRosterOrganizationRecord",
        "type": "object"
      },
      "OneRosterResultResponse": {
        "description": "One learner's score on one line item.",
        "properties": {
          "date_last_modified": {
            "format": "date-time",
            "title": "Date Last Modified",
            "type": "string"
          },
          "line_item_sourced_id": {
            "title": "Line Item Sourced Id",
            "type": "string"
          },
          "score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "score_status": {
            "enum": ["fullyGraded", "notGraded"],
            "title": "Score Status",
            "type": "string"
          },
          "sourced_id": {
            "title": "Sourced Id",
            "type": "string"
          },
          "status": {
            "enum": ["active", "inactive", "tobedeleted"],
            "title": "Status",
            "type": "string"
          },
          "student_sourced_id": {
            "title": "Student Sourced Id",
            "type": "string"
          }
        },
        "required": [
          "sourced_id",
          "status",
          "date_last_modified",
          "line_item_sourced_id",
          "student_sourced_id",
          "score_status"
        ],
        "title": "OneRosterResultResponse",
        "type": "object"
      },
      "OneRosterSyncCounts": {
        "properties": {
          "conflicts": {
            "default": 0,
            "title": "Conflicts",
            "type": "integer"
          },
          "courses_created": {
            "default": 0,
            "title": "Courses Created",
            "type": "integer"
          },
          "courses_updated": {
            "default": 0,
            "title": "Courses Updated",
            "type": "integer"
          },
          "enrollments_created": {
            "default": 0,
            "title": "Enrollments Created",
            "type": "integer"
          },
          "enrollments_deactivated": {
            "default": 0,
            "title": "Enrollments Deactivated",
            "type": "integer"
          },
          "enrollments_updated": {
            "default": 0,
            "title": "Enrollments Updated",
            "type": "integer"
          },
          "organizations_created": {
            "default": 0,
            "title": "Organizations Created",
            "type": "integer"
          },
          "organizations_deactivated": {
            "default": 0,
            "title": "Organizations Deactivated",
            "type": "integer"
          },
          "organizations_updated": {
            "default": 0,
            "title": "Organizations Updated",
            "type": "integer"
          },
          "skipped": {
            "default": 0,
            "title": "Skipped",
            "type": "integer"
          },
          "users_created": {
            "default": 0,
            "title": "Users Created",
            "type": "integer"
          },
          "users_deactivated": {
            "default": 0,
            "title": "Users Deactivated",
            "type": "integer"
          },
          "users_updated": {
            "default": 0,
            "title": "Users Updated",
            "type": "integer"
          }
        },
        "title": "OneRosterSyncCounts",
        "type": "object"
      },
      "OneRosterSyncRequest": {
        "description": "One roster payload from one source system.\n\n`source_system` is the connector: two systems number their sourcedIds\nindependently, so the same sourcedId from two of them is two identities.",
        "properties": {
          "academic_session_sourced_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Academic Session Sourced Id"
          },
          "classes": {
            "items": {
              "$ref": "#/components/schemas/OneRosterClassRecord"
            },
            "minItems": 1,
            "title": "Classes",
            "type": "array"
          },
          "courses": {
            "items": {
              "$ref": "#/components/schemas/OneRosterCourseRecord"
            },
            "title": "Courses",
            "type": "array"
          },
          "dry_run": {
            "default": true,
            "title": "Dry Run",
            "type": "boolean"
          },
          "enrollments": {
            "items": {
              "$ref": "#/components/schemas/OneRosterEnrollmentRecord"
            },
            "title": "Enrollments",
            "type": "array"
          },
          "modified_since": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Modified Since"
          },
          "organizations": {
            "items": {
              "$ref": "#/components/schemas/OneRosterOrganizationRecord"
            },
            "title": "Organizations",
            "type": "array"
          },
          "source_system": {
            "default": "oneroster",
            "maxLength": 120,
            "minLength": 1,
            "title": "Source System",
            "type": "string"
          },
          "tenant_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id"
          },
          "users": {
            "items": {
              "$ref": "#/components/schemas/OneRosterUserRecord"
            },
            "minItems": 1,
            "title": "Users",
            "type": "array"
          }
        },
        "required": ["users", "classes"],
        "title": "OneRosterSyncRequest",
        "type": "object"
      },
      "OneRosterSyncResponse": {
        "properties": {
          "academic_session_sourced_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Academic Session Sourced Id"
          },
          "applied": {
            "title": "Applied",
            "type": "boolean"
          },
          "audit_id": {
            "title": "Audit Id",
            "type": "string"
          },
          "blocked": {
            "title": "Blocked",
            "type": "boolean"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/OneRosterConflictResponse"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "counts": {
            "$ref": "#/components/schemas/OneRosterSyncCounts"
          },
          "dry_run": {
            "title": "Dry Run",
            "type": "boolean"
          },
          "fields_not_carried": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Fields Not Carried",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "operations": {
            "items": {
              "$ref": "#/components/schemas/OneRosterOperationResponse"
            },
            "title": "Operations",
            "type": "array"
          },
          "skipped_unmodified": {
            "default": 0,
            "minimum": 0.0,
            "title": "Skipped Unmodified",
            "type": "integer"
          },
          "source_system": {
            "title": "Source System",
            "type": "string"
          },
          "watermark": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Watermark"
          }
        },
        "required": [
          "dry_run",
          "applied",
          "blocked",
          "audit_id",
          "source_system",
          "counts",
          "conflicts",
          "operations",
          "generated_at"
        ],
        "title": "OneRosterSyncResponse",
        "type": "object"
      },
      "OneRosterUserRecord": {
        "properties": {
          "date_last_modified": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date Last Modified"
          },
          "email": {
            "anyOf": [
              {
                "format": "email",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "enabled_user": {
            "default": true,
            "title": "Enabled User",
            "type": "boolean"
          },
          "family_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Family Name",
            "type": "string"
          },
          "given_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Given Name",
            "type": "string"
          },
          "lti_platform_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lti Platform Id"
          },
          "lti_user_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lti User Id"
          },
          "org_sourced_ids": {
            "items": {
              "type": "string"
            },
            "title": "Org Sourced Ids",
            "type": "array"
          },
          "role": {
            "enum": [
              "student",
              "teacher",
              "administrator",
              "aide",
              "guardian",
              "parent",
              "proctor"
            ],
            "title": "Role",
            "type": "string"
          },
          "sourced_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sourced Id",
            "type": "string"
          },
          "status": {
            "default": "active",
            "enum": ["active", "inactive", "tobedeleted"],
            "title": "Status",
            "type": "string"
          },
          "username": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Username"
          }
        },
        "required": ["sourced_id", "given_name", "family_name", "role"],
        "title": "OneRosterUserRecord",
        "type": "object"
      },
      "OpenThreadRequest": {
        "additionalProperties": false,
        "description": "A thread as the caller asks for it. The author is the caller, not a field.",
        "properties": {
          "anchor": {
            "discriminator": {
              "mapping": {
                "entity": "#/components/schemas/EntityAnchor",
                "field": "#/components/schemas/FieldAnchor",
                "item_option": "#/components/schemas/ItemOptionAnchor",
                "region": "#/components/schemas/RegionAnchor",
                "rubric_cell": "#/components/schemas/RubricCellAnchor",
                "text": "#/components/schemas/TextAnchor",
                "timecode": "#/components/schemas/TimecodeAnchor"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/EntityAnchor"
              },
              {
                "$ref": "#/components/schemas/FieldAnchor"
              },
              {
                "$ref": "#/components/schemas/TextAnchor"
              },
              {
                "$ref": "#/components/schemas/RegionAnchor"
              },
              {
                "$ref": "#/components/schemas/TimecodeAnchor"
              },
              {
                "$ref": "#/components/schemas/ItemOptionAnchor"
              },
              {
                "$ref": "#/components/schemas/RubricCellAnchor"
              }
            ],
            "title": "Anchor"
          },
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommentAttachment"
            },
            "maxItems": 10,
            "title": "Attachments",
            "type": "array"
          },
          "body": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "guard": {
            "$ref": "#/components/schemas/SubjectGuard",
            "default": {
              "assessment_window_open": false,
              "is_learner_work": false,
              "source_is_private": false
            }
          },
          "mentions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommentMention"
            },
            "maxItems": 20,
            "title": "Mentions",
            "type": "array"
          },
          "permission": {
            "$ref": "#/components/schemas/ObjectPermission"
          },
          "subject": {
            "$ref": "#/components/schemas/CommentSubject"
          },
          "thread_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Thread Id",
            "type": "string"
          },
          "visibility": {
            "enum": ["author_only", "reviewers", "content_team", "institution"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": ["thread_id", "subject", "anchor", "visibility", "body", "permission"],
        "title": "OpenThreadRequest",
        "type": "object"
      },
      "OperationAffordance": {
        "additionalProperties": false,
        "description": "One operation, and where a person may perform it.",
        "properties": {
          "operation": {
            "enum": [
              "inspect",
              "add",
              "link",
              "unlink",
              "edit",
              "delete",
              "reorder",
              "navigate",
              "filter",
              "compare"
            ],
            "title": "Operation",
            "type": "string"
          },
          "permitted": {
            "default": true,
            "title": "Permitted",
            "type": "boolean"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 300,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "surfaces": {
            "items": {
              "enum": ["canvas", "tree", "list", "table", "form"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Surfaces",
            "type": "array"
          }
        },
        "required": ["operation", "surfaces"],
        "title": "OperationAffordance",
        "type": "object"
      },
      "OperationConflict": {
        "additionalProperties": false,
        "description": "Two systems disagreeing about one record.",
        "properties": {
          "code": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "existing_value": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Existing Value"
          },
          "field": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Field"
          },
          "incoming_value": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Incoming Value"
          },
          "resolution": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Resolution",
            "type": "string"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "severity": {
            "enum": ["warning", "blocking"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "severity", "resource_id", "resolution"],
        "title": "OperationConflict",
        "type": "object"
      },
      "OperationReceipt": {
        "additionalProperties": false,
        "description": "What was read back, and from where.\n\n`authority` names the system the read-back came from. A receipt whose\nauthority is this service has compared our record with our record.",
        "properties": {
          "authority": {
            "enum": ["far_side", "self"],
            "title": "Authority",
            "type": "string"
          },
          "expected_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Sha256",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Observed Sha256",
            "type": "string"
          },
          "read_back_at": {
            "format": "date-time",
            "title": "Read Back At",
            "type": "string"
          }
        },
        "required": ["read_back_at", "authority", "observed_sha256", "expected_sha256", "matched"],
        "title": "OperationReceipt",
        "type": "object"
      },
      "OperationRequest": {
        "additionalProperties": false,
        "description": "One attempt to do something, however it arrived.\n\n``modality``, ``route`` and ``requested_tool_id`` are recorded because an\noperator needs to see how the ask arrived \u2014 they are *not* inputs to the\ndisposition, which is the property that closes the bypass classes.",
        "properties": {
          "actor_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "assessment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "attempt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Attempt Id",
            "type": "string"
          },
          "checkpoint": {
            "enum": ["tool_request", "stream_turn", "deep_link", "session_resume"],
            "title": "Checkpoint",
            "type": "string"
          },
          "institution_policy_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Institution Policy Revision Sha256",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "modality": {
            "enum": ["text", "live_voice", "live_avatar", "screen_reader", "api"],
            "title": "Modality",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "requested_operation": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Requested Operation",
            "type": "string"
          },
          "requested_tool_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Requested Tool Id"
          },
          "route": {
            "maxLength": 200,
            "pattern": "^/[A-Za-z0-9._~:@!$&'()*+,;=/-]{0,199}$",
            "title": "Route",
            "type": "string"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          }
        },
        "required": [
          "request_id",
          "checkpoint",
          "requested_operation",
          "modality",
          "route",
          "assessment_id",
          "item_id",
          "attempt_id",
          "actor_id",
          "session_id",
          "institution_policy_revision_sha256",
          "observed_at"
        ],
        "title": "OperationRequest",
        "type": "object"
      },
      "OperationResolution": {
        "additionalProperties": false,
        "description": "What the requested name actually resolves to.\n\n``canonical_operation`` is ``None`` when the alias table does not recognise\nthe name. That denies \u2014 but it is recorded as unrecognised rather than\nguessed into the strictest class, because a fabricated classification in the\naudit trail is worse than an honest gap.",
        "properties": {
          "canonical_operation": {
            "anyOf": [
              {
                "enum": [
                  "tutor_hint",
                  "tutor_explanation",
                  "tutor_direct_answer",
                  "visualization_render",
                  "visualization_probe",
                  "code_execution",
                  "symbolic_execution",
                  "source_lookup",
                  "source_full_text",
                  "answer_reveal",
                  "answer_check",
                  "accessibility_screen_reader",
                  "accessibility_extra_time"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical Operation"
          },
          "detail": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "requested_operation": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Requested Operation",
            "type": "string"
          },
          "resolved_via_alias": {
            "title": "Resolved Via Alias",
            "type": "boolean"
          }
        },
        "required": ["requested_operation", "canonical_operation", "resolved_via_alias", "detail"],
        "title": "OperationResolution",
        "type": "object"
      },
      "OperationResource": {
        "additionalProperties": false,
        "description": "One thing an operation touched, and how it went.",
        "properties": {
          "detail": {
            "default": "",
            "maxLength": 2000,
            "title": "Detail",
            "type": "string"
          },
          "mapped_to": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mapped To"
          },
          "resource_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Resource Id",
            "type": "string"
          },
          "resource_kind": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Resource Kind",
            "type": "string"
          },
          "state": {
            "enum": ["applied", "skipped", "failed", "unknown"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["resource_id", "resource_kind", "state"],
        "title": "OperationResource",
        "type": "object"
      },
      "OperationView": {
        "additionalProperties": false,
        "description": "One run, with what it touched and what may be done about it.",
        "properties": {
          "applied": {
            "default": 0,
            "title": "Applied",
            "type": "integer"
          },
          "available_recoveries": {
            "default": [],
            "items": {
              "enum": ["retry", "replay", "reconcile"],
              "type": "string"
            },
            "title": "Available Recoveries",
            "type": "array"
          },
          "blocking_conflicts": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Blocking Conflicts",
            "type": "array"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "connection_id": {
            "title": "Connection Id",
            "type": "string"
          },
          "diagnostics": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Diagnostics",
            "type": "array"
          },
          "expected_version": {
            "title": "Expected Version",
            "type": "integer"
          },
          "failed": {
            "default": 0,
            "title": "Failed",
            "type": "integer"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "kind": {
            "enum": [
              "roster_sync",
              "deep_link",
              "launch",
              "grade_push",
              "grade_correction",
              "export",
              "webhook_delivery",
              "credential_event"
            ],
            "title": "Kind",
            "type": "string"
          },
          "operation_id": {
            "title": "Operation Id",
            "type": "string"
          },
          "privacy_class": {
            "enum": ["public", "pseudonymous", "identifying", "sensitive"],
            "title": "Privacy Class",
            "type": "string"
          },
          "receipt_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receipt Summary"
          },
          "redactions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Redactions",
            "type": "array"
          },
          "refused_recoveries": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refused Recoveries",
            "type": "array"
          },
          "requested_by": {
            "title": "Requested By",
            "type": "string"
          },
          "requested_by_role": {
            "title": "Requested By Role",
            "type": "string"
          },
          "skipped": {
            "default": 0,
            "title": "Skipped",
            "type": "integer"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "state": {
            "enum": ["queued", "running", "succeeded", "partial", "failed", "unknown"],
            "title": "State",
            "type": "string"
          },
          "unknown": {
            "default": 0,
            "title": "Unknown",
            "type": "integer"
          },
          "warnings": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "operation_id",
          "connection_id",
          "kind",
          "state",
          "requested_by",
          "requested_by_role",
          "started_at",
          "idempotency_key",
          "expected_version",
          "privacy_class"
        ],
        "title": "OperationView",
        "type": "object"
      },
      "OperationalColumn": {
        "additionalProperties": false,
        "description": "A typed column, its role, and the one place its value comes from.",
        "properties": {
          "column": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Column",
            "type": "string"
          },
          "nullable": {
            "title": "Nullable",
            "type": "boolean"
          },
          "role": {
            "enum": [
              "tenant",
              "identity",
              "owner",
              "state",
              "maturity",
              "timestamp",
              "lock",
              "queue",
              "freshness",
              "risk",
              "visibility",
              "integrity",
              "content"
            ],
            "title": "Role",
            "type": "string"
          },
          "source_field": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Source Field",
            "type": "string"
          },
          "sql_type": {
            "enum": ["uuid", "text", "timestamptz", "integer", "boolean"],
            "title": "Sql Type",
            "type": "string"
          }
        },
        "required": ["column", "role", "sql_type", "nullable", "source_field"],
        "title": "OperationalColumn",
        "type": "object"
      },
      "OperatorBuildEvidenceResponse": {
        "properties": {
          "artifact_id": {
            "title": "Artifact Id",
            "type": "string"
          },
          "assessment_support_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Assessment Support Percent",
            "type": "integer"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "enrollments": {
            "minimum": 0.0,
            "title": "Enrollments",
            "type": "integer"
          },
          "escalated_sessions": {
            "minimum": 0.0,
            "title": "Escalated Sessions",
            "type": "integer"
          },
          "evidence_notes": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Notes",
            "type": "array"
          },
          "grounded_lesson_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Grounded Lesson Percent",
            "type": "integer"
          },
          "instructor_name": {
            "title": "Instructor Name",
            "type": "string"
          },
          "review_status": {
            "title": "Review Status",
            "type": "string"
          },
          "source_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Source Coverage Percent",
            "type": "integer"
          }
        },
        "required": [
          "artifact_id",
          "course_id",
          "course_title",
          "instructor_name",
          "review_status",
          "source_coverage_percent",
          "grounded_lesson_percent",
          "assessment_support_percent",
          "enrollments",
          "escalated_sessions"
        ],
        "title": "OperatorBuildEvidenceResponse",
        "type": "object"
      },
      "OperatorCostFootprintResponse": {
        "properties": {
          "average_cost_per_session": {
            "minimum": 0.0,
            "title": "Average Cost Per Session",
            "type": "number"
          },
          "cost_by_model": {
            "items": {
              "$ref": "#/components/schemas/OperatorModelCostResponse"
            },
            "title": "Cost By Model",
            "type": "array"
          },
          "expensive_sessions": {
            "items": {
              "$ref": "#/components/schemas/OperatorSessionCostResponse"
            },
            "title": "Expensive Sessions",
            "type": "array"
          },
          "highest_cost_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Highest Cost Model"
          },
          "total_estimated_cost": {
            "minimum": 0.0,
            "title": "Total Estimated Cost",
            "type": "number"
          },
          "total_tokens_used": {
            "minimum": 0.0,
            "title": "Total Tokens Used",
            "type": "integer"
          }
        },
        "required": ["total_estimated_cost", "total_tokens_used", "average_cost_per_session"],
        "title": "OperatorCostFootprintResponse",
        "type": "object"
      },
      "OperatorHandoffView": {
        "additionalProperties": false,
        "description": "An operation this surface refuses, and where it is done instead.",
        "properties": {
          "operation": {
            "title": "Operation",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "route": {
            "title": "Route",
            "type": "string"
          }
        },
        "required": ["operation", "route", "reason"],
        "title": "OperatorHandoffView",
        "type": "object"
      },
      "OperatorInspectionResponse": {
        "properties": {
          "build_evidence": {
            "items": {
              "$ref": "#/components/schemas/OperatorBuildEvidenceResponse"
            },
            "title": "Build Evidence",
            "type": "array"
          },
          "cost_footprints": {
            "$ref": "#/components/schemas/OperatorCostFootprintResponse"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "retrieval_inspections": {
            "items": {
              "$ref": "#/components/schemas/OperatorRetrievalInspectionResponse"
            },
            "title": "Retrieval Inspections",
            "type": "array"
          },
          "telemetry": {
            "$ref": "#/components/schemas/OperatorTelemetrySummaryResponse"
          },
          "tutor_transcripts": {
            "items": {
              "$ref": "#/components/schemas/OperatorTranscriptResponse"
            },
            "title": "Tutor Transcripts",
            "type": "array"
          }
        },
        "required": ["telemetry", "cost_footprints", "generated_at"],
        "title": "OperatorInspectionResponse",
        "type": "object"
      },
      "OperatorModelCostResponse": {
        "properties": {
          "estimated_cost": {
            "minimum": 0.0,
            "title": "Estimated Cost",
            "type": "number"
          },
          "model_name": {
            "title": "Model Name",
            "type": "string"
          },
          "session_count": {
            "minimum": 0.0,
            "title": "Session Count",
            "type": "integer"
          },
          "tokens_used": {
            "minimum": 0.0,
            "title": "Tokens Used",
            "type": "integer"
          }
        },
        "required": ["model_name", "session_count", "tokens_used", "estimated_cost"],
        "title": "OperatorModelCostResponse",
        "type": "object"
      },
      "OperatorRetrievalChunkResponse": {
        "properties": {
          "chunk_id": {
            "title": "Chunk Id",
            "type": "string"
          },
          "citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Citation Ids",
            "type": "array"
          },
          "document_id": {
            "title": "Document Id",
            "type": "string"
          },
          "document_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Title"
          },
          "linked_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Linked Concept Ids",
            "type": "array"
          },
          "matched_terms": {
            "items": {
              "type": "string"
            },
            "title": "Matched Terms",
            "type": "array"
          },
          "score": {
            "default": 0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          },
          "source_section_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Section Id"
          },
          "text_preview": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Preview"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["chunk_id", "document_id", "source_item_id", "title"],
        "title": "OperatorRetrievalChunkResponse",
        "type": "object"
      },
      "OperatorRetrievalGraphNodeResponse": {
        "properties": {
          "concept_id": {
            "title": "Concept Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "linked_chunk_ids": {
            "items": {
              "type": "string"
            },
            "title": "Linked Chunk Ids",
            "type": "array"
          },
          "match_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Match Reason"
          },
          "score": {
            "default": 0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["concept_id", "label"],
        "title": "OperatorRetrievalGraphNodeResponse",
        "type": "object"
      },
      "OperatorRetrievalInspectionResponse": {
        "properties": {
          "chunk_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Chunk Count",
            "type": "integer"
          },
          "chunks": {
            "items": {
              "$ref": "#/components/schemas/OperatorRetrievalChunkResponse"
            },
            "title": "Chunks",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "graph_applied": {
            "default": false,
            "title": "Graph Applied",
            "type": "boolean"
          },
          "graph_node_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Graph Node Count",
            "type": "integer"
          },
          "graph_nodes": {
            "items": {
              "$ref": "#/components/schemas/OperatorRetrievalGraphNodeResponse"
            },
            "title": "Graph Nodes",
            "type": "array"
          },
          "inspection_id": {
            "title": "Inspection Id",
            "type": "string"
          },
          "learner_name": {
            "title": "Learner Name",
            "type": "string"
          },
          "message_id": {
            "title": "Message Id",
            "type": "string"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "query_expansions": {
            "items": {
              "type": "string"
            },
            "title": "Query Expansions",
            "type": "array"
          },
          "query_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Query Id"
          },
          "result_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Result Count",
            "type": "integer"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "source_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Source Count",
            "type": "integer"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/OperatorRetrievalSourceResponse"
            },
            "title": "Sources",
            "type": "array"
          },
          "strategy": {
            "title": "Strategy",
            "type": "string"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "inspection_id",
          "session_id",
          "message_id",
          "learner_name",
          "topic",
          "query",
          "strategy",
          "created_at"
        ],
        "title": "OperatorRetrievalInspectionResponse",
        "type": "object"
      },
      "OperatorRetrievalSourceResponse": {
        "properties": {
          "average_score": {
            "default": 0,
            "minimum": 0.0,
            "title": "Average Score",
            "type": "number"
          },
          "chunk_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Chunk Count",
            "type": "integer"
          },
          "chunk_ids": {
            "items": {
              "type": "string"
            },
            "title": "Chunk Ids",
            "type": "array"
          },
          "citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Citation Ids",
            "type": "array"
          },
          "document_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Title"
          },
          "linked_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Linked Concept Ids",
            "type": "array"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          },
          "source_section_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Section Id"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "top_score": {
            "default": 0,
            "minimum": 0.0,
            "title": "Top Score",
            "type": "number"
          }
        },
        "required": ["source_item_id", "title"],
        "title": "OperatorRetrievalSourceResponse",
        "type": "object"
      },
      "OperatorSessionCostResponse": {
        "properties": {
          "ai_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Model"
          },
          "estimated_cost": {
            "minimum": 0.0,
            "title": "Estimated Cost",
            "type": "number"
          },
          "last_updated": {
            "format": "date-time",
            "title": "Last Updated",
            "type": "string"
          },
          "learner_name": {
            "title": "Learner Name",
            "type": "string"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "tokens_used": {
            "minimum": 0.0,
            "title": "Tokens Used",
            "type": "integer"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "learner_name",
          "topic",
          "status",
          "tokens_used",
          "estimated_cost",
          "last_updated"
        ],
        "title": "OperatorSessionCostResponse",
        "type": "object"
      },
      "OperatorTelemetrySummaryResponse": {
        "properties": {
          "active_learners": {
            "minimum": 0.0,
            "title": "Active Learners",
            "type": "integer"
          },
          "active_tutoring_sessions": {
            "minimum": 0.0,
            "title": "Active Tutoring Sessions",
            "type": "integer"
          },
          "assessment_completion_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Assessment Completion Rate",
            "type": "number"
          },
          "at_risk_learners": {
            "minimum": 0.0,
            "title": "At Risk Learners",
            "type": "integer"
          },
          "average_course_progress": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Average Course Progress",
            "type": "number"
          },
          "recent_achievements": {
            "minimum": 0.0,
            "title": "Recent Achievements",
            "type": "integer"
          }
        },
        "required": [
          "active_learners",
          "at_risk_learners",
          "average_course_progress",
          "assessment_completion_rate",
          "active_tutoring_sessions",
          "recent_achievements"
        ],
        "title": "OperatorTelemetrySummaryResponse",
        "type": "object"
      },
      "OperatorTranscriptMessageResponse": {
        "properties": {
          "content": {
            "title": "Content",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "message_type": {
            "title": "Message Type",
            "type": "string"
          },
          "sender_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sender Name"
          },
          "sender_type": {
            "title": "Sender Type",
            "type": "string"
          },
          "tokens_used": {
            "minimum": 0.0,
            "title": "Tokens Used",
            "type": "integer"
          }
        },
        "required": ["id", "sender_type", "content", "message_type", "tokens_used", "created_at"],
        "title": "OperatorTranscriptMessageResponse",
        "type": "object"
      },
      "OperatorTranscriptResponse": {
        "properties": {
          "ai_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Model"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "escalated": {
            "default": false,
            "title": "Escalated",
            "type": "boolean"
          },
          "estimated_cost": {
            "minimum": 0.0,
            "title": "Estimated Cost",
            "type": "number"
          },
          "latest_message_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Message At"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "learner_name": {
            "title": "Learner Name",
            "type": "string"
          },
          "message_count": {
            "minimum": 0.0,
            "title": "Message Count",
            "type": "integer"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/OperatorTranscriptMessageResponse"
            },
            "title": "Messages",
            "type": "array"
          },
          "satisfaction_rating": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Satisfaction Rating"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "tokens_used": {
            "minimum": 0.0,
            "title": "Tokens Used",
            "type": "integer"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          },
          "tutor_type": {
            "title": "Tutor Type",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "learner_id",
          "learner_name",
          "topic",
          "status",
          "tutor_type",
          "message_count",
          "tokens_used",
          "estimated_cost"
        ],
        "title": "OperatorTranscriptResponse",
        "type": "object"
      },
      "OptOutRegister": {
        "additionalProperties": false,
        "description": "Subjects who have opted out, held as digests.\n\nThere is no field here holding an identifier. An opt-out register naming the\npeople who opted out would be a list of exactly the people who asked not to\nbe listed.",
        "properties": {
          "as_of": {
            "format": "date-time",
            "title": "As Of",
            "type": "string"
          },
          "subject_digests": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 100000,
            "title": "Subject Digests",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "as_of"],
        "title": "OptOutRegister",
        "type": "object"
      },
      "OptionSelection": {
        "additionalProperties": false,
        "properties": {
          "is_key": {
            "title": "Is Key",
            "type": "boolean"
          },
          "option_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Option Id",
            "type": "string"
          },
          "selected": {
            "$ref": "#/components/schemas/MeasuredValue"
          }
        },
        "required": ["option_id", "is_key", "selected"],
        "title": "OptionSelection",
        "type": "object"
      },
      "OrderAmbiguity": {
        "additionalProperties": false,
        "description": "Two events the ledger will not put in an order.\n\nBoth systems are named, because the pair that matters most here comes from\ntwo of them: one source disagreeing with itself is a bug somebody can go\nand fix, and two sources agreeing on an instant is the ordinary case of a\ngrade arriving twice by different roads.",
        "properties": {
          "detail": {
            "maxLength": 300,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "first_source_event_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "First Source Event Id",
            "type": "string"
          },
          "first_system": {
            "enum": ["scoring_engine", "manual_entry", "lti_ags", "oneroster", "import"],
            "title": "First System",
            "type": "string"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "second_source_event_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Second Source Event Id",
            "type": "string"
          },
          "second_system": {
            "enum": ["scoring_engine", "manual_entry", "lti_ags", "oneroster", "import"],
            "title": "Second System",
            "type": "string"
          }
        },
        "required": [
          "first_source_event_id",
          "second_source_event_id",
          "first_system",
          "second_system",
          "occurred_at",
          "detail"
        ],
        "title": "OrderAmbiguity",
        "type": "object"
      },
      "OutcomeRequest": {
        "additionalProperties": false,
        "properties": {
          "gate": {
            "$ref": "#/components/schemas/HumanGate"
          }
        },
        "required": ["gate"],
        "title": "OutcomeRequest",
        "type": "object"
      },
      "OutcomeStateCounts": {
        "additionalProperties": false,
        "properties": {
          "advisory_count": {
            "minimum": 0.0,
            "title": "Advisory Count",
            "type": "integer"
          },
          "error_count": {
            "minimum": 0.0,
            "title": "Error Count",
            "type": "integer"
          },
          "fail_count": {
            "minimum": 0.0,
            "title": "Fail Count",
            "type": "integer"
          },
          "insufficient_data_count": {
            "minimum": 0.0,
            "title": "Insufficient Data Count",
            "type": "integer"
          },
          "manual_review_count": {
            "minimum": 0.0,
            "title": "Manual Review Count",
            "type": "integer"
          },
          "not_applicable_count": {
            "minimum": 0.0,
            "title": "Not Applicable Count",
            "type": "integer"
          },
          "pass_count": {
            "minimum": 0.0,
            "title": "Pass Count",
            "type": "integer"
          },
          "stale_count": {
            "minimum": 0.0,
            "title": "Stale Count",
            "type": "integer"
          },
          "unavailable_count": {
            "minimum": 0.0,
            "title": "Unavailable Count",
            "type": "integer"
          },
          "unknown_count": {
            "minimum": 0.0,
            "title": "Unknown Count",
            "type": "integer"
          }
        },
        "required": [
          "pass_count",
          "fail_count",
          "advisory_count",
          "manual_review_count",
          "not_applicable_count",
          "insufficient_data_count",
          "unavailable_count",
          "error_count",
          "stale_count",
          "unknown_count"
        ],
        "title": "OutcomeStateCounts",
        "type": "object"
      },
      "OutcomeStateDefinition": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 500,
            "minLength": 12,
            "title": "Description",
            "type": "string"
          },
          "label": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Label",
            "type": "string"
          },
          "mandatory_effect": {
            "enum": ["satisfied", "advisory", "blocked"],
            "title": "Mandatory Effect",
            "type": "string"
          },
          "remediation_required": {
            "title": "Remediation Required",
            "type": "boolean"
          },
          "required_fields": {
            "items": {
              "enum": [
                "reason",
                "evidence",
                "uncertainty",
                "sample",
                "applicability",
                "freshness",
                "remediation"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 6,
            "title": "Required Fields",
            "type": "array"
          },
          "state": {
            "enum": [
              "pass",
              "fail",
              "advisory",
              "manual_review",
              "not_applicable",
              "insufficient_data",
              "unavailable",
              "error",
              "stale",
              "unknown"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "label",
          "description",
          "mandatory_effect",
          "required_fields",
          "remediation_required"
        ],
        "title": "OutcomeStateDefinition",
        "type": "object"
      },
      "OutcomeStateVocabulary": {
        "additionalProperties": false,
        "properties": {
          "insufficient_data_never_passes": {
            "const": true,
            "default": true,
            "title": "Insufficient Data Never Passes",
            "type": "boolean"
          },
          "mandatory_not_applicable_never_passes": {
            "const": true,
            "default": true,
            "title": "Mandatory Not Applicable Never Passes",
            "type": "boolean"
          },
          "schema_version": {
            "const": "5.17.0",
            "default": "5.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "states": {
            "items": {
              "$ref": "#/components/schemas/OutcomeStateDefinition"
            },
            "maxItems": 10,
            "minItems": 10,
            "title": "States",
            "type": "array"
          },
          "transitions": {
            "items": {
              "$ref": "#/components/schemas/OutcomeTransitionPolicy"
            },
            "minItems": 7,
            "title": "Transitions",
            "type": "array"
          },
          "unavailable_never_passes": {
            "const": true,
            "default": true,
            "title": "Unavailable Never Passes",
            "type": "boolean"
          },
          "unknown_never_passes": {
            "const": true,
            "default": true,
            "title": "Unknown Never Passes",
            "type": "boolean"
          },
          "vocabulary_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Vocabulary Sha256",
            "type": "string"
          }
        },
        "required": ["states", "transitions", "vocabulary_sha256"],
        "title": "OutcomeStateVocabulary",
        "type": "object"
      },
      "OutcomeTransitionPolicy": {
        "additionalProperties": false,
        "properties": {
          "cause": {
            "enum": [
              "initial_evaluation",
              "policy_recompute",
              "new_measurement",
              "freshness_expiry",
              "evaluator_failure",
              "evaluator_recovery",
              "manual_review"
            ],
            "title": "Cause",
            "type": "string"
          },
          "from_states": {
            "items": {
              "enum": [
                "pass",
                "fail",
                "advisory",
                "manual_review",
                "not_applicable",
                "insufficient_data",
                "unavailable",
                "error",
                "stale",
                "unknown"
              ],
              "type": "string"
            },
            "title": "From States",
            "type": "array"
          },
          "measurement_identity_change": {
            "enum": ["required", "forbidden", "optional"],
            "title": "Measurement Identity Change",
            "type": "string"
          },
          "rationale": {
            "maxLength": 500,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "to_states": {
            "items": {
              "enum": [
                "pass",
                "fail",
                "advisory",
                "manual_review",
                "not_applicable",
                "insufficient_data",
                "unavailable",
                "error",
                "stale",
                "unknown"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "To States",
            "type": "array"
          }
        },
        "required": [
          "cause",
          "from_states",
          "to_states",
          "measurement_identity_change",
          "rationale"
        ],
        "title": "OutcomeTransitionPolicy",
        "type": "object"
      },
      "OutcomeTransitionWitness": {
        "additionalProperties": false,
        "properties": {
          "cause": {
            "enum": [
              "initial_evaluation",
              "policy_recompute",
              "new_measurement",
              "freshness_expiry",
              "evaluator_failure",
              "evaluator_recovery",
              "manual_review"
            ],
            "title": "Cause",
            "type": "string"
          },
          "current_state": {
            "enum": [
              "pass",
              "fail",
              "advisory",
              "manual_review",
              "not_applicable",
              "insufficient_data",
              "unavailable",
              "error",
              "stale",
              "unknown"
            ],
            "title": "Current State",
            "type": "string"
          },
          "measurement_identity_changed": {
            "title": "Measurement Identity Changed",
            "type": "boolean"
          },
          "permitted": {
            "const": true,
            "default": true,
            "title": "Permitted",
            "type": "boolean"
          },
          "previous_state": {
            "anyOf": [
              {
                "enum": [
                  "pass",
                  "fail",
                  "advisory",
                  "manual_review",
                  "not_applicable",
                  "insufficient_data",
                  "unavailable",
                  "error",
                  "stale",
                  "unknown"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous State"
          },
          "previous_verdict_id": {
            "anyOf": [
              {
                "maxLength": 180,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Verdict Id"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["cause", "current_state", "measurement_identity_changed", "rationale"],
        "title": "OutcomeTransitionWitness",
        "type": "object"
      },
      "OutlineDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["select", "reject", "merge", "fork"],
            "title": "Action",
            "type": "string"
          },
          "contributions": {
            "items": {
              "$ref": "#/components/schemas/OutlineVariantContribution"
            },
            "maxItems": 6,
            "title": "Contributions",
            "type": "array"
          },
          "derived_variant": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OutlineVariantDraft"
              },
              {
                "type": "null"
              }
            ]
          },
          "expected_variants": {
            "items": {
              "$ref": "#/components/schemas/OutlineDecisionVariantExpectation"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Expected Variants",
            "type": "array"
          },
          "expected_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Workspace Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": [
          "action",
          "idempotency_key",
          "expected_workspace_sha256",
          "expected_variants",
          "rationale"
        ],
        "title": "OutlineDecisionRequest",
        "type": "object"
      },
      "OutlineDecisionVariantExpectation": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          },
          "variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": ["variant_id", "content_sha256", "validation_sha256"],
        "title": "OutlineDecisionVariantExpectation",
        "type": "object"
      },
      "OutlineDraftLesson": {
        "additionalProperties": false,
        "properties": {
          "assessment_types": {
            "items": {
              "enum": ["formative", "summative", "diagnostic", "authentic"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Assessment Types",
            "type": "array"
          },
          "client_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,159}$",
            "title": "Client Key",
            "type": "string"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "estimated_minutes": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Estimated Minutes",
            "type": "integer"
          },
          "modality": {
            "enum": [
              "instruction",
              "reading",
              "discussion",
              "practice",
              "project",
              "lab",
              "simulation",
              "assessment"
            ],
            "title": "Modality",
            "type": "string"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/OutlineDraftObjective"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "prerequisite_lesson_keys": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Prerequisite Lesson Keys",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "client_key",
          "title",
          "description",
          "estimated_minutes",
          "modality",
          "objectives"
        ],
        "title": "OutlineDraftLesson",
        "type": "object"
      },
      "OutlineDraftModule": {
        "additionalProperties": false,
        "properties": {
          "client_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,159}$",
            "title": "Client Key",
            "type": "string"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/OutlineDraftLesson"
            },
            "maxItems": 24,
            "minItems": 1,
            "title": "Lessons",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["client_key", "title", "description", "lessons"],
        "title": "OutlineDraftModule",
        "type": "object"
      },
      "OutlineDraftObjective": {
        "additionalProperties": false,
        "properties": {
          "client_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,159}$",
            "title": "Client Key",
            "type": "string"
          },
          "curriculum_objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Curriculum Objective Ids",
            "type": "array"
          },
          "standard_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Standard Codes",
            "type": "array"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["client_key", "statement", "curriculum_objective_ids"],
        "title": "OutlineDraftObjective",
        "type": "object"
      },
      "OutlineGenerationBudgetConfirmation": {
        "additionalProperties": false,
        "properties": {
          "confirmed": {
            "const": true,
            "title": "Confirmed",
            "type": "boolean"
          },
          "confirmed_at": {
            "format": "date-time",
            "title": "Confirmed At",
            "type": "string"
          },
          "confirmed_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Confirmed By",
            "type": "string"
          },
          "confirmed_role": {
            "enum": ["instructor", "admin"],
            "title": "Confirmed Role",
            "type": "string"
          },
          "currency": {
            "pattern": "^[A-Z]{3}$",
            "title": "Currency",
            "type": "string"
          },
          "estimated_cost_minor_units": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Estimated Cost Minor Units",
            "type": "integer"
          },
          "maximum_cost_minor_units": {
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Maximum Cost Minor Units",
            "type": "integer"
          },
          "pricing_basis": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Pricing Basis",
            "type": "string"
          },
          "pricing_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Pricing Version",
            "type": "string"
          }
        },
        "required": [
          "currency",
          "estimated_cost_minor_units",
          "maximum_cost_minor_units",
          "pricing_basis",
          "pricing_version",
          "confirmed",
          "confirmed_by",
          "confirmed_role",
          "confirmed_at"
        ],
        "title": "OutlineGenerationBudgetConfirmation",
        "type": "object"
      },
      "OutlineGenerationBudgetRequest": {
        "additionalProperties": false,
        "properties": {
          "confirmed": {
            "const": true,
            "title": "Confirmed",
            "type": "boolean"
          },
          "currency": {
            "pattern": "^[A-Z]{3}$",
            "title": "Currency",
            "type": "string"
          },
          "estimated_cost_minor_units": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Estimated Cost Minor Units",
            "type": "integer"
          },
          "maximum_cost_minor_units": {
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Maximum Cost Minor Units",
            "type": "integer"
          },
          "pricing_basis": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Pricing Basis",
            "type": "string"
          },
          "pricing_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Pricing Version",
            "type": "string"
          }
        },
        "required": [
          "currency",
          "estimated_cost_minor_units",
          "maximum_cost_minor_units",
          "pricing_basis",
          "pricing_version",
          "confirmed"
        ],
        "title": "OutlineGenerationBudgetRequest",
        "type": "object"
      },
      "OutlineGenerationControls": {
        "additionalProperties": false,
        "properties": {
          "max_input_chars": {
            "default": 60000,
            "maximum": 80000.0,
            "minimum": 8000.0,
            "title": "Max Input Chars",
            "type": "integer"
          },
          "max_lessons_per_module": {
            "maximum": 24.0,
            "minimum": 1.0,
            "title": "Max Lessons Per Module",
            "type": "integer"
          },
          "max_modules": {
            "maximum": 24.0,
            "minimum": 1.0,
            "title": "Max Modules",
            "type": "integer"
          },
          "max_output_tokens": {
            "default": 8192,
            "maximum": 16384.0,
            "minimum": 1000.0,
            "title": "Max Output Tokens",
            "type": "integer"
          },
          "max_total_lessons": {
            "maximum": 256.0,
            "minimum": 1.0,
            "title": "Max Total Lessons",
            "type": "integer"
          },
          "maximum_total_minutes": {
            "maximum": 5000000.0,
            "minimum": 1.0,
            "title": "Maximum Total Minutes",
            "type": "integer"
          },
          "minimum_total_minutes": {
            "maximum": 5000000.0,
            "minimum": 1.0,
            "title": "Minimum Total Minutes",
            "type": "integer"
          },
          "temperature": {
            "default": 0.6,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Temperature",
            "type": "number"
          }
        },
        "required": [
          "max_modules",
          "max_lessons_per_module",
          "max_total_lessons",
          "minimum_total_minutes",
          "maximum_total_minutes"
        ],
        "title": "OutlineGenerationControls",
        "type": "object"
      },
      "OutlineGenerationPlan": {
        "additionalProperties": false,
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/OutlineGenerationBudgetConfirmation"
          },
          "controls": {
            "$ref": "#/components/schemas/OutlineGenerationControls"
          },
          "generation_specs": {
            "items": {
              "$ref": "#/components/schemas/OutlineGenerationSpec"
            },
            "maxItems": 6,
            "minItems": 2,
            "title": "Generation Specs",
            "type": "array"
          },
          "plan_id": {
            "pattern": "^outlineplan_[a-f0-9]{40}$",
            "title": "Plan Id",
            "type": "string"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "reviewer_guidance_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Guidance Sha256"
          }
        },
        "required": ["plan_id", "generation_specs", "controls", "budget", "plan_sha256"],
        "title": "OutlineGenerationPlan",
        "type": "object"
      },
      "OutlineGenerationSpec": {
        "additionalProperties": false,
        "properties": {
          "emphasis": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Emphasis",
            "type": "string"
          },
          "seed": {
            "maximum": 2147483647.0,
            "minimum": 0.0,
            "title": "Seed",
            "type": "integer"
          },
          "strategy": {
            "enum": [
              "concept_spiral",
              "problem_first",
              "chronological",
              "project_arc",
              "mastery_sequence"
            ],
            "title": "Strategy",
            "type": "string"
          }
        },
        "required": ["strategy", "seed", "emphasis"],
        "title": "OutlineGenerationSpec",
        "type": "object"
      },
      "OutlineHumanScoreRequest": {
        "additionalProperties": false,
        "properties": {
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/OutlineScoreDimensionDraft"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Dimensions",
            "type": "array"
          },
          "expected_variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Variant Content Sha256",
            "type": "string"
          },
          "expected_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Workspace Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "rubric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Rubric Version",
            "type": "string"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          }
        },
        "required": [
          "rubric_id",
          "rubric_version",
          "overall_score",
          "uncertainty",
          "rationale",
          "dimensions",
          "idempotency_key",
          "expected_workspace_sha256",
          "expected_variant_content_sha256"
        ],
        "title": "OutlineHumanScoreRequest",
        "type": "object"
      },
      "OutlineLessonResponse": {
        "additionalProperties": false,
        "properties": {
          "assessment_types": {
            "items": {
              "enum": ["formative", "summative", "diagnostic", "authentic"],
              "type": "string"
            },
            "title": "Assessment Types",
            "type": "array"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "estimated_minutes": {
            "minimum": 1.0,
            "title": "Estimated Minutes",
            "type": "integer"
          },
          "modality": {
            "enum": [
              "instruction",
              "reading",
              "discussion",
              "practice",
              "project",
              "lab",
              "simulation",
              "assessment"
            ],
            "title": "Modality",
            "type": "string"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/OutlineObjectiveResponse"
            },
            "title": "Objectives",
            "type": "array"
          },
          "prerequisite_lesson_ids": {
            "items": {
              "type": "string"
            },
            "title": "Prerequisite Lesson Ids",
            "type": "array"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "source_client_key": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Client Key",
            "type": "string"
          },
          "structure_id": {
            "pattern": "^outlinelesson_[a-f0-9]{40}$",
            "title": "Structure Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "structure_id",
          "source_client_key",
          "sequence",
          "title",
          "description",
          "estimated_minutes",
          "modality",
          "assessment_types",
          "prerequisite_lesson_ids",
          "objectives"
        ],
        "title": "OutlineLessonResponse",
        "type": "object"
      },
      "OutlineManualVariantRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Workspace Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "variant": {
            "$ref": "#/components/schemas/OutlineVariantDraft"
          }
        },
        "required": ["idempotency_key", "expected_workspace_sha256", "variant"],
        "title": "OutlineManualVariantRequest",
        "type": "object"
      },
      "OutlineModuleResponse": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/OutlineLessonResponse"
            },
            "title": "Lessons",
            "type": "array"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "source_client_key": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Client Key",
            "type": "string"
          },
          "structure_id": {
            "pattern": "^outlinemod_[a-f0-9]{40}$",
            "title": "Structure Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "structure_id",
          "source_client_key",
          "sequence",
          "title",
          "description",
          "lessons"
        ],
        "title": "OutlineModuleResponse",
        "type": "object"
      },
      "OutlineObjectiveResponse": {
        "additionalProperties": false,
        "properties": {
          "curriculum_objective_ids": {
            "items": {
              "type": "string"
            },
            "title": "Curriculum Objective Ids",
            "type": "array"
          },
          "source_client_key": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Client Key",
            "type": "string"
          },
          "standard_codes": {
            "items": {
              "type": "string"
            },
            "title": "Standard Codes",
            "type": "array"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          },
          "structure_id": {
            "pattern": "^outlineobj_[a-f0-9]{40}$",
            "title": "Structure Id",
            "type": "string"
          }
        },
        "required": [
          "structure_id",
          "source_client_key",
          "statement",
          "curriculum_objective_ids",
          "standard_codes"
        ],
        "title": "OutlineObjectiveResponse",
        "type": "object"
      },
      "OutlineProviderEvidence": {
        "additionalProperties": false,
        "properties": {
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "invocation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Invocation Sha256",
            "type": "string"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "seed": {
            "maximum": 2147483647.0,
            "minimum": 0.0,
            "title": "Seed",
            "type": "integer"
          },
          "spec_index": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Spec Index",
            "type": "integer"
          },
          "strategy": {
            "enum": [
              "concept_spiral",
              "problem_first",
              "chronological",
              "project_arc",
              "mastery_sequence"
            ],
            "title": "Strategy",
            "type": "string"
          }
        },
        "required": [
          "invocation_sha256",
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "spec_index",
          "strategy",
          "seed"
        ],
        "title": "OutlineProviderEvidence",
        "type": "object"
      },
      "OutlineProviderInvocation": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "invocation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Invocation Sha256",
            "type": "string"
          },
          "max_output_tokens": {
            "maximum": 16384.0,
            "minimum": 1000.0,
            "title": "Max Output Tokens",
            "type": "integer"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "outcome": {
            "enum": ["completed", "refused", "malformed", "unavailable"],
            "title": "Outcome",
            "type": "string"
          },
          "outcome_message": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome Message"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "provider_reported_cost_minor_units": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Reported Cost Minor Units"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_variant_count": {
            "maximum": 6.0,
            "minimum": 2.0,
            "title": "Requested Variant Count",
            "type": "integer"
          },
          "response_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Sha256"
          },
          "served_model": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Model"
          },
          "served_provider": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Provider"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tool_access": {
            "const": false,
            "default": false,
            "title": "Tool Access",
            "type": "boolean"
          },
          "transmitted_char_count": {
            "maximum": 82000.0,
            "minimum": 1.0,
            "title": "Transmitted Char Count",
            "type": "integer"
          },
          "trust_labels": {
            "items": {
              "$ref": "#/components/schemas/OutlineTrustLabel"
            },
            "maxItems": 3,
            "minItems": 2,
            "title": "Trust Labels",
            "type": "array"
          },
          "trust_renderer_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Trust Renderer Version",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "config_sha256",
          "trust_renderer_version",
          "prompt_sha256",
          "request_sha256",
          "source_sha256",
          "plan_sha256",
          "transmitted_char_count",
          "requested_variant_count",
          "max_output_tokens",
          "outcome",
          "trust_labels",
          "invocation_sha256"
        ],
        "title": "OutlineProviderInvocation",
        "type": "object"
      },
      "OutlineScoreDimensionDraft": {
        "additionalProperties": false,
        "properties": {
          "dimension_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,79}$",
            "title": "Dimension Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          }
        },
        "required": ["dimension_id", "score", "uncertainty", "rationale"],
        "title": "OutlineScoreDimensionDraft",
        "type": "object"
      },
      "OutlineScoreRecord": {
        "additionalProperties": false,
        "properties": {
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/OutlineScoreDimensionDraft"
            },
            "title": "Dimensions",
            "type": "array"
          },
          "evaluator_validation_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluator Validation Sha256"
          },
          "human_scorer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Human Scorer Id"
          },
          "human_scorer_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Human Scorer Name"
          },
          "human_scorer_role": {
            "anyOf": [
              {
                "enum": ["instructor", "admin"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Human Scorer Role"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "provider_invocation_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider Invocation Sha256"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_version": {
            "title": "Rubric Version",
            "type": "string"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "score_id": {
            "pattern": "^outlinescore_[a-f0-9]{40}$",
            "title": "Score Id",
            "type": "string"
          },
          "scorer_kind": {
            "enum": ["provider", "evaluator", "human"],
            "title": "Scorer Kind",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "set_id": {
            "pattern": "^outlineset_[a-f0-9]{40}$",
            "title": "Set Id",
            "type": "string"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          },
          "variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Variant Content Sha256",
            "type": "string"
          },
          "variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": [
          "score_id",
          "set_id",
          "variant_id",
          "variant_content_sha256",
          "scorer_kind",
          "rubric_id",
          "rubric_version",
          "overall_score",
          "uncertainty",
          "rationale",
          "dimensions",
          "recorded_at",
          "self_sha256"
        ],
        "title": "OutlineScoreRecord",
        "type": "object"
      },
      "OutlineSourceObjective": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_revision_id": {
            "pattern": "^objectiverev_[a-f0-9]{40}$",
            "title": "Objective Revision Id",
            "type": "string"
          },
          "required_for_outcome": {
            "title": "Required For Outcome",
            "type": "boolean"
          },
          "standard_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Standard Codes",
            "type": "array"
          },
          "statement": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "objective_id",
          "objective_revision_id",
          "content_sha256",
          "title",
          "statement",
          "required_for_outcome"
        ],
        "title": "OutlineSourceObjective",
        "type": "object"
      },
      "OutlineSourcePrerequisite": {
        "additionalProperties": false,
        "properties": {
          "edge_id": {
            "pattern": "^objective_edge_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Edge Id",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "source_objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Source Objective Id",
            "type": "string"
          },
          "target_objective_id": {
            "pattern": "^objective_[a-z0-9][a-z0-9_-]{2,127}$",
            "title": "Target Objective Id",
            "type": "string"
          }
        },
        "required": ["edge_id", "source_objective_id", "target_objective_id", "required"],
        "title": "OutlineSourcePrerequisite",
        "type": "object"
      },
      "OutlineSourceSnapshot": {
        "additionalProperties": false,
        "description": "Bounded exact planning inputs derived from accepted brief and map revisions.",
        "properties": {
          "calendar_weeks": {
            "maximum": 520.0,
            "minimum": 1.0,
            "title": "Calendar Weeks",
            "type": "integer"
          },
          "curriculum_brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "curriculum_brief_review_id": {
            "pattern": "^briefreview_[a-f0-9]{40}$",
            "title": "Curriculum Brief Review Id",
            "type": "string"
          },
          "curriculum_brief_revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Curriculum Brief Revision Id",
            "type": "string"
          },
          "curriculum_brief_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Brief Revision Sha256",
            "type": "string"
          },
          "curriculum_brief_validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Brief Validation Sha256",
            "type": "string"
          },
          "curriculum_map_id": {
            "pattern": "^currmap_[a-f0-9]{40}$",
            "title": "Curriculum Map Id",
            "type": "string"
          },
          "curriculum_map_revision_id": {
            "pattern": "^currmaprev_[a-f0-9]{40}$",
            "title": "Curriculum Map Revision Id",
            "type": "string"
          },
          "curriculum_map_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Map Revision Sha256",
            "type": "string"
          },
          "curriculum_map_validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Curriculum Map Validation Sha256",
            "type": "string"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/OutlineSourceObjective"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "outcome_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Outcome Ids",
            "type": "array"
          },
          "prerequisites": {
            "items": {
              "$ref": "#/components/schemas/OutlineSourcePrerequisite"
            },
            "maxItems": 2048,
            "title": "Prerequisites",
            "type": "array"
          },
          "required_assessment_types": {
            "items": {
              "enum": ["formative", "summative", "diagnostic", "authentic"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Required Assessment Types",
            "type": "array"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "standard_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Standard Codes",
            "type": "array"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "total_duration_minutes": {
            "maximum": 5000000.0,
            "minimum": 1.0,
            "title": "Total Duration Minutes",
            "type": "integer"
          }
        },
        "required": [
          "curriculum_brief_id",
          "curriculum_brief_revision_id",
          "curriculum_brief_revision_sha256",
          "curriculum_brief_validation_sha256",
          "curriculum_brief_review_id",
          "curriculum_map_id",
          "curriculum_map_revision_id",
          "curriculum_map_revision_sha256",
          "curriculum_map_validation_sha256",
          "title",
          "summary",
          "total_duration_minutes",
          "calendar_weeks",
          "outcome_ids",
          "standard_codes",
          "required_assessment_types",
          "objectives",
          "source_sha256"
        ],
        "title": "OutlineSourceSnapshot",
        "type": "object"
      },
      "OutlineTrustLabel": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "instruction_semantics": {
            "const": "non-instruction",
            "default": "non-instruction",
            "title": "Instruction Semantics",
            "type": "string"
          },
          "origin": {
            "enum": ["outline_source", "generation_plan", "reviewer_guidance"],
            "title": "Origin",
            "type": "string"
          },
          "original_chars": {
            "minimum": 0.0,
            "title": "Original Chars",
            "type": "integer"
          },
          "rendered_chars": {
            "minimum": 0.0,
            "title": "Rendered Chars",
            "type": "integer"
          },
          "rendered_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendered Content Sha256",
            "type": "string"
          },
          "truncated": {
            "const": false,
            "default": false,
            "title": "Truncated",
            "type": "boolean"
          },
          "trust": {
            "const": "untrusted",
            "default": "untrusted",
            "title": "Trust",
            "type": "string"
          }
        },
        "required": [
          "id",
          "origin",
          "content_sha256",
          "rendered_content_sha256",
          "original_chars",
          "rendered_chars"
        ],
        "title": "OutlineTrustLabel",
        "type": "object"
      },
      "OutlineValidationIssue": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "entity_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Id"
          },
          "entity_kind": {
            "enum": ["variant", "module", "lesson", "objective"],
            "title": "Entity Kind",
            "type": "string"
          },
          "field_path": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "message": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "remediation": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Remediation",
            "type": "string"
          },
          "severity": {
            "enum": ["error", "warning"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "severity", "entity_kind", "field_path", "message", "remediation"],
        "title": "OutlineValidationIssue",
        "type": "object"
      },
      "OutlineVariantContribution": {
        "additionalProperties": false,
        "properties": {
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "source_structure_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1024,
            "minItems": 1,
            "title": "Source Structure Ids",
            "type": "array"
          },
          "source_variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Source Variant Id",
            "type": "string"
          }
        },
        "required": ["source_variant_id", "source_structure_ids", "rationale"],
        "title": "OutlineVariantContribution",
        "type": "object"
      },
      "OutlineVariantDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["select", "reject", "merge", "fork"],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_name": {
            "title": "Actor Name",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "created_variant_id": {
            "anyOf": [
              {
                "pattern": "^outlinevar_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created Variant Id"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^outlinedec_[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "set_id": {
            "pattern": "^outlineset_[a-f0-9]{40}$",
            "title": "Set Id",
            "type": "string"
          },
          "source_variants": {
            "items": {
              "$ref": "#/components/schemas/OutlineDecisionVariantExpectation"
            },
            "title": "Source Variants",
            "type": "array"
          }
        },
        "required": [
          "decision_id",
          "set_id",
          "action",
          "source_variants",
          "rationale",
          "actor_id",
          "actor_name",
          "actor_role",
          "decided_at",
          "self_sha256"
        ],
        "title": "OutlineVariantDecisionResponse",
        "type": "object"
      },
      "OutlineVariantDraft": {
        "additionalProperties": false,
        "properties": {
          "approach_summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Approach Summary",
            "type": "string"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/OutlineDraftModule"
            },
            "maxItems": 24,
            "minItems": 1,
            "title": "Modules",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["title", "approach_summary", "modules"],
        "title": "OutlineVariantDraft",
        "type": "object"
      },
      "OutlineVariantResponse": {
        "additionalProperties": false,
        "properties": {
          "approach_summary": {
            "title": "Approach Summary",
            "type": "string"
          },
          "authoring_mode": {
            "enum": ["provider", "manual", "merge", "fork"],
            "title": "Authoring Mode",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Created By",
            "type": "string"
          },
          "created_role": {
            "enum": ["provider", "instructor", "admin"],
            "title": "Created Role",
            "type": "string"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/OutlineModuleResponse"
            },
            "title": "Modules",
            "type": "array"
          },
          "ordinal": {
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "parent_variant_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "title": "Parent Variant Ids",
            "type": "array"
          },
          "provider_evidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OutlineProviderEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "set_id": {
            "pattern": "^outlineset_[a-f0-9]{40}$",
            "title": "Set Id",
            "type": "string"
          },
          "source_contributions": {
            "items": {
              "$ref": "#/components/schemas/OutlineVariantContribution"
            },
            "maxItems": 6,
            "title": "Source Contributions",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": [
          "variant_id",
          "set_id",
          "ordinal",
          "authoring_mode",
          "title",
          "approach_summary",
          "modules",
          "created_by",
          "created_role",
          "created_at",
          "content_sha256",
          "self_sha256"
        ],
        "title": "OutlineVariantResponse",
        "type": "object"
      },
      "OutlineVariantSetRequest": {
        "additionalProperties": false,
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/OutlineGenerationBudgetRequest"
          },
          "controls": {
            "$ref": "#/components/schemas/OutlineGenerationControls"
          },
          "curriculum_brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "curriculum_brief_revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Curriculum Brief Revision Id",
            "type": "string"
          },
          "curriculum_map_id": {
            "pattern": "^currmap_[a-f0-9]{40}$",
            "title": "Curriculum Map Id",
            "type": "string"
          },
          "curriculum_map_revision_id": {
            "pattern": "^currmaprev_[a-f0-9]{40}$",
            "title": "Curriculum Map Revision Id",
            "type": "string"
          },
          "generation_specs": {
            "items": {
              "$ref": "#/components/schemas/OutlineGenerationSpec"
            },
            "maxItems": 6,
            "minItems": 2,
            "title": "Generation Specs",
            "type": "array"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reviewer_guidance": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer Guidance"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "curriculum_brief_id",
          "curriculum_brief_revision_id",
          "curriculum_map_id",
          "curriculum_map_revision_id",
          "generation_specs",
          "controls",
          "budget"
        ],
        "title": "OutlineVariantSetRequest",
        "type": "object"
      },
      "OutlineVariantSetResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_variant_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "title": "Generated Variant Ids",
            "type": "array"
          },
          "generation_plan": {
            "$ref": "#/components/schemas/OutlineGenerationPlan"
          },
          "invocation": {
            "$ref": "#/components/schemas/OutlineProviderInvocation"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "requested_role": {
            "enum": ["instructor", "admin"],
            "title": "Requested Role",
            "type": "string"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "set_id": {
            "pattern": "^outlineset_[a-f0-9]{40}$",
            "title": "Set Id",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/OutlineSourceSnapshot"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "set_id",
          "tenant_id",
          "source",
          "generation_plan",
          "invocation",
          "requested_by",
          "requested_role",
          "requested_at",
          "request_sha256",
          "self_sha256"
        ],
        "title": "OutlineVariantSetResponse",
        "type": "object"
      },
      "OutlineVariantSetWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/OutlineVariantDecisionResponse"
            },
            "title": "Decisions",
            "type": "array"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "set": {
            "$ref": "#/components/schemas/OutlineVariantSetResponse"
          },
          "summary": {
            "$ref": "#/components/schemas/OutlineVariantWorkspaceSummary"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/OutlineVariantWorkspaceItem"
            },
            "title": "Variants",
            "type": "array"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": ["set", "summary", "variants", "decisions", "workspace_sha256"],
        "title": "OutlineVariantSetWorkspaceResponse",
        "type": "object"
      },
      "OutlineVariantValidationResponse": {
        "additionalProperties": false,
        "properties": {
          "assessment_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Assessment Coverage Percent",
            "type": "number"
          },
          "comparison_eligible": {
            "title": "Comparison Eligible",
            "type": "boolean"
          },
          "controls_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Controls Sha256",
            "type": "string"
          },
          "error_count": {
            "minimum": 0.0,
            "title": "Error Count",
            "type": "integer"
          },
          "issue_count": {
            "minimum": 0.0,
            "title": "Issue Count",
            "type": "integer"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/OutlineValidationIssue"
            },
            "title": "Issues",
            "type": "array"
          },
          "lesson_count": {
            "minimum": 0.0,
            "title": "Lesson Count",
            "type": "integer"
          },
          "module_count": {
            "minimum": 0.0,
            "title": "Module Count",
            "type": "integer"
          },
          "required_objective_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Required Objective Coverage Percent",
            "type": "number"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "standard_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Standard Coverage Percent",
            "type": "number"
          },
          "total_minutes": {
            "minimum": 0.0,
            "title": "Total Minutes",
            "type": "integer"
          },
          "validated_at": {
            "format": "date-time",
            "title": "Validated At",
            "type": "string"
          },
          "validation_id": {
            "pattern": "^outlineval_[a-f0-9]{40}$",
            "title": "Validation Id",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          },
          "variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Variant Content Sha256",
            "type": "string"
          },
          "variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Variant Id",
            "type": "string"
          },
          "warning_count": {
            "minimum": 0.0,
            "title": "Warning Count",
            "type": "integer"
          }
        },
        "required": [
          "validation_id",
          "variant_id",
          "variant_content_sha256",
          "source_sha256",
          "controls_sha256",
          "validated_at",
          "module_count",
          "lesson_count",
          "total_minutes",
          "required_objective_coverage_percent",
          "standard_coverage_percent",
          "assessment_coverage_percent",
          "issue_count",
          "error_count",
          "warning_count",
          "comparison_eligible",
          "issues",
          "validation_sha256"
        ],
        "title": "OutlineVariantValidationResponse",
        "type": "object"
      },
      "OutlineVariantWorkspaceCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.13.0",
            "default": "2.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sets": {
            "items": {
              "$ref": "#/components/schemas/OutlineVariantSetWorkspaceResponse"
            },
            "maxItems": 4096,
            "title": "Sets",
            "type": "array"
          }
        },
        "required": ["generated_at"],
        "title": "OutlineVariantWorkspaceCollectionResponse",
        "type": "object"
      },
      "OutlineVariantWorkspaceItem": {
        "additionalProperties": false,
        "properties": {
          "decision_state": {
            "enum": ["candidate", "selected", "rejected", "derived"],
            "title": "Decision State",
            "type": "string"
          },
          "scores": {
            "items": {
              "$ref": "#/components/schemas/OutlineScoreRecord"
            },
            "title": "Scores",
            "type": "array"
          },
          "validation": {
            "$ref": "#/components/schemas/OutlineVariantValidationResponse"
          },
          "variant": {
            "$ref": "#/components/schemas/OutlineVariantResponse"
          }
        },
        "required": ["variant", "validation", "scores", "decision_state"],
        "title": "OutlineVariantWorkspaceItem",
        "type": "object"
      },
      "OutlineVariantWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "comparison_eligible_count": {
            "minimum": 0.0,
            "title": "Comparison Eligible Count",
            "type": "integer"
          },
          "derived_count": {
            "minimum": 0.0,
            "title": "Derived Count",
            "type": "integer"
          },
          "generated_count": {
            "minimum": 0.0,
            "title": "Generated Count",
            "type": "integer"
          },
          "manual_count": {
            "minimum": 0.0,
            "title": "Manual Count",
            "type": "integer"
          },
          "rejected_count": {
            "minimum": 0.0,
            "title": "Rejected Count",
            "type": "integer"
          },
          "selected_count": {
            "minimum": 0.0,
            "title": "Selected Count",
            "type": "integer"
          },
          "variant_count": {
            "minimum": 0.0,
            "title": "Variant Count",
            "type": "integer"
          }
        },
        "required": [
          "variant_count",
          "generated_count",
          "manual_count",
          "derived_count",
          "comparison_eligible_count",
          "selected_count",
          "rejected_count"
        ],
        "title": "OutlineVariantWorkspaceSummary",
        "type": "object"
      },
      "OutlineWorkloadSourceRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Variant Content Sha256",
            "type": "string"
          },
          "expected_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Workspace Sha256",
            "type": "string"
          },
          "kind": {
            "const": "outline_variant",
            "default": "outline_variant",
            "title": "Kind",
            "type": "string"
          },
          "set_id": {
            "pattern": "^outlineset_[a-f0-9]{40}$",
            "title": "Set Id",
            "type": "string"
          },
          "variant_id": {
            "pattern": "^outlinevar_[a-f0-9]{40}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": [
          "set_id",
          "variant_id",
          "expected_workspace_sha256",
          "expected_variant_content_sha256"
        ],
        "title": "OutlineWorkloadSourceRequest",
        "type": "object"
      },
      "OutputProposal": {
        "additionalProperties": false,
        "description": "What the run proposes. Nothing here is published.\n\nThere is no `published` field and no destination outside the proposal and\nreview queues, so an output view cannot describe something that shipped.",
        "properties": {
          "awaiting_role": {
            "enum": [
              "curriculum_lead",
              "assessment_lead",
              "accessibility_lead",
              "integrity_lead",
              "course_owner"
            ],
            "title": "Awaiting Role",
            "type": "string"
          },
          "destination": {
            "enum": ["destination:proposal-queue", "destination:review-queue"],
            "title": "Destination",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Evidence Ids",
            "type": "array"
          },
          "output_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Output Id",
            "type": "string"
          },
          "output_kind": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Output Kind",
            "type": "string"
          },
          "produced_by_step": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Produced By Step",
            "type": "string"
          },
          "published": {
            "const": false,
            "default": false,
            "title": "Published",
            "type": "boolean"
          }
        },
        "required": [
          "output_id",
          "output_kind",
          "produced_by_step",
          "destination",
          "evidence_ids",
          "awaiting_role"
        ],
        "title": "OutputProposal",
        "type": "object"
      },
      "OverbookedSlot": {
        "additionalProperties": false,
        "description": "A resource promised to more events than it can hold.",
        "properties": {
          "capacity": {
            "minimum": 1.0,
            "title": "Capacity",
            "type": "integer"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "event_ids": {
            "items": {
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Event Ids",
            "type": "array"
          },
          "resource_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Resource Id",
            "type": "string"
          }
        },
        "required": ["resource_id", "event_ids", "capacity", "detail"],
        "title": "OverbookedSlot",
        "type": "object"
      },
      "OverlayAddition": {
        "additionalProperties": false,
        "description": "What an institution may add to one dimension. There is no field for taking away.",
        "properties": {
          "additional_signer_roles": {
            "default": [],
            "items": {
              "enum": [
                "subject_expert",
                "instructional_designer",
                "accessibility_specialist",
                "cultural_reviewer",
                "rights_counsel",
                "publisher_editor",
                "institution_reviewer"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "title": "Additional Signer Roles",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "expiry_days": {
            "anyOf": [
              {
                "maximum": 365.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiry Days"
          },
          "extra_criteria": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewCriterion"
            },
            "maxItems": 20,
            "title": "Extra Criteria",
            "type": "array"
          },
          "extra_gate_floors": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GateFloor"
            },
            "maxItems": 10,
            "title": "Extra Gate Floors",
            "type": "array"
          },
          "extra_qualifications": {
            "default": [],
            "items": {
              "pattern": "^qual:[a-z0-9._-]{2,80}$",
              "type": "string"
            },
            "maxItems": 10,
            "title": "Extra Qualifications",
            "type": "array"
          },
          "extra_quorum": {
            "default": 0,
            "maximum": 3.0,
            "minimum": 0.0,
            "title": "Extra Quorum",
            "type": "integer"
          }
        },
        "required": ["dimension"],
        "title": "OverlayAddition",
        "type": "object"
      },
      "OverlayApplicability": {
        "additionalProperties": false,
        "properties": {
          "eligible_content_kinds": {
            "items": {
              "enum": ["lesson", "item", "assessment", "practice_set", "media"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Eligible Content Kinds",
            "type": "array"
          },
          "eligible_item_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Eligible Item Ids",
            "type": "array"
          },
          "eligible_objective_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Eligible Objective Ids",
            "type": "array"
          },
          "scope": {
            "enum": ["platform", "region", "institution", "program", "course", "learner_support"],
            "title": "Scope",
            "type": "string"
          },
          "scope_key": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scope Key"
          }
        },
        "required": ["scope", "eligible_content_kinds"],
        "title": "OverlayApplicability",
        "type": "object"
      },
      "OverlayConstraint": {
        "additionalProperties": false,
        "description": "One declared limit. Exactly the field its dimension's kind uses is set.",
        "properties": {
          "dimension": {
            "enum": [
              "safety.required_safety_gates",
              "safety.max_autonomous_advance_steps",
              "privacy.max_learner_signal_retention_days",
              "privacy.allowed_signal_kinds",
              "accessibility.required_learner_supports",
              "accessibility.allowed_delivery_modes",
              "integrity.required_integrity_checks",
              "exposure.max_item_exposure_rate_basis_points",
              "rights.allowed_licence_classes",
              "prerequisite.min_prerequisite_mastery_basis_points",
              "assessment.max_attempts_per_item",
              "human_authority.require_human_review_before_activation",
              "mastery.min_mastery_to_advance_basis_points",
              "mastery.required_mastery_evidence_kinds",
              "pacing.max_items_per_session",
              "pacing.min_spacing_days_between_repeats",
              "difficulty.max_difficulty_centilogits",
              "difficulty.allowed_difficulty_bands"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "flag_value": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Flag Value"
          },
          "numeric_value": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": -1000000.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Numeric Value"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          },
          "set_values": {
            "anyOf": [
              {
                "items": {
                  "maxLength": 80,
                  "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
                  "type": "string"
                },
                "maxItems": 64,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Set Values"
          }
        },
        "required": ["dimension", "rationale"],
        "title": "OverlayConstraint",
        "type": "object"
      },
      "OverlayCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "overlay_contract",
              "merge_monotonicity",
              "protected_floors",
              "impact_preview",
              "runtime_revalidation"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "OverlayCorpusMetric",
        "type": "object"
      },
      "OverlayEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis-sequencing-overlay",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.2.0",
            "title": "Engine Version",
            "type": "string"
          },
          "merge_method": {
            "const": "scope-ordered-meet-semilattice-v1",
            "title": "Merge Method",
            "type": "string"
          },
          "minimum_cell_size": {
            "maximum": 1000.0,
            "minimum": 2.0,
            "title": "Minimum Cell Size",
            "type": "integer"
          },
          "privacy_method": {
            "const": "minimum-cell-size-complementary-suppression-v1",
            "title": "Privacy Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.2.0",
            "default": "6.2.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/OverlayToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_indeterminate_without_a_protected_floor",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "merge_method",
          "privacy_method",
          "tools",
          "rules_sha256",
          "minimum_cell_size",
          "unsupported_behavior"
        ],
        "title": "OverlayEngineWitness",
        "type": "object"
      },
      "OverlayEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "OverlayEvaluationCaseResult",
        "type": "object"
      },
      "OverlayEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/OverlayEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.2-sequencing-overlay-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/OverlayCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "properties": {
            "$ref": "#/components/schemas/PropertySweepReport"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "properties",
          "limitations"
        ],
        "title": "OverlayEvaluationReport",
        "type": "object"
      },
      "OverlayHistory": {
        "additionalProperties": false,
        "description": "Every version of one scope's overlay, oldest first. Append-only.",
        "properties": {
          "overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Overlay Id",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/OverlayScope"
          },
          "versions": {
            "items": {
              "$ref": "#/components/schemas/OverlayVersion"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Versions",
            "type": "array"
          }
        },
        "required": ["overlay_id", "scope", "versions"],
        "title": "OverlayHistory",
        "type": "object"
      },
      "OverlayImpactPreview": {
        "additionalProperties": false,
        "description": "What would change, counted from the inventory rather than asserted.",
        "properties": {
          "affected_item_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Affected Item Ids",
            "type": "array"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "changed_keys": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Changed Keys",
            "type": "array"
          },
          "counts": {
            "items": {
              "$ref": "#/components/schemas/ImpactCount"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Counts",
            "type": "array"
          },
          "impact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Impact Sha256",
            "type": "string"
          },
          "overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Overlay Id",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["overlay_id", "version", "at", "counts", "impact_sha256"],
        "title": "OverlayImpactPreview",
        "type": "object"
      },
      "OverlayResolveRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "versions": {
            "items": {
              "$ref": "#/components/schemas/OverlayVersion"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Versions",
            "type": "array"
          }
        },
        "required": ["versions"],
        "title": "OverlayResolveRequest",
        "type": "object"
      },
      "OverlayReview": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["approved", "rejected", "changes_requested"],
            "title": "Decision",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          },
          "review_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reviewed Overlay Id",
            "type": "string"
          },
          "reviewed_overlay_version": {
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$",
            "title": "Reviewed Overlay Version",
            "type": "string"
          },
          "reviewed_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewed Revision Sha256",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "reviewer_id",
          "reviewer_name",
          "decision",
          "reviewed_overlay_id",
          "reviewed_overlay_version",
          "reviewed_revision_sha256",
          "reviewed_at",
          "rationale"
        ],
        "title": "OverlayReview",
        "type": "object"
      },
      "OverlayRevision": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/OverlayApplicability"
          },
          "authored_at": {
            "format": "date-time",
            "title": "Authored At",
            "type": "string"
          },
          "constraints": {
            "items": {
              "$ref": "#/components/schemas/OverlayConstraint"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Constraints",
            "type": "array"
          },
          "is_platform_floor": {
            "default": false,
            "title": "Is Platform Floor",
            "type": "boolean"
          },
          "lifecycle": {
            "enum": ["draft", "in_review", "approved", "active", "suspended", "retired"],
            "title": "Lifecycle",
            "type": "string"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/SequencingObjective"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Overlay Id",
            "type": "string"
          },
          "owner_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Owner Name",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "overlay_id",
          "revision_id",
          "revision_sha256",
          "version",
          "title",
          "owner_id",
          "owner_name",
          "lifecycle",
          "applicability",
          "objectives",
          "constraints",
          "authored_at"
        ],
        "title": "OverlayRevision",
        "type": "object"
      },
      "OverlayScope": {
        "additionalProperties": false,
        "properties": {
          "level": {
            "enum": ["platform", "region", "institution", "program", "course"],
            "title": "Level",
            "type": "string"
          },
          "scope_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Scope Id"
          }
        },
        "required": ["level"],
        "title": "OverlayScope",
        "type": "object"
      },
      "OverlayToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "OverlayToolWitness",
        "type": "object"
      },
      "OverlayVersion": {
        "additionalProperties": false,
        "description": "One version of one scope's overlay. Immutable; a change is a new version.",
        "properties": {
          "approval": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ActivationApproval"
              },
              {
                "type": "null"
              }
            ]
          },
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "effective_to": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective To"
          },
          "overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Overlay Id",
            "type": "string"
          },
          "proposed_at": {
            "format": "date-time",
            "title": "Proposed At",
            "type": "string"
          },
          "proposed_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Proposed By Digest",
            "type": "string"
          },
          "restores_version": {
            "anyOf": [
              {
                "pattern": "^\\d+\\.\\d+\\.\\d+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Restores Version"
          },
          "schema_version": {
            "const": "7.9.0",
            "default": "7.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/OverlayScope"
          },
          "settings": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "discriminator": {
                    "mapping": {
                      "bool": "#/components/schemas/BoolValue",
                      "enum": "#/components/schemas/EnumValue",
                      "int": "#/components/schemas/IntValue",
                      "set": "#/components/schemas/SetValue"
                    },
                    "propertyName": "kind"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/BoolValue"
                    },
                    {
                      "$ref": "#/components/schemas/IntValue"
                    },
                    {
                      "$ref": "#/components/schemas/EnumValue"
                    },
                    {
                      "$ref": "#/components/schemas/SetValue"
                    }
                  ]
                }
              ],
              "type": "array"
            },
            "maxItems": 100,
            "title": "Settings",
            "type": "array"
          },
          "status": {
            "enum": ["draft", "in_review", "scheduled", "active", "superseded", "rolled_back"],
            "title": "Status",
            "type": "string"
          },
          "supersedes_version": {
            "anyOf": [
              {
                "pattern": "^\\d+\\.\\d+\\.\\d+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Version"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "overlay_id",
          "tenant_id",
          "scope",
          "version",
          "status",
          "proposed_by_digest",
          "proposed_at",
          "effective_from"
        ],
        "title": "OverlayVersion",
        "type": "object"
      },
      "OverlayWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "activatable": {
            "minimum": 0.0,
            "title": "Activatable",
            "type": "integer"
          },
          "analyses": {
            "minimum": 0.0,
            "title": "Analyses",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "loosening_attempts": {
            "minimum": 0.0,
            "title": "Loosening Attempts",
            "type": "integer"
          },
          "missing_protected_floors": {
            "minimum": 0.0,
            "title": "Missing Protected Floors",
            "type": "integer"
          },
          "suppressed_impact_buckets": {
            "minimum": 0.0,
            "title": "Suppressed Impact Buckets",
            "type": "integer"
          }
        },
        "required": [
          "analyses",
          "activatable",
          "blocked",
          "loosening_attempts",
          "missing_protected_floors",
          "suppressed_impact_buckets"
        ],
        "title": "OverlayWorkspaceSummary",
        "type": "object"
      },
      "PacingRule": {
        "additionalProperties": false,
        "properties": {
          "maximum_days_per_node": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Maximum Days Per Node",
            "type": "integer"
          },
          "maximum_weekly_load_minutes": {
            "maximum": 10080.0,
            "minimum": 1.0,
            "title": "Maximum Weekly Load Minutes",
            "type": "integer"
          },
          "minimum_days_per_node": {
            "maximum": 365.0,
            "minimum": 0.0,
            "title": "Minimum Days Per Node",
            "type": "integer"
          },
          "required_break_days_per_week": {
            "maximum": 6.0,
            "minimum": 0.0,
            "title": "Required Break Days Per Week",
            "type": "integer"
          }
        },
        "required": [
          "minimum_days_per_node",
          "maximum_days_per_node",
          "maximum_weekly_load_minutes",
          "required_break_days_per_week"
        ],
        "title": "PacingRule",
        "type": "object"
      },
      "PackageIngestionInput": {
        "description": "An LMS or institutional source package.",
        "properties": {
          "institution_name": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Name"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "object_key": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Object Key"
          },
          "package_type": {
            "enum": ["scorm", "imscc", "lti_export", "institutional_archive", "zip_bundle"],
            "title": "Package Type",
            "type": "string"
          },
          "source_kind": {
            "enum": ["upload", "remote_url"],
            "title": "Source Kind",
            "type": "string"
          },
          "url": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "required": ["label", "package_type", "source_kind"],
        "title": "PackageIngestionInput",
        "type": "object"
      },
      "PaletteEntryView": {
        "additionalProperties": false,
        "description": "One offered command, with its label resolved for this caller.",
        "properties": {
          "effect": {
            "title": "Effect",
            "type": "string"
          },
          "entry_id": {
            "title": "Entry Id",
            "type": "string"
          },
          "group": {
            "title": "Group",
            "type": "string"
          },
          "group_key": {
            "title": "Group Key",
            "type": "string"
          },
          "keywords": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Keywords",
            "type": "array"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "label_key": {
            "title": "Label Key",
            "type": "string"
          },
          "protected": {
            "title": "Protected",
            "type": "boolean"
          },
          "shortcut": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shortcut"
          },
          "target": {
            "title": "Target",
            "type": "string"
          },
          "translated": {
            "title": "Translated",
            "type": "boolean"
          }
        },
        "required": [
          "entry_id",
          "kind",
          "label",
          "label_key",
          "group",
          "group_key",
          "translated",
          "target",
          "effect",
          "protected"
        ],
        "title": "PaletteEntryView",
        "type": "object"
      },
      "PaletteGroupView": {
        "additionalProperties": false,
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/PaletteEntryView"
            },
            "title": "Entries",
            "type": "array"
          },
          "group": {
            "title": "Group",
            "type": "string"
          },
          "group_key": {
            "title": "Group Key",
            "type": "string"
          }
        },
        "required": ["group_key", "group", "entries"],
        "title": "PaletteGroupView",
        "type": "object"
      },
      "PaletteView": {
        "additionalProperties": false,
        "description": "What this caller may see, grouped, in a stable order.",
        "properties": {
          "audiences": {
            "items": {
              "type": "string"
            },
            "title": "Audiences",
            "type": "array"
          },
          "available_locales": {
            "default": ["en", "es"],
            "items": {
              "type": "string"
            },
            "title": "Available Locales",
            "type": "array"
          },
          "context": {
            "title": "Context",
            "type": "string"
          },
          "groups": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PaletteGroupView"
            },
            "title": "Groups",
            "type": "array"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["locale", "context", "audiences", "total"],
        "title": "PaletteView",
        "type": "object"
      },
      "PanelApplicabilityResult": {
        "additionalProperties": false,
        "properties": {
          "admissible": {
            "title": "Admissible",
            "type": "boolean"
          },
          "blocking_verifier_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Blocking Verifier Ids",
            "type": "array"
          },
          "fully_covered_criterion_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Fully Covered Criterion Ids",
            "type": "array"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "residual_criterion_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Residual Criterion Ids",
            "type": "array"
          },
          "state": {
            "enum": [
              "panel_admissible",
              "deterministic_verification_available",
              "probe_evidence_missing"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "admissible",
          "fully_covered_criterion_ids",
          "residual_criterion_ids",
          "blocking_verifier_ids",
          "reason"
        ],
        "title": "PanelApplicabilityResult",
        "type": "object"
      },
      "PanelCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "applicability",
              "registry",
              "independence",
              "collection",
              "calibration",
              "aggregation",
              "lifecycle"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "PanelCorpusMetric",
        "type": "object"
      },
      "PanelEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "aggregation_rule": {
            "const": "capped-independent-group-weight-v1",
            "title": "Aggregation Rule",
            "type": "string"
          },
          "calibration_method": {
            "const": "wilson-interval-and-binned-expected-calibration-error-v1",
            "title": "Calibration Method",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-evaluator-panel",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "5.24.0",
            "title": "Engine Version",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.24.0",
            "default": "5.24.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/PanelToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_manual_review_or_not_applicable",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "aggregation_rule",
          "calibration_method",
          "tools",
          "rules_sha256",
          "unsupported_behavior"
        ],
        "title": "PanelEngineWitness",
        "type": "object"
      },
      "PanelEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "PanelEvaluationCaseResult",
        "type": "object"
      },
      "PanelEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/PanelEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m5.24-evaluator-panel-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/PanelCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "limitations"
        ],
        "title": "PanelEvaluationReport",
        "type": "object"
      },
      "PanelIntegrity": {
        "additionalProperties": false,
        "description": "Measured proof that the panel kept each model's own evidence.",
        "properties": {
          "composite_scores_computed": {
            "const": 0,
            "default": 0,
            "title": "Composite Scores Computed",
            "type": "integer"
          },
          "distinct_output_fields_by_family": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "enum": ["bkt", "fsrs_5", "graph_tracing", "irt"],
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 4,
            "title": "Distinct Output Fields By Family",
            "type": "array"
          },
          "families_present": {
            "maximum": 4.0,
            "minimum": 0.0,
            "title": "Families Present",
            "type": "integer"
          },
          "generic_score_fields": {
            "const": 0,
            "default": 0,
            "title": "Generic Score Fields",
            "type": "integer"
          },
          "shared_output_field_names": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Shared Output Field Names",
            "type": "array"
          }
        },
        "required": [
          "families_present",
          "distinct_output_fields_by_family",
          "shared_output_field_names"
        ],
        "title": "PanelIntegrity",
        "type": "object"
      },
      "PanelLens": {
        "additionalProperties": false,
        "description": "What one panel shows of one payload, for one viewer.",
        "properties": {
          "keys": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "Keys",
            "type": "array"
          },
          "panel": {
            "maxLength": 40,
            "minLength": 2,
            "title": "Panel",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 300,
                "minLength": 12,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "residue": {
            "default": false,
            "title": "Residue",
            "type": "boolean"
          },
          "restricted": {
            "default": false,
            "title": "Restricted",
            "type": "boolean"
          }
        },
        "required": ["panel"],
        "title": "PanelLens",
        "type": "object"
      },
      "PanelSubject": {
        "additionalProperties": false,
        "properties": {
          "blinded_alias": {
            "pattern": "^subject-[a-f0-9]{16}$",
            "title": "Blinded Alias",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["worked_solution", "lesson_segment", "item_rationale", "tutor_turn"],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": [
          "subject_id",
          "subject_kind",
          "revision_id",
          "revision_sha256",
          "content_sha256",
          "blinded_alias"
        ],
        "title": "PanelSubject",
        "type": "object"
      },
      "PanelToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "PanelToolWitness",
        "type": "object"
      },
      "PanelVerdict": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "const": "advisory_only",
            "default": "advisory_only",
            "title": "Authority",
            "type": "string"
          },
          "gate_authority_manufactured": {
            "const": false,
            "default": false,
            "title": "Gate Authority Manufactured",
            "type": "boolean"
          },
          "manual_review_required": {
            "title": "Manual Review Required",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["advisory_pass", "advisory_block", "manual_review", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "replaces_deterministic_verification": {
            "const": false,
            "default": false,
            "title": "Replaces Deterministic Verification",
            "type": "boolean"
          }
        },
        "required": ["outcome", "reason_codes", "manual_review_required"],
        "title": "PanelVerdict",
        "type": "object"
      },
      "PanelWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "advisory_block": {
            "minimum": 0.0,
            "title": "Advisory Block",
            "type": "integer"
          },
          "advisory_pass": {
            "minimum": 0.0,
            "title": "Advisory Pass",
            "type": "integer"
          },
          "manual_review": {
            "minimum": 0.0,
            "title": "Manual Review",
            "type": "integer"
          },
          "not_applicable": {
            "minimum": 0.0,
            "title": "Not Applicable",
            "type": "integer"
          },
          "reviewed": {
            "minimum": 0.0,
            "title": "Reviewed",
            "type": "integer"
          },
          "runs": {
            "minimum": 0.0,
            "title": "Runs",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          }
        },
        "required": [
          "runs",
          "advisory_pass",
          "advisory_block",
          "manual_review",
          "not_applicable",
          "stale",
          "reviewed"
        ],
        "title": "PanelWorkspaceSummary",
        "type": "object"
      },
      "ParityReport": {
        "additionalProperties": false,
        "description": "Whether the semantic surfaces really do everything the canvas does.",
        "properties": {
          "affordances": {
            "items": {
              "$ref": "#/components/schemas/OperationAffordance"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Affordances",
            "type": "array"
          },
          "canvas_only": {
            "default": [],
            "items": {
              "enum": [
                "inspect",
                "add",
                "link",
                "unlink",
                "edit",
                "delete",
                "reorder",
                "navigate",
                "filter",
                "compare"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "title": "Canvas Only",
            "type": "array"
          },
          "schema_version": {
            "const": "9.5.1",
            "default": "9.5.1",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["affordances"],
        "title": "ParityReport",
        "type": "object"
      },
      "Participant": {
        "additionalProperties": false,
        "description": "A person in a role, as a digest. There is no field for a name.",
        "properties": {
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "role": {
            "enum": [
              "detector_owner",
              "reviewer",
              "decider",
              "appeal_decider",
              "learner",
              "representative",
              "integrity_lead"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["digest", "role"],
        "title": "Participant",
        "type": "object"
      },
      "PathwayAudience": {
        "additionalProperties": false,
        "properties": {
          "audience_kind": {
            "enum": ["cohort", "role", "tenant", "open"],
            "title": "Audience Kind",
            "type": "string"
          },
          "cohort_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cohort Id"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "role": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          }
        },
        "required": ["audience_kind", "locale"],
        "title": "PathwayAudience",
        "type": "object"
      },
      "PathwayAuthoringRequest": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Accommodation"
            },
            "maxItems": 20,
            "title": "Accommodations",
            "type": "array"
          },
          "cadence": {
            "$ref": "#/components/schemas/CadenceRule"
          },
          "completion_rule": {
            "$ref": "#/components/schemas/CompletionRule"
          },
          "edges": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DependencyEdge"
            },
            "maxItems": 2000,
            "title": "Edges",
            "type": "array"
          },
          "entry_criteria": {
            "$ref": "#/components/schemas/EntryCriteria"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "learner": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LearnerRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "pacing": {
            "$ref": "#/components/schemas/PacingRule"
          },
          "pathway": {
            "$ref": "#/components/schemas/PathwayRevision"
          },
          "schema_version": {
            "const": "6.1.0",
            "default": "6.1.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "pathway",
          "entry_criteria",
          "cadence",
          "pacing",
          "completion_rule"
        ],
        "title": "PathwayAuthoringRequest",
        "type": "object"
      },
      "PathwayAuthoringResponse": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "items": {
              "$ref": "#/components/schemas/Accommodation"
            },
            "title": "Accommodations",
            "type": "array"
          },
          "authored_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Authored By",
            "type": "string"
          },
          "authoring_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Authoring Id",
            "type": "string"
          },
          "blocking_reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Blocking Reason Codes",
            "type": "array"
          },
          "cadence": {
            "$ref": "#/components/schemas/CadenceRule"
          },
          "completion": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CompletionDecision"
              },
              {
                "type": "null"
              }
            ]
          },
          "completion_rule": {
            "$ref": "#/components/schemas/CompletionRule"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "edges": {
            "items": {
              "$ref": "#/components/schemas/DependencyEdge"
            },
            "title": "Edges",
            "type": "array"
          },
          "engine": {
            "$ref": "#/components/schemas/PathwayEngineWitness"
          },
          "entry": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EntryDecision"
              },
              {
                "type": "null"
              }
            ]
          },
          "entry_criteria": {
            "$ref": "#/components/schemas/EntryCriteria"
          },
          "graph": {
            "$ref": "#/components/schemas/GraphAnalysis"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "learner": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LearnerRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "pacing": {
            "$ref": "#/components/schemas/PacingRule"
          },
          "pathway": {
            "$ref": "#/components/schemas/PathwayRevision"
          },
          "publishable": {
            "title": "Publishable",
            "type": "boolean"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schedule": {
            "$ref": "#/components/schemas/SchedulePlan"
          },
          "schema_version": {
            "const": "6.1.0",
            "default": "6.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "authoring_id",
          "idempotency_key",
          "pathway",
          "entry_criteria",
          "edges",
          "cadence",
          "pacing",
          "accommodations",
          "completion_rule",
          "learner",
          "graph",
          "schedule",
          "entry",
          "completion",
          "publishable",
          "blocking_reason_codes",
          "engine",
          "request_sha256",
          "authored_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "PathwayAuthoringResponse",
        "type": "object"
      },
      "PathwayCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "pathway_contract",
              "entry_criteria",
              "dependency_graph",
              "cadence_and_pacing",
              "completion_rules"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "PathwayCorpusMetric",
        "type": "object"
      },
      "PathwayCredentialLink": {
        "additionalProperties": false,
        "description": "A credential this pathway makes a learner eligible for, never one it issues.",
        "properties": {
          "alignment": {
            "enum": ["primary", "supplementary"],
            "title": "Alignment",
            "type": "string"
          },
          "credential_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Credential Id",
            "type": "string"
          },
          "credential_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Credential Revision Id",
            "type": "string"
          },
          "issued_by_this_pathway": {
            "const": false,
            "default": false,
            "title": "Issued By This Pathway",
            "type": "boolean"
          }
        },
        "required": ["credential_id", "credential_revision_id", "alignment"],
        "title": "PathwayCredentialLink",
        "type": "object"
      },
      "PathwayCriterion": {
        "additionalProperties": false,
        "description": "One requirement, pinned to the exact thing it is about.\n\n``subject_revision_sha256`` is required. A criterion naming a course without\nnaming which revision of it would be satisfied by a course that had since\nchanged into something else.",
        "properties": {
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "freshness_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Freshness Days"
          },
          "kind": {
            "enum": [
              "objective_mastery",
              "course_completion",
              "assessment_score",
              "evidence_artefact",
              "supervised_experience",
              "elapsed_time"
            ],
            "title": "Kind",
            "type": "string"
          },
          "minimum_hours": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Hours"
          },
          "statement": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          },
          "threshold_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Threshold Basis Points"
          }
        },
        "required": ["criterion_id", "kind", "subject_id", "subject_revision_sha256", "statement"],
        "title": "PathwayCriterion",
        "type": "object"
      },
      "PathwayEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis-learning-pathway",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.1.0",
            "title": "Engine Version",
            "type": "string"
          },
          "graph_method": {
            "const": "kahn-topological-order-with-tarjan-cycles-v1",
            "title": "Graph Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schedule_method": {
            "const": "iana-zoneinfo-calendar-day-pacing-v1",
            "title": "Schedule Method",
            "type": "string"
          },
          "schema_version": {
            "const": "6.1.0",
            "default": "6.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/PathwayToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_indeterminate_without_credential_authority",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "graph_method",
          "schedule_method",
          "tools",
          "rules_sha256",
          "unsupported_behavior"
        ],
        "title": "PathwayEngineWitness",
        "type": "object"
      },
      "PathwayEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "PathwayEvaluationCaseResult",
        "type": "object"
      },
      "PathwayEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/PathwayEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.1-learning-pathway-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/PathwayCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "limitations"
        ],
        "title": "PathwayEvaluationReport",
        "type": "object"
      },
      "PathwayMember": {
        "additionalProperties": false,
        "properties": {
          "member_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Member Id",
            "type": "string"
          },
          "member_kind": {
            "enum": ["course", "module", "objective"],
            "title": "Member Kind",
            "type": "string"
          },
          "member_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Member Revision Id",
            "type": "string"
          },
          "member_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Member Revision Sha256",
            "type": "string"
          },
          "node_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Node Id",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "seat_time_minutes": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Seat Time Minutes",
            "type": "integer"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "node_id",
          "member_kind",
          "member_id",
          "member_revision_id",
          "member_revision_sha256",
          "title",
          "required",
          "seat_time_minutes"
        ],
        "title": "PathwayMember",
        "type": "object"
      },
      "PathwayProjection": {
        "additionalProperties": false,
        "properties": {
          "authoring": {
            "$ref": "#/components/schemas/PathwayAuthoringResponse"
          },
          "revision_current": {
            "title": "Revision Current",
            "type": "boolean"
          }
        },
        "required": ["authoring", "revision_current"],
        "title": "PathwayProjection",
        "type": "object"
      },
      "PathwayRevision": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "$ref": "#/components/schemas/PathwayAudience"
          },
          "authored_at": {
            "format": "date-time",
            "title": "Authored At",
            "type": "string"
          },
          "credential_links": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PathwayCredentialLink"
            },
            "maxItems": 50,
            "title": "Credential Links",
            "type": "array"
          },
          "lifecycle": {
            "enum": ["draft", "in_review", "published", "deprecated", "retired"],
            "title": "Lifecycle",
            "type": "string"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/PathwayMember"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Members",
            "type": "array"
          },
          "owner_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Owner Name",
            "type": "string"
          },
          "pathway_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pathway Id",
            "type": "string"
          },
          "program_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Program Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "program_id",
          "pathway_id",
          "revision_id",
          "revision_sha256",
          "title",
          "owner_id",
          "owner_name",
          "lifecycle",
          "audience",
          "members",
          "authored_at"
        ],
        "title": "PathwayRevision",
        "type": "object"
      },
      "PathwayToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "PathwayToolWitness",
        "type": "object"
      },
      "PathwayWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/PathwayEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "pathways": {
            "items": {
              "$ref": "#/components/schemas/PathwayProjection"
            },
            "title": "Pathways",
            "type": "array"
          },
          "schema_version": {
            "const": "6.1.0",
            "default": "6.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/PathwayWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "pathways"],
        "title": "PathwayWorkspaceResponse",
        "type": "object"
      },
      "PathwayWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "credentials_issued": {
            "const": 0,
            "default": 0,
            "title": "Credentials Issued",
            "type": "integer"
          },
          "cyclic": {
            "minimum": 0.0,
            "title": "Cyclic",
            "type": "integer"
          },
          "infeasible_schedules": {
            "minimum": 0.0,
            "title": "Infeasible Schedules",
            "type": "integer"
          },
          "pathways": {
            "minimum": 0.0,
            "title": "Pathways",
            "type": "integer"
          },
          "publishable": {
            "minimum": 0.0,
            "title": "Publishable",
            "type": "integer"
          }
        },
        "required": ["pathways", "publishable", "blocked", "cyclic", "infeasible_schedules"],
        "title": "PathwayWorkspaceSummary",
        "type": "object"
      },
      "PauseCommand": {
        "additionalProperties": false,
        "description": "Stop at the next step boundary. Nothing here names a new plan.",
        "properties": {
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "interrupts_a_call_in_flight": {
            "const": false,
            "default": false,
            "title": "Interrupts A Call In Flight",
            "type": "boolean"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "issued_by_role": {
            "enum": ["run_owner", "course_owner", "operator", "budget_holder"],
            "title": "Issued By Role",
            "type": "string"
          },
          "kind": {
            "const": "pause",
            "default": "pause",
            "title": "Kind",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "command_id",
          "idempotency_key",
          "run_id",
          "expected_version",
          "issued_by",
          "issued_by_role",
          "reason",
          "issued_at"
        ],
        "title": "PauseCommand",
        "type": "object"
      },
      "PedagogyBounds": {
        "additionalProperties": false,
        "description": "What this tutor may do, and in which mode.",
        "properties": {
          "allowed_moves": {
            "items": {
              "enum": [
                "ask_a_diagnostic_question",
                "offer_a_hint",
                "scaffold_a_step",
                "demonstrate_a_worked_example",
                "give_the_direct_answer",
                "restate_the_objective"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Allowed Moves",
            "type": "array"
          },
          "ladder": {
            "$ref": "#/components/schemas/HintLadder"
          },
          "mode": {
            "enum": ["practice", "formative", "assessment", "high_stakes"],
            "title": "Mode",
            "type": "string"
          }
        },
        "required": ["mode", "ladder", "allowed_moves"],
        "title": "PedagogyBounds",
        "type": "object"
      },
      "PedagogyCell": {
        "additionalProperties": false,
        "properties": {
          "mode": {
            "enum": ["practice", "formative", "assessment", "high_stakes"],
            "title": "Mode",
            "type": "string"
          },
          "move": {
            "enum": [
              "ask_a_diagnostic_question",
              "offer_a_hint",
              "scaffold_a_step",
              "demonstrate_a_worked_example",
              "give_the_direct_answer",
              "restate_the_objective"
            ],
            "title": "Move",
            "type": "string"
          },
          "permitted": {
            "title": "Permitted",
            "type": "boolean"
          }
        },
        "required": ["mode", "move", "permitted"],
        "title": "PedagogyCell",
        "type": "object"
      },
      "PedagogyFinding": {
        "additionalProperties": false,
        "properties": {
          "blocking": {
            "title": "Blocking",
            "type": "boolean"
          },
          "claim_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Claim Id"
          },
          "code": {
            "enum": [
              "pedagogy.hint-ladder.stage-exceeds-policy",
              "pedagogy.hint-ladder.stage-skipped",
              "pedagogy.scaffolding.absent",
              "pedagogy.direct-answer.answer-key-disclosed",
              "pedagogy.learner-agency.no-learner-action",
              "pedagogy.cognitive-demand.below-policy",
              "pedagogy.tone.banned-marker",
              "pedagogy.accessibility.reading-grade-exceeds-policy",
              "pedagogy.accessibility.sentence-too-long",
              "pedagogy.accessibility.media-without-text-alternative",
              "pedagogy.assessment-mode.disclosure-in-assessed-context",
              "pedagogy.assessment-mode.tool-not-permitted"
            ],
            "title": "Code",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "hint_ladder",
              "scaffolding",
              "direct_answer",
              "learner_agency",
              "cognitive_demand",
              "tone",
              "accessibility",
              "assessment_mode"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "observed": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Observed",
            "type": "string"
          },
          "required": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Required",
            "type": "string"
          }
        },
        "required": ["code", "dimension", "claim_id", "observed", "required", "blocking"],
        "title": "PedagogyFinding",
        "type": "object"
      },
      "PedagogyMeasurement": {
        "additionalProperties": false,
        "description": "What the pedagogy evaluators observed, before any policy comparison.",
        "properties": {
          "direct_answer_checked": {
            "title": "Direct Answer Checked",
            "type": "boolean"
          },
          "learner_action_count": {
            "minimum": 0.0,
            "title": "Learner Action Count",
            "type": "integer"
          },
          "longest_sentence_words": {
            "minimum": 0.0,
            "title": "Longest Sentence Words",
            "type": "integer"
          },
          "media_reference_count": {
            "minimum": 0.0,
            "title": "Media Reference Count",
            "type": "integer"
          },
          "media_without_text_alternative": {
            "minimum": 0.0,
            "title": "Media Without Text Alternative",
            "type": "integer"
          },
          "observed_cognitive_demand": {
            "anyOf": [
              {
                "enum": ["recall", "understand", "apply", "analyze", "evaluate", "create"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Cognitive Demand"
          },
          "observed_stage": {
            "enum": ["orient", "probe", "targeted_hint", "worked_step", "full_solution"],
            "title": "Observed Stage",
            "type": "string"
          },
          "reading_grade": {
            "maximum": 40.0,
            "minimum": 0.0,
            "title": "Reading Grade",
            "type": "number"
          }
        },
        "required": [
          "observed_stage",
          "learner_action_count",
          "observed_cognitive_demand",
          "direct_answer_checked",
          "reading_grade",
          "longest_sentence_words",
          "media_reference_count",
          "media_without_text_alternative"
        ],
        "title": "PedagogyMeasurement",
        "type": "object"
      },
      "PedagogyPolicy": {
        "additionalProperties": false,
        "description": "The exact policy a turn is judged against. Every threshold is declared.",
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/AccessibilityPolicy"
          },
          "assessment_mode": {
            "enum": ["practice", "homework", "quiz", "graded", "exam"],
            "title": "Assessment Mode",
            "type": "string"
          },
          "banned_tone_markers": {
            "default": [],
            "items": {
              "maxLength": 120,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 64,
            "title": "Banned Tone Markers",
            "type": "array"
          },
          "claim_kinds_requiring_current_approved_source": {
            "default": ["factual", "procedural"],
            "items": {
              "enum": ["factual", "procedural", "hint", "pedagogical", "motivational", "safety"],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Claim Kinds Requiring Current Approved Source",
            "type": "array"
          },
          "integrity_mode": {
            "enum": ["open", "monitored", "proctored", "lockdown"],
            "title": "Integrity Mode",
            "type": "string"
          },
          "learner_stage_reached": {
            "enum": ["orient", "probe", "targeted_hint", "worked_step", "full_solution"],
            "title": "Learner Stage Reached",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "max_stage_permitted": {
            "enum": ["orient", "probe", "targeted_hint", "worked_step", "full_solution"],
            "title": "Max Stage Permitted",
            "type": "string"
          },
          "minimum_citation_authority": {
            "default": "secondary",
            "enum": ["unknown", "community", "secondary", "primary", "authoritative"],
            "title": "Minimum Citation Authority",
            "type": "string"
          },
          "minimum_citations_per_grounded_claim": {
            "default": 1,
            "maximum": 8.0,
            "minimum": 1.0,
            "title": "Minimum Citations Per Grounded Claim",
            "type": "integer"
          },
          "minimum_cognitive_demand": {
            "anyOf": [
              {
                "enum": ["recall", "understand", "apply", "analyze", "evaluate", "create"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Cognitive Demand"
          },
          "minimum_learner_actions": {
            "maximum": 20.0,
            "minimum": 0.0,
            "title": "Minimum Learner Actions",
            "type": "integer"
          },
          "permitted_tool_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Permitted Tool Ids",
            "type": "array"
          },
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Revision Sha256",
            "type": "string"
          }
        },
        "required": [
          "policy_id",
          "policy_revision_sha256",
          "locale",
          "max_stage_permitted",
          "learner_stage_reached",
          "minimum_learner_actions",
          "minimum_cognitive_demand",
          "accessibility",
          "assessment_mode",
          "integrity_mode"
        ],
        "title": "PedagogyPolicy",
        "type": "object"
      },
      "PercentileObservation": {
        "additionalProperties": false,
        "properties": {
          "observed_micros": {
            "maximum": 60000000.0,
            "minimum": 0.0,
            "title": "Observed Micros",
            "type": "integer"
          },
          "percentile": {
            "enum": ["p50", "p95", "p99"],
            "title": "Percentile",
            "type": "string"
          }
        },
        "required": ["percentile", "observed_micros"],
        "title": "PercentileObservation",
        "type": "object"
      },
      "PercentileTarget": {
        "additionalProperties": false,
        "properties": {
          "budget_micros": {
            "maximum": 60000000.0,
            "minimum": 1.0,
            "title": "Budget Micros",
            "type": "integer"
          },
          "percentile": {
            "enum": ["p50", "p95", "p99"],
            "title": "Percentile",
            "type": "string"
          }
        },
        "required": ["percentile", "budget_micros"],
        "title": "PercentileTarget",
        "type": "object"
      },
      "PersistenceDesignReport": {
        "additionalProperties": false,
        "description": "The schema review: every missing aggregate, designed or explained.",
        "properties": {
          "by_classification": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Classification",
            "type": "object"
          },
          "by_confidence": {
            "additionalProperties": {
              "type": "integer"
            },
            "title": "By Confidence",
            "type": "object"
          },
          "derived_shapes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DerivedShape"
            },
            "maxItems": 600,
            "title": "Derived Shapes",
            "type": "array"
          },
          "designs": {
            "items": {
              "$ref": "#/components/schemas/AggregateDesign"
            },
            "maxItems": 600,
            "minItems": 1,
            "title": "Designs",
            "type": "array"
          },
          "modules_reviewed": {
            "minimum": 1.0,
            "title": "Modules Reviewed",
            "type": "integer"
          },
          "needing_ratification": {
            "minimum": 0.0,
            "title": "Needing Ratification",
            "type": "integer"
          },
          "references_into_existing_tables": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 400,
            "title": "References Into Existing Tables",
            "type": "array"
          },
          "schema_version": {
            "const": "8.1.1",
            "default": "8.1.1",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "modules_reviewed",
          "designs",
          "by_classification",
          "by_confidence",
          "needing_ratification"
        ],
        "title": "PersistenceDesignReport",
        "type": "object"
      },
      "PersonaAllocation": {
        "additionalProperties": false,
        "properties": {
          "allocated": {
            "maximum": 2000.0,
            "minimum": 0.0,
            "title": "Allocated",
            "type": "integer"
          },
          "expected_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Expected Basis Points",
            "type": "integer"
          },
          "persona_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Persona Id",
            "type": "string"
          }
        },
        "required": ["persona_id", "expected_basis_points", "allocated"],
        "title": "PersonaAllocation",
        "type": "object"
      },
      "PersonaDistribution": {
        "additionalProperties": false,
        "properties": {
          "derived_from_real_learner": {
            "const": false,
            "default": false,
            "title": "Derived From Real Learner",
            "type": "boolean"
          },
          "history_length": {
            "$ref": "#/components/schemas/IntRange"
          },
          "integrity_modes": {
            "items": {
              "enum": ["open", "monitored", "proctored", "lockdown"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Integrity Modes",
            "type": "array"
          },
          "learning_gain_basis_points": {
            "$ref": "#/components/schemas/IntRange"
          },
          "locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "mastery_basis_points": {
            "$ref": "#/components/schemas/IntRange"
          },
          "pacing_items_per_day": {
            "$ref": "#/components/schemas/IntRange"
          },
          "persona_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Persona Id",
            "type": "string"
          },
          "pnp_supports": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Pnp Supports",
            "type": "array"
          },
          "preference_tags": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Preference Tags",
            "type": "array"
          },
          "prerequisite_satisfaction_basis_points": {
            "$ref": "#/components/schemas/IntRange"
          },
          "title": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "persona_id",
          "title",
          "weight_basis_points",
          "prerequisite_satisfaction_basis_points",
          "mastery_basis_points",
          "history_length",
          "pacing_items_per_day",
          "learning_gain_basis_points",
          "locales",
          "integrity_modes"
        ],
        "title": "PersonaDistribution",
        "type": "object"
      },
      "PhasePlan": {
        "additionalProperties": false,
        "description": "One phase of one aggregate's migration, forwards and backwards.",
        "properties": {
          "additive": {
            "title": "Additive",
            "type": "boolean"
          },
          "batch_size": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Batch Size"
          },
          "forward": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Forward",
            "type": "array"
          },
          "idempotency_basis": {
            "maxLength": 300,
            "minLength": 8,
            "title": "Idempotency Basis",
            "type": "string"
          },
          "phase": {
            "enum": ["expand", "backfill", "verify", "cutover", "contract"],
            "title": "Phase",
            "type": "string"
          },
          "rollback": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Rollback",
            "type": "array"
          }
        },
        "required": ["phase", "idempotency_basis", "additive"],
        "title": "PhasePlan",
        "type": "object"
      },
      "PinnedArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "pattern": "^[a-z0-9][a-z0-9._/-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["artifact_id", "version", "artifact_sha256"],
        "title": "PinnedArtifact",
        "type": "object"
      },
      "PinnedItemRevision": {
        "additionalProperties": false,
        "properties": {
          "answer_material_included": {
            "const": false,
            "default": false,
            "title": "Answer Material Included",
            "type": "boolean"
          },
          "direction_override": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Direction Override"
          },
          "item_family": {
            "enum": ["selected_response", "written_response", "math_code", "media_interactive"],
            "title": "Item Family",
            "type": "string"
          },
          "item_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "locator": {
            "pattern": "^item://[A-Za-z0-9._:/-]{3,500}$",
            "title": "Locator",
            "type": "string"
          },
          "max_viewport_width": {
            "maximum": 4096.0,
            "minimum": 240.0,
            "title": "Max Viewport Width",
            "type": "integer"
          },
          "member_type": {
            "const": "item",
            "default": "item",
            "title": "Member Type",
            "type": "string"
          },
          "min_viewport_width": {
            "maximum": 4096.0,
            "minimum": 240.0,
            "title": "Min Viewport Width",
            "type": "integer"
          },
          "order": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Order",
            "type": "integer"
          },
          "projection_surface": {
            "const": "learner",
            "default": "learner",
            "title": "Projection Surface",
            "type": "string"
          },
          "required_accessibility_supports": {
            "items": {
              "enum": [
                "screen_reader",
                "keyboard",
                "captions",
                "transcript",
                "audio_description",
                "sign_language"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Required Accessibility Supports",
            "type": "array"
          },
          "required_input_modes": {
            "items": {
              "enum": ["keyboard", "pointer", "touch", "switch"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Required Input Modes",
            "type": "array"
          },
          "required_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Required Locale",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "role": {
            "enum": ["question", "follow_up", "check", "extension"],
            "title": "Role",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "item_family",
          "item_id",
          "revision",
          "revision_sha256",
          "tenant_id",
          "role",
          "locator",
          "order",
          "required_locale",
          "min_viewport_width",
          "max_viewport_width",
          "required_input_modes",
          "required_accessibility_supports"
        ],
        "title": "PinnedItemRevision",
        "type": "object"
      },
      "PinnedStimulusRevision": {
        "additionalProperties": false,
        "properties": {
          "locator": {
            "pattern": "^stimulus://[A-Za-z0-9._:/-]{3,500}$",
            "title": "Locator",
            "type": "string"
          },
          "order": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Order",
            "type": "integer"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "shared_context", "reference", "source"],
            "title": "Role",
            "type": "string"
          },
          "stimulus_id": {
            "pattern": "^stimulus-[a-f0-9]{40}$",
            "title": "Stimulus Id",
            "type": "string"
          }
        },
        "required": ["stimulus_id", "revision", "revision_sha256", "role", "locator", "order"],
        "title": "PinnedStimulusRevision",
        "type": "object"
      },
      "PinnedTool": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "tool_id": {
            "pattern": "^[a-z0-9][a-z0-9._/-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256"],
        "title": "PinnedTool",
        "type": "object"
      },
      "Placement": {
        "additionalProperties": false,
        "description": "Where one node goes in one rendering of one layout.\n\nThe only place in M9.5 a coordinate exists. It is produced by\n`graph_parity`'s layout functions and consumed by a renderer; nothing reads\nit back into the graph, and there is no endpoint that accepts one.",
        "properties": {
          "column": {
            "minimum": 0.0,
            "title": "Column",
            "type": "integer"
          },
          "node_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Node Id",
            "type": "string"
          },
          "row": {
            "minimum": 0.0,
            "title": "Row",
            "type": "integer"
          }
        },
        "required": ["node_id", "column", "row"],
        "title": "Placement",
        "type": "object"
      },
      "PlanBudget": {
        "additionalProperties": false,
        "properties": {
          "deadline_ms": {
            "maximum": 86400000.0,
            "minimum": 1.0,
            "title": "Deadline Ms",
            "type": "integer"
          },
          "max_cost_minor_units": {
            "maximum": 1000000000.0,
            "minimum": 1.0,
            "title": "Max Cost Minor Units",
            "type": "integer"
          },
          "max_model_invocations": {
            "maximum": 2000.0,
            "minimum": 1.0,
            "title": "Max Model Invocations",
            "type": "integer"
          },
          "max_tool_calls": {
            "maximum": 20000.0,
            "minimum": 0.0,
            "title": "Max Tool Calls",
            "type": "integer"
          }
        },
        "required": [
          "max_model_invocations",
          "max_tool_calls",
          "max_cost_minor_units",
          "deadline_ms"
        ],
        "title": "PlanBudget",
        "type": "object"
      },
      "PlanCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["template", "binding", "grant", "execution", "authority", "dispatch"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "PlanCorpusCaseResult",
        "type": "object"
      },
      "PlanCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["template", "binding", "grant", "execution", "authority", "dispatch"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "PlanCorpusMetric",
        "type": "object"
      },
      "PlanDispatchRequest": {
        "additionalProperties": false,
        "description": "What a caller may ask for: a template, its bindings, and a destination.\n\nThere is no field here for a plan, a step, a graph, or a grant. A caller\ncannot inject one because the request has nowhere to put it \u2014 the service\nmaterialises the plan from the ratified template.",
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "destination": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Destination",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "inputs": {
            "items": {
              "$ref": "#/components/schemas/InputBinding"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Inputs",
            "type": "array"
          },
          "learner_context": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LearnerContextField"
            },
            "maxItems": 10,
            "title": "Learner Context",
            "type": "array"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "template_id",
          "template_version",
          "inputs",
          "destination",
          "requested_at"
        ],
        "title": "PlanDispatchRequest",
        "type": "object"
      },
      "PlanEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/PlanCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.13-agent-plan-v1",
            "default": "metis-m6.13-agent-plan-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_probe_refused": {
            "title": "Every Probe Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "grant_matrix": {
            "items": {
              "$ref": "#/components/schemas/GrantMatrixCell"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Grant Matrix",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/PlanCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/DispatchProbe"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          },
          "schema_version": {
            "const": "6.13.0",
            "default": "6.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "withheld_authorities": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Withheld Authorities",
            "type": "array"
          }
        },
        "required": [
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "probes",
          "every_probe_refused",
          "grant_matrix",
          "withheld_authorities"
        ],
        "title": "PlanEvaluationReport",
        "type": "object"
      },
      "PlanStep": {
        "additionalProperties": false,
        "description": "One step: what it reads, what it may do, what it costs, when it stops.",
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/StepBudget"
          },
          "depends_on": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Depends On",
            "type": "array"
          },
          "grants": {
            "items": {
              "$ref": "#/components/schemas/AgentToolGrant"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Grants",
            "type": "array"
          },
          "inputs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InputBinding"
            },
            "maxItems": 60,
            "title": "Inputs",
            "type": "array"
          },
          "learner_context": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LearnerContextField"
            },
            "maxItems": 10,
            "title": "Learner Context",
            "type": "array"
          },
          "produces_evidence": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Produces Evidence",
            "type": "array"
          },
          "purpose": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Purpose",
            "type": "string"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          },
          "stop_conditions": {
            "items": {
              "$ref": "#/components/schemas/StopCondition"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Stop Conditions",
            "type": "array"
          }
        },
        "required": [
          "step_id",
          "purpose",
          "grants",
          "budget",
          "stop_conditions",
          "produces_evidence"
        ],
        "title": "PlanStep",
        "type": "object"
      },
      "PlatformUsagePointResponse": {
        "properties": {
          "feature": {
            "title": "Feature",
            "type": "string"
          },
          "usage": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Usage",
            "type": "integer"
          }
        },
        "required": ["feature", "usage"],
        "title": "PlatformUsagePointResponse",
        "type": "object"
      },
      "PnpSupportRule": {
        "additionalProperties": false,
        "description": "Personal needs and preferences, expressed as supports rather than causes.",
        "properties": {
          "forbidden_features": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Forbidden Features",
            "type": "array"
          },
          "required_supports": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Required Supports",
            "type": "array"
          }
        },
        "title": "PnpSupportRule",
        "type": "object"
      },
      "PolicyAggregation": {
        "additionalProperties": false,
        "properties": {
          "advisory_gate_count": {
            "minimum": 0.0,
            "title": "Advisory Gate Count",
            "type": "integer"
          },
          "mandatory_gate_count": {
            "minimum": 0.0,
            "title": "Mandatory Gate Count",
            "type": "integer"
          },
          "mandatory_satisfied_count": {
            "minimum": 0.0,
            "title": "Mandatory Satisfied Count",
            "type": "integer"
          },
          "outcome": {
            "enum": [
              "pass",
              "fail",
              "advisory",
              "manual_review",
              "not_applicable",
              "insufficient_data",
              "unavailable",
              "error",
              "stale",
              "unknown"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "state_counts": {
            "$ref": "#/components/schemas/OutcomeStateCounts"
          }
        },
        "required": [
          "outcome",
          "release_allowed",
          "mandatory_gate_count",
          "mandatory_satisfied_count",
          "advisory_gate_count",
          "state_counts",
          "rationale"
        ],
        "title": "PolicyAggregation",
        "type": "object"
      },
      "PolicyApproval": {
        "additionalProperties": false,
        "properties": {
          "approved_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approved At"
          },
          "approved_by": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Approved By",
            "type": "array"
          },
          "decision_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "minLength": 4,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decision Ref"
          },
          "effective_from": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective From"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "status": {
            "enum": ["draft", "approved", "superseded", "withdrawn"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "approved_by", "rationale"],
        "title": "PolicyApproval",
        "type": "object"
      },
      "PolicyArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["artifact_id", "version", "artifact_sha256"],
        "title": "PolicyArtifact",
        "type": "object"
      },
      "PolicyBand": {
        "additionalProperties": false,
        "properties": {
          "band_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Band Id",
            "type": "string"
          },
          "label": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "lower": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lower"
          },
          "outcome": {
            "enum": [
              "pass",
              "fail",
              "advisory",
              "manual_review",
              "not_applicable",
              "insufficient_data",
              "unavailable",
              "error",
              "stale",
              "unknown"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "upper": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upper"
          }
        },
        "required": ["band_id", "label", "outcome", "rationale"],
        "title": "PolicyBand",
        "type": "object"
      },
      "PolicyBundleRecord": {
        "additionalProperties": false,
        "properties": {
          "aggregation": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "approval": {
            "$ref": "#/components/schemas/PolicyApproval"
          },
          "bundle_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Bundle Id",
            "type": "string"
          },
          "bundle_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Bundle Sha256",
            "type": "string"
          },
          "code_floors": {
            "items": {
              "$ref": "#/components/schemas/PolicyCodeFloor"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Code Floors",
            "type": "array"
          },
          "determinism": {
            "enum": ["deterministic", "seeded", "nondeterministic"],
            "title": "Determinism",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "gate": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "lifecycle": {
            "enum": ["draft", "active", "deprecated", "withdrawn"],
            "title": "Lifecycle",
            "type": "string"
          },
          "lifecycle_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Lifecycle Reason",
            "type": "string"
          },
          "owner": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "profile": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "registered_by": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Registered By",
            "type": "string"
          },
          "registry_id": {
            "pattern": "^policy-bundle-version:[a-f0-9]{64}$",
            "title": "Registry Id",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "replay_instructions": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Replay Instructions",
            "type": "string"
          },
          "rubric": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "thresholds": {
            "$ref": "#/components/schemas/RegisteredThresholdSet"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "bundle_id",
          "version",
          "bundle_sha256",
          "gate",
          "policy",
          "rubric",
          "profile",
          "thresholds",
          "aggregation",
          "approval",
          "code_floors",
          "determinism",
          "replay_instructions",
          "lifecycle",
          "lifecycle_reason",
          "owner",
          "evidence_refs",
          "registry_id",
          "registry_sha256",
          "registered_by",
          "registered_at"
        ],
        "title": "PolicyBundleRecord",
        "type": "object"
      },
      "PolicyBundleRegistration": {
        "additionalProperties": false,
        "properties": {
          "aggregation": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "approval": {
            "$ref": "#/components/schemas/PolicyApproval"
          },
          "bundle_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Bundle Id",
            "type": "string"
          },
          "bundle_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Bundle Sha256",
            "type": "string"
          },
          "code_floors": {
            "items": {
              "$ref": "#/components/schemas/PolicyCodeFloor"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Code Floors",
            "type": "array"
          },
          "determinism": {
            "enum": ["deterministic", "seeded", "nondeterministic"],
            "title": "Determinism",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Refs",
            "type": "array"
          },
          "gate": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "lifecycle": {
            "enum": ["draft", "active", "deprecated", "withdrawn"],
            "title": "Lifecycle",
            "type": "string"
          },
          "lifecycle_reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Lifecycle Reason",
            "type": "string"
          },
          "owner": {
            "maxLength": 240,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "profile": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "replay_instructions": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Replay Instructions",
            "type": "string"
          },
          "rubric": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "thresholds": {
            "$ref": "#/components/schemas/RegisteredThresholdSet"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "bundle_id",
          "version",
          "bundle_sha256",
          "gate",
          "policy",
          "rubric",
          "profile",
          "thresholds",
          "aggregation",
          "approval",
          "code_floors",
          "determinism",
          "replay_instructions",
          "lifecycle",
          "lifecycle_reason",
          "owner",
          "evidence_refs"
        ],
        "title": "PolicyBundleRegistration",
        "type": "object"
      },
      "PolicyCell": {
        "additionalProperties": false,
        "properties": {
          "at_high_risk": {
            "enum": ["permitted", "manageable_with_mitigation", "disqualifying"],
            "title": "At High Risk",
            "type": "string"
          },
          "base": {
            "enum": ["permitted", "manageable_with_mitigation", "disqualifying"],
            "title": "Base",
            "type": "string"
          },
          "conflict_type": {
            "enum": [
              "financial_interest",
              "employment",
              "authorship",
              "close_personal",
              "institutional",
              "competing_product",
              "prior_involvement",
              "supervisory"
            ],
            "title": "Conflict Type",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "with_overlay": {
            "enum": ["permitted", "manageable_with_mitigation", "disqualifying"],
            "title": "With Overlay",
            "type": "string"
          }
        },
        "required": ["dimension", "conflict_type", "base", "at_high_risk", "with_overlay"],
        "title": "PolicyCell",
        "type": "object"
      },
      "PolicyCodeFloor": {
        "additionalProperties": false,
        "properties": {
          "component_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Component Id",
            "type": "string"
          },
          "minimum_version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Minimum Version",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "required_artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Required Artifact Sha256",
            "type": "string"
          },
          "source_uri": {
            "maxLength": 2048,
            "minLength": 4,
            "title": "Source Uri",
            "type": "string"
          }
        },
        "required": [
          "component_id",
          "minimum_version",
          "required_artifact_sha256",
          "source_uri",
          "rationale"
        ],
        "title": "PolicyCodeFloor",
        "type": "object"
      },
      "PolicyProjection-Input": {
        "additionalProperties": false,
        "properties": {
          "aggregation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PolicyArtifact"
              },
              {
                "type": "null"
              }
            ]
          },
          "gate": {
            "$ref": "#/components/schemas/PolicyArtifact"
          },
          "policy": {
            "$ref": "#/components/schemas/PolicyArtifact"
          },
          "profile": {
            "$ref": "#/components/schemas/PolicyArtifact"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "rubric": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PolicyArtifact"
              },
              {
                "type": "null"
              }
            ]
          },
          "thresholds": {
            "$ref": "#/components/schemas/ThresholdSnapshot-Input"
          }
        },
        "required": ["gate", "policy", "profile", "thresholds", "rationale"],
        "title": "PolicyProjection",
        "type": "object"
      },
      "PolicyProjection-Output": {
        "additionalProperties": false,
        "properties": {
          "aggregation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PolicyArtifact"
              },
              {
                "type": "null"
              }
            ]
          },
          "gate": {
            "$ref": "#/components/schemas/PolicyArtifact"
          },
          "policy": {
            "$ref": "#/components/schemas/PolicyArtifact"
          },
          "profile": {
            "$ref": "#/components/schemas/PolicyArtifact"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "rubric": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PolicyArtifact"
              },
              {
                "type": "null"
              }
            ]
          },
          "thresholds": {
            "$ref": "#/components/schemas/ThresholdSnapshot-Output"
          }
        },
        "required": ["gate", "policy", "profile", "thresholds", "rationale"],
        "title": "PolicyProjection",
        "type": "object"
      },
      "PolicyRecomputeRequest": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "previous_verdict_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Previous Verdict Id",
            "type": "string"
          },
          "projection": {
            "$ref": "#/components/schemas/PolicyProjection-Input"
          },
          "provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerdictProvenanceDeclaration"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "default": "1.2.0",
            "enum": ["1.1.0", "1.2.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "previous_verdict_id", "projection", "evaluated_at"],
        "title": "PolicyRecomputeRequest",
        "type": "object"
      },
      "PolicyVerdictRecord": {
        "additionalProperties": false,
        "properties": {
          "aggregation": {
            "$ref": "#/components/schemas/PolicyAggregation"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/RuleDecision"
            },
            "minItems": 1,
            "title": "Decisions",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "measurements": {
            "items": {
              "$ref": "#/components/schemas/MeasurementReference"
            },
            "minItems": 1,
            "title": "Measurements",
            "type": "array"
          },
          "outcome": {
            "enum": [
              "pass",
              "fail",
              "advisory",
              "manual_review",
              "not_applicable",
              "insufficient_data",
              "unavailable",
              "error",
              "stale",
              "unknown"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "projection": {
            "$ref": "#/components/schemas/PolicyProjection-Output"
          },
          "provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerdictProvenanceDeclaration"
              },
              {
                "type": "null"
              }
            ]
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "default": "1.2.0",
            "enum": ["1.1.0", "1.2.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/MeasurementSubject"
          },
          "supersedes_verdict_id": {
            "anyOf": [
              {
                "maxLength": 180,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Verdict Id"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "threshold_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Threshold Snapshot Sha256",
            "type": "string"
          },
          "transition": {
            "$ref": "#/components/schemas/OutcomeTransitionWitness"
          },
          "verdict_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Verdict Id",
            "type": "string"
          },
          "verdict_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verdict Sha256",
            "type": "string"
          }
        },
        "required": [
          "verdict_id",
          "tenant_id",
          "subject",
          "measurements",
          "projection",
          "threshold_snapshot_sha256",
          "decisions",
          "outcome",
          "aggregation",
          "transition",
          "rationale",
          "verdict_sha256",
          "evaluated_at",
          "created_at"
        ],
        "title": "PolicyVerdictRecord",
        "type": "object"
      },
      "PolicyVerdictRequest": {
        "additionalProperties": false,
        "properties": {
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "measurement_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Measurement Ids",
            "type": "array"
          },
          "projection": {
            "$ref": "#/components/schemas/PolicyProjection-Input"
          },
          "provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VerdictProvenanceDeclaration"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "default": "1.2.0",
            "enum": ["1.1.0", "1.2.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "measurement_ids", "projection", "evaluated_at"],
        "title": "PolicyVerdictRequest",
        "type": "object"
      },
      "PoolCandidate": {
        "additionalProperties": false,
        "properties": {
          "approval_state": {
            "enum": ["approved", "in_review", "draft", "retired"],
            "title": "Approval State",
            "type": "string"
          },
          "availability": {
            "enum": ["available", "withdrawn", "embargoed", "quarantined"],
            "title": "Availability",
            "type": "string"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "compromised": {
            "title": "Compromised",
            "type": "boolean"
          },
          "delivery_modes": {
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Delivery Modes",
            "type": "array"
          },
          "difficulty_centilogits": {
            "maximum": 500.0,
            "minimum": -500.0,
            "title": "Difficulty Centilogits",
            "type": "integer"
          },
          "exposure_band": {
            "enum": ["unused", "low", "moderate", "high", "restricted"],
            "title": "Exposure Band",
            "type": "string"
          },
          "exposure_evidence_current": {
            "title": "Exposure Evidence Current",
            "type": "boolean"
          },
          "exposure_rate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Exposure Rate Basis Points",
            "type": "integer"
          },
          "features_present": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Features Present",
            "type": "array"
          },
          "gate_evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CandidateGateEvidence"
            },
            "maxItems": 16,
            "title": "Gate Evidence",
            "type": "array"
          },
          "integrity_modes_supported": {
            "items": {
              "enum": ["open", "monitored", "proctored", "lockdown"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Integrity Modes Supported",
            "type": "array"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "item_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Revision Id",
            "type": "string"
          },
          "item_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Revision Sha256",
            "type": "string"
          },
          "locales": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Locales",
            "type": "array"
          },
          "objective_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "platforms": {
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Platforms",
            "type": "array"
          },
          "revision_evidence": {
            "items": {
              "$ref": "#/components/schemas/CandidateRevisionEvidence"
            },
            "maxItems": 8,
            "title": "Revision Evidence",
            "type": "array"
          },
          "supports_offered": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Supports Offered",
            "type": "array"
          }
        },
        "required": [
          "candidate_id",
          "item_id",
          "item_revision_id",
          "item_revision_sha256",
          "approval_state",
          "availability",
          "objective_ids",
          "difficulty_centilogits",
          "locales",
          "delivery_modes",
          "platforms",
          "integrity_modes_supported",
          "exposure_band",
          "exposure_rate_basis_points",
          "exposure_evidence_current",
          "compromised",
          "revision_evidence"
        ],
        "title": "PoolCandidate",
        "type": "object"
      },
      "PoolCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "rule_contract",
              "exclusion_reasons",
              "context_boundary",
              "deterministic_selection",
              "persistence_and_rationale"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "PoolCorpusMetric",
        "type": "object"
      },
      "PoolEligibilityProjectionRecord": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/PoolEligibilityResponse"
          },
          "rule_current": {
            "title": "Rule Current",
            "type": "boolean"
          }
        },
        "required": ["evaluation", "rule_current"],
        "title": "PoolEligibilityProjectionRecord",
        "type": "object"
      },
      "PoolEligibilityRequest": {
        "additionalProperties": false,
        "properties": {
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "learner": {
            "$ref": "#/components/schemas/LearnerContext"
          },
          "pool": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PoolCandidate"
            },
            "maxItems": 500,
            "title": "Pool",
            "type": "array"
          },
          "rule": {
            "$ref": "#/components/schemas/EligibilityRule"
          },
          "schema_version": {
            "const": "6.3.0",
            "default": "6.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selection": {
            "$ref": "#/components/schemas/SelectionRule"
          }
        },
        "required": ["idempotency_key", "rule", "selection", "learner"],
        "title": "PoolEligibilityRequest",
        "type": "object"
      },
      "PoolEligibilityResponse": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/PoolEngineWitness"
          },
          "evaluated_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Evaluated By",
            "type": "string"
          },
          "evaluation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluation Id",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "projection": {
            "$ref": "#/components/schemas/LearnerProjection"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "rule": {
            "$ref": "#/components/schemas/EligibilityRule"
          },
          "schema_version": {
            "const": "6.3.0",
            "default": "6.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selection": {
            "$ref": "#/components/schemas/PoolSelection"
          },
          "selection_rule": {
            "$ref": "#/components/schemas/SelectionRule"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "verdicts": {
            "items": {
              "$ref": "#/components/schemas/CandidateVerdict"
            },
            "maxItems": 500,
            "title": "Verdicts",
            "type": "array"
          }
        },
        "required": [
          "evaluation_id",
          "idempotency_key",
          "rule",
          "selection_rule",
          "projection",
          "verdicts",
          "selection",
          "engine",
          "request_sha256",
          "evaluated_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "PoolEligibilityResponse",
        "type": "object"
      },
      "PoolEligibilityWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/PoolEvaluationReport"
          },
          "evaluations": {
            "items": {
              "$ref": "#/components/schemas/PoolEligibilityProjectionRecord"
            },
            "title": "Evaluations",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.3.0",
            "default": "6.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/PoolWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "evaluations"],
        "title": "PoolEligibilityWorkspaceResponse",
        "type": "object"
      },
      "PoolEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis-item-pool-eligibility",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.3.0",
            "title": "Engine Version",
            "type": "string"
          },
          "mastery_band_thresholds_basis_points": {
            "default": [4000, 7000, 9000],
            "maxItems": 3,
            "minItems": 3,
            "prefixItems": [
              {
                "type": "integer"
              },
              {
                "type": "integer"
              },
              {
                "type": "integer"
              }
            ],
            "title": "Mastery Band Thresholds Basis Points",
            "type": "array"
          },
          "projection_method": {
            "const": "accommodation-derived-minimized-projection-v1",
            "title": "Projection Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.3.0",
            "default": "6.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selection_method": {
            "const": "total-order-strategy-then-candidate-id-v1",
            "title": "Selection Method",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/PoolToolWitness"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_ineligible_without_relaxation",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "projection_method",
          "selection_method",
          "tools",
          "rules_sha256",
          "unsupported_behavior"
        ],
        "title": "PoolEngineWitness",
        "type": "object"
      },
      "PoolEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "PoolEvaluationCaseResult",
        "type": "object"
      },
      "PoolEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "boundaries": {
            "$ref": "#/components/schemas/BoundarySweepReport"
          },
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/PoolEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.3-item-pool-eligibility-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/PoolCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "boundaries",
          "limitations"
        ],
        "title": "PoolEvaluationReport",
        "type": "object"
      },
      "PoolSelection": {
        "additionalProperties": false,
        "properties": {
          "constraints_relaxed": {
            "const": 0,
            "default": 0,
            "title": "Constraints Relaxed",
            "type": "integer"
          },
          "decided_by": {
            "enum": ["primary_key", "tie_break", "none"],
            "title": "Decided By",
            "type": "string"
          },
          "eligible_count": {
            "minimum": 0.0,
            "title": "Eligible Count",
            "type": "integer"
          },
          "excluded_count": {
            "minimum": 0.0,
            "title": "Excluded Count",
            "type": "integer"
          },
          "exclusions_by_dimension": {
            "items": {
              "$ref": "#/components/schemas/DimensionTally"
            },
            "maxItems": 9,
            "title": "Exclusions By Dimension",
            "type": "array"
          },
          "primary_key_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Key Value"
          },
          "seed": {
            "title": "Seed",
            "type": "string"
          },
          "selected_candidate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Candidate Id"
          },
          "state": {
            "enum": ["selected", "no_eligible_item", "empty_pool"],
            "title": "State",
            "type": "string"
          },
          "strategy": {
            "enum": [
              "lowest_exposure_first",
              "nearest_target_difficulty",
              "widest_objective_coverage",
              "seeded_uniform"
            ],
            "title": "Strategy",
            "type": "string"
          }
        },
        "required": [
          "state",
          "selected_candidate_id",
          "strategy",
          "seed",
          "decided_by",
          "primary_key_value",
          "eligible_count",
          "excluded_count",
          "exclusions_by_dimension"
        ],
        "title": "PoolSelection",
        "type": "object"
      },
      "PoolToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "PoolToolWitness",
        "type": "object"
      },
      "PoolWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "candidates_excluded": {
            "minimum": 0.0,
            "title": "Candidates Excluded",
            "type": "integer"
          },
          "candidates_judged": {
            "minimum": 0.0,
            "title": "Candidates Judged",
            "type": "integer"
          },
          "constraints_relaxed": {
            "const": 0,
            "default": 0,
            "title": "Constraints Relaxed",
            "type": "integer"
          },
          "evaluations": {
            "minimum": 0.0,
            "title": "Evaluations",
            "type": "integer"
          },
          "no_eligible_item": {
            "minimum": 0.0,
            "title": "No Eligible Item",
            "type": "integer"
          },
          "selected": {
            "minimum": 0.0,
            "title": "Selected",
            "type": "integer"
          }
        },
        "required": [
          "evaluations",
          "selected",
          "no_eligible_item",
          "candidates_judged",
          "candidates_excluded"
        ],
        "title": "PoolWorkspaceSummary",
        "type": "object"
      },
      "PreRegistration": {
        "additionalProperties": false,
        "description": "A sealed plan. The analysis binds this exact hash.\n\n``plan_revision_sha256`` is checked against a re-derivation from the plan's\nown content, so a stored plan whose bytes were edited after sealing fails to\nload. Construct one with :meth:`PreRegistrationIntake.seal`, never by hand.",
        "properties": {
          "alpha_basis_points": {
            "maximum": 5000.0,
            "minimum": 1.0,
            "title": "Alpha Basis Points",
            "type": "integer"
          },
          "analysis_method": {
            "enum": ["two_proportion_z", "difference_in_proportions"],
            "title": "Analysis Method",
            "type": "string"
          },
          "estimand": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Estimand",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/RegisteredMetric"
            },
            "maxItems": 30,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "minimum_detectable_effect_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Minimum Detectable Effect Basis Points",
            "type": "integer"
          },
          "multiple_testing_policy": {
            "enum": ["bonferroni", "holm", "none_single_primary"],
            "title": "Multiple Testing Policy",
            "type": "string"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "plan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Revision Sha256",
            "type": "string"
          },
          "privacy_rules": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Privacy Rules",
            "type": "string"
          },
          "sealed_at": {
            "format": "date-time",
            "title": "Sealed At",
            "type": "string"
          },
          "subgroup_rules": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Subgroup Rules",
            "type": "string"
          },
          "target_sample_per_variant": {
            "minimum": 1.0,
            "title": "Target Sample Per Variant",
            "type": "integer"
          }
        },
        "required": [
          "plan_id",
          "sealed_at",
          "metrics",
          "estimand",
          "analysis_method",
          "alpha_basis_points",
          "minimum_detectable_effect_basis_points",
          "target_sample_per_variant",
          "multiple_testing_policy",
          "subgroup_rules",
          "privacy_rules",
          "plan_revision_sha256"
        ],
        "title": "PreRegistration",
        "type": "object"
      },
      "PreRegistrationIntake": {
        "additionalProperties": false,
        "description": "A plan as submitted: everything that gets sealed, and no seal.\n\nCallers cannot supply the revision hash, so no caller can declare a seal\nthat does not hash the plan it seals. The hash is derived by the service\nfrom these exact fields \u2014 see :meth:`seal`.",
        "properties": {
          "alpha_basis_points": {
            "maximum": 5000.0,
            "minimum": 1.0,
            "title": "Alpha Basis Points",
            "type": "integer"
          },
          "analysis_method": {
            "enum": ["two_proportion_z", "difference_in_proportions"],
            "title": "Analysis Method",
            "type": "string"
          },
          "estimand": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Estimand",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/RegisteredMetric"
            },
            "maxItems": 30,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "minimum_detectable_effect_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Minimum Detectable Effect Basis Points",
            "type": "integer"
          },
          "multiple_testing_policy": {
            "enum": ["bonferroni", "holm", "none_single_primary"],
            "title": "Multiple Testing Policy",
            "type": "string"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "privacy_rules": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Privacy Rules",
            "type": "string"
          },
          "sealed_at": {
            "format": "date-time",
            "title": "Sealed At",
            "type": "string"
          },
          "subgroup_rules": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Subgroup Rules",
            "type": "string"
          },
          "target_sample_per_variant": {
            "minimum": 1.0,
            "title": "Target Sample Per Variant",
            "type": "integer"
          }
        },
        "required": [
          "plan_id",
          "sealed_at",
          "metrics",
          "estimand",
          "analysis_method",
          "alpha_basis_points",
          "minimum_detectable_effect_basis_points",
          "target_sample_per_variant",
          "multiple_testing_policy",
          "subgroup_rules",
          "privacy_rules"
        ],
        "title": "PreRegistrationIntake",
        "type": "object"
      },
      "PreflightBody": {
        "properties": {
          "build_revision": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Build Revision",
            "type": "string"
          },
          "capabilities": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TargetCapability"
            },
            "title": "Capabilities",
            "type": "array"
          },
          "package_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Package Id",
            "type": "string"
          },
          "profile": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Profile",
            "type": "string"
          },
          "standard": {
            "enum": ["qti", "scorm", "common_cartridge", "thin_common_cartridge"],
            "title": "Standard",
            "type": "string"
          },
          "uses": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FeatureUseBody"
            },
            "title": "Uses",
            "type": "array"
          },
          "version": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["package_id", "build_revision", "standard", "profile", "version"],
        "title": "PreflightBody",
        "type": "object"
      },
      "PresentedClaim": {
        "additionalProperties": false,
        "properties": {
          "citation_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Citation Ids",
            "type": "array"
          },
          "claim_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "presented_as_supported": {
            "title": "Presented As Supported",
            "type": "boolean"
          }
        },
        "required": ["claim_id", "presented_as_supported"],
        "title": "PresentedClaim",
        "type": "object"
      },
      "PreviewBody": {
        "description": "What the caller knows about the targets' capacity.\n\nEmpty means no capacity limit was supplied, which is why the preview\nreports no capacity finding rather than a clean one \u2014 a limit nobody\ndeclared is not a limit that was met.",
        "properties": {
          "known_targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicationTarget"
            },
            "title": "Known Targets",
            "type": "array"
          }
        },
        "title": "PreviewBody",
        "type": "object"
      },
      "PreviewCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "persona",
              "pedagogy",
              "grant",
              "preview",
              "accessibility",
              "escalation",
              "boundary"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "PreviewCorpusCaseResult",
        "type": "object"
      },
      "PreviewCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "persona",
              "pedagogy",
              "grant",
              "preview",
              "accessibility",
              "escalation",
              "boundary"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "PreviewCorpusMetric",
        "type": "object"
      },
      "PreviewEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/PreviewCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.17-tutor-preview-v1",
            "default": "metis-m6.17-tutor-preview-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_probe_refused": {
            "title": "Every Probe Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/PreviewCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "modality_checks": {
            "items": {
              "$ref": "#/components/schemas/ModalityCheck"
            },
            "maxItems": 24,
            "minItems": 1,
            "title": "Modality Checks",
            "type": "array"
          },
          "pedagogy_matrix": {
            "items": {
              "$ref": "#/components/schemas/PedagogyCell"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Pedagogy Matrix",
            "type": "array"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/BoundaryProbe"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          },
          "schema_version": {
            "const": "6.17.0",
            "default": "6.17.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "probes",
          "every_probe_refused",
          "pedagogy_matrix",
          "modality_checks"
        ],
        "title": "PreviewEvaluationReport",
        "type": "object"
      },
      "PreviewFinding": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "kind": {
            "enum": [
              "ungrounded_claim",
              "move_not_allowed_in_mode",
              "answer_revealed",
              "citation_missing",
              "tool_not_in_effective_grant",
              "accessibility_gap"
            ],
            "title": "Kind",
            "type": "string"
          },
          "turn_index": {
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "Turn Index",
            "type": "integer"
          }
        },
        "required": ["kind", "turn_index", "detail"],
        "title": "PreviewFinding",
        "type": "object"
      },
      "PreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "candidate": {
            "$ref": "#/components/schemas/OverlayVersion"
          },
          "current": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/OverlayVersion"
            },
            "maxItems": 100,
            "title": "Current",
            "type": "array"
          },
          "inventory": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InventoryItem"
            },
            "maxItems": 1000,
            "title": "Inventory",
            "type": "array"
          }
        },
        "required": ["candidate"],
        "title": "PreviewRequest",
        "type": "object"
      },
      "PreviewResponseCaptureReceipt": {
        "additionalProperties": false,
        "properties": {
          "accepted_payload": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "title": "Accepted Payload",
            "type": "object"
          },
          "event_name": {
            "title": "Event Name",
            "type": "string"
          },
          "freeform_telemetry_captured": {
            "const": false,
            "default": false,
            "title": "Freeform Telemetry Captured",
            "type": "boolean"
          },
          "learner_identity_captured": {
            "const": false,
            "default": false,
            "title": "Learner Identity Captured",
            "type": "boolean"
          },
          "payload_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Payload Sha256",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.7.0",
            "default": "4.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signature_algorithm": {
            "const": "HMAC-SHA256",
            "default": "HMAC-SHA256",
            "title": "Signature Algorithm",
            "type": "string"
          },
          "signature_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature Sha256",
            "type": "string"
          },
          "signed_receipt_required": {
            "const": true,
            "default": true,
            "title": "Signed Receipt Required",
            "type": "boolean"
          },
          "signing_key_exposed": {
            "const": false,
            "default": false,
            "title": "Signing Key Exposed",
            "type": "boolean"
          },
          "state_before_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "State Before Sha256",
            "type": "string"
          }
        },
        "required": [
          "event_name",
          "accepted_payload",
          "payload_sha256",
          "state_before_sha256",
          "receipt_sha256",
          "signature_sha256"
        ],
        "title": "PreviewResponseCaptureReceipt",
        "type": "object"
      },
      "PreviewResponseCaptureRequest": {
        "additionalProperties": false,
        "properties": {
          "event_name": {
            "title": "Event Name",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "payload": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "title": "Payload",
            "type": "object"
          },
          "state_before_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "State Before Sha256",
            "type": "string"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "event_name",
          "payload",
          "state_before_sha256"
        ],
        "title": "PreviewResponseCaptureRequest",
        "type": "object"
      },
      "PreviewTurn": {
        "additionalProperties": false,
        "description": "One turn of a previewed conversation, marked as what it is.\n\n``rendered`` must start with the synthetic marker. A preview a reader could\nmistake for a real session is exactly the failure M6.17.i names, and a\nmarker the renderer might forget is not a distinction.",
        "properties": {
          "cited_source_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 10,
            "title": "Cited Source Ids",
            "type": "array"
          },
          "index": {
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "Index",
            "type": "integer"
          },
          "move": {
            "anyOf": [
              {
                "enum": [
                  "ask_a_diagnostic_question",
                  "offer_a_hint",
                  "scaffold_a_step",
                  "demonstrate_a_worked_example",
                  "give_the_direct_answer",
                  "restate_the_objective"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Move"
          },
          "rendered": {
            "maxLength": 2000,
            "minLength": 20,
            "title": "Rendered",
            "type": "string"
          },
          "speaker": {
            "enum": ["synthetic_learner", "tutor"],
            "title": "Speaker",
            "type": "string"
          }
        },
        "required": ["index", "speaker", "rendered"],
        "title": "PreviewTurn",
        "type": "object"
      },
      "PreviewedChange": {
        "additionalProperties": false,
        "description": "One thing this action would touch.",
        "properties": {
          "effect": {
            "enum": ["created", "updated", "invalidated", "detached", "unchanged"],
            "title": "Effect",
            "type": "string"
          },
          "kind": {
            "enum": ["claim", "citation", "claim_span", "lesson", "item"],
            "title": "Kind",
            "type": "string"
          },
          "logical_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Logical Id",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 300,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "required": ["kind", "logical_id", "effect"],
        "title": "PreviewedChange",
        "type": "object"
      },
      "ProbeResult": {
        "additionalProperties": false,
        "description": "One probe against one fixture. `not_run` is a result, and it is not a pass.",
        "properties": {
          "fixture_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Fixture Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "contract",
              "safety",
              "grounding",
              "answer_leakage",
              "privacy",
              "latency_cost",
              "availability",
              "drift"
            ],
            "title": "Kind",
            "type": "string"
          },
          "measurement": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measurement"
          },
          "observed": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Observed",
            "type": "string"
          },
          "outcome": {
            "enum": ["pass", "fail", "not_run"],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": ["kind", "fixture_id", "outcome", "observed"],
        "title": "ProbeResult",
        "type": "object"
      },
      "ProducerVersions": {
        "additionalProperties": false,
        "description": "Everything that produced this result, pinned.\n\nA result that named its agent but not its model, or its model but not its\nconfig, could not be reproduced or attributed after either changed.",
        "properties": {
          "agent_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Agent Id",
            "type": "string"
          },
          "agent_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Agent Version",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "model_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model Version",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "tool_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Tool Version",
            "type": "string"
          }
        },
        "required": [
          "agent_id",
          "agent_version",
          "run_id",
          "step_id",
          "tool_id",
          "tool_version",
          "model_id",
          "model_version",
          "config_sha256"
        ],
        "title": "ProducerVersions",
        "type": "object"
      },
      "ProgressResponse": {
        "description": "Lesson progress data returned in API responses.",
        "properties": {
          "completed": {
            "title": "Completed",
            "type": "boolean"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "enrollment_id": {
            "format": "uuid",
            "title": "Enrollment Id",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "last_position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Position"
          },
          "lesson_id": {
            "format": "uuid",
            "title": "Lesson Id",
            "type": "string"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "time_spent_seconds": {
            "title": "Time Spent Seconds",
            "type": "integer"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "completed",
          "time_spent_seconds",
          "enrollment_id",
          "lesson_id",
          "created_at",
          "updated_at"
        ],
        "title": "ProgressResponse",
        "type": "object"
      },
      "ProgressUpdate": {
        "description": "Schema for updating lesson progress.",
        "properties": {
          "completed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed"
          },
          "last_position": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Position"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes"
          },
          "time_spent_seconds": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Time Spent Seconds"
          }
        },
        "title": "ProgressUpdate",
        "type": "object"
      },
      "ProjectRequest": {
        "additionalProperties": false,
        "properties": {
          "source": {
            "$ref": "#/components/schemas/CitedSource"
          }
        },
        "required": ["source"],
        "title": "ProjectRequest",
        "type": "object"
      },
      "ProjectedRow": {
        "additionalProperties": false,
        "description": "What the one derivation produced for one payload.",
        "properties": {
          "columns": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Columns",
            "type": "object"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "logical_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Logical Id",
            "type": "string"
          },
          "projected_at": {
            "format": "date-time",
            "title": "Projected At",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "table_name": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Table Name",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "table_name",
          "tenant_id",
          "logical_id",
          "revision",
          "content_sha256",
          "columns",
          "projected_at"
        ],
        "title": "ProjectedRow",
        "type": "object"
      },
      "ProjectedSubject": {
        "additionalProperties": false,
        "description": "A subject as one reviewer may see it, and what was taken out.\n\n`withheld` is not decoration. A reviewer who cannot tell a withheld\nrationale from a missing one files the second as a defect, and the author\nspends a day looking for a field that was never gone.",
        "properties": {
          "fields": {
            "additionalProperties": true,
            "title": "Fields",
            "type": "object"
          },
          "purpose": {
            "enum": ["content", "accessibility", "integrity", "psychometrics", "learner_support"],
            "title": "Purpose",
            "type": "string"
          },
          "role": {
            "enum": [
              "author",
              "editor",
              "subject_expert",
              "accessibility_specialist",
              "integrity_officer",
              "learner_support"
            ],
            "title": "Role",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ReviewSubject"
          },
          "visible": {
            "default": [],
            "items": {
              "enum": [
                "answer_key",
                "rationale",
                "distractor_rationale",
                "scoring_rules",
                "integrity_signal",
                "learner_identity",
                "learner_response"
              ],
              "type": "string"
            },
            "title": "Visible",
            "type": "array"
          },
          "withheld": {
            "default": [],
            "items": {
              "enum": [
                "answer_key",
                "rationale",
                "distractor_rationale",
                "scoring_rules",
                "integrity_signal",
                "learner_identity",
                "learner_response"
              ],
              "type": "string"
            },
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": ["subject", "role", "purpose"],
        "title": "ProjectedSubject",
        "type": "object"
      },
      "Projection": {
        "additionalProperties": false,
        "description": "How one context-specific code relates to one canonical identity.\n\n`exact` round-trips. `broader` means the code covers several canonicals, so\nthe reverse direction is ambiguous. `narrower` means the code says more than\nthe canonical, so the forward direction loses a distinction named in\n`lost`. `composite` means the code bundles a second axis; `secondary` names\nit. `unmapped` means no canonical exists and `lost` says why.",
        "properties": {
          "canonical": {
            "anyOf": [
              {
                "maxLength": 40,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical"
          },
          "code": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "lost": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "title": "Lost",
            "type": "array"
          },
          "relation": {
            "enum": ["exact", "broader", "narrower", "composite", "unmapped"],
            "title": "Relation",
            "type": "string"
          },
          "secondary": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "enum": ["stakes", "posture", "stance", "style"],
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "maxItems": 2,
            "title": "Secondary",
            "type": "array"
          },
          "vocabulary_id": {
            "enum": [
              "assessment.integrity_mode",
              "interlock.mode",
              "tutor_grounding.assessment_mode",
              "tutor_preview.assessment_mode",
              "tutor_binding.integrity_mode",
              "tutoring.integrity_mode",
              "learner.tutor_style"
            ],
            "title": "Vocabulary Id",
            "type": "string"
          }
        },
        "required": ["vocabulary_id", "code", "relation"],
        "title": "Projection",
        "type": "object"
      },
      "PromotionRequest": {
        "additionalProperties": false,
        "description": "Everything the gate must see. There is no field asserting it passed.",
        "properties": {
          "approvals": {
            "items": {
              "$ref": "#/components/schemas/GovernanceApproval"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Approvals",
            "type": "array"
          },
          "curation": {
            "$ref": "#/components/schemas/CurationRecord"
          },
          "manifest": {
            "$ref": "#/components/schemas/DatasetManifest"
          },
          "quality": {
            "$ref": "#/components/schemas/QualityReport"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/DisciplineReview"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Reviews",
            "type": "array"
          }
        },
        "required": ["quality", "curation", "approvals", "reviews", "manifest"],
        "title": "PromotionRequest",
        "type": "object"
      },
      "PromptTemplate": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "ref": {
            "$ref": "#/components/schemas/MaterialRef"
          },
          "referenced_source_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Referenced Source Ids",
            "type": "array"
          },
          "referenced_tool_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Referenced Tool Ids",
            "type": "array"
          }
        },
        "required": ["ref", "body"],
        "title": "PromptTemplate",
        "type": "object"
      },
      "ProofCheckerEvidence": {
        "additionalProperties": false,
        "properties": {
          "checker_name": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Checker Name",
            "type": "string"
          },
          "checker_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Checker Version",
            "type": "string"
          },
          "status": {
            "enum": ["passed", "failed", "not_applicable"],
            "title": "Status",
            "type": "string"
          },
          "transcript": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Transcript",
            "type": "string"
          }
        },
        "required": ["checker_name", "checker_version", "status", "transcript"],
        "title": "ProofCheckerEvidence",
        "type": "object"
      },
      "ProofEquivalenceClaim": {
        "additionalProperties": false,
        "properties": {
          "left_expression": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Left Expression",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "relation": {
            "enum": ["equivalent", "implies", "approximates"],
            "title": "Relation",
            "type": "string"
          },
          "right_expression": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Right Expression",
            "type": "string"
          }
        },
        "required": ["left_expression", "right_expression", "relation", "rationale"],
        "title": "ProofEquivalenceClaim",
        "type": "object"
      },
      "ProofManualReview": {
        "additionalProperties": false,
        "properties": {
          "focus": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Focus",
            "type": "array"
          },
          "required": {
            "const": true,
            "default": true,
            "title": "Required",
            "type": "boolean"
          },
          "reviewer_role": {
            "const": "discipline_reviewer",
            "default": "discipline_reviewer",
            "title": "Reviewer Role",
            "type": "string"
          }
        },
        "required": ["focus"],
        "title": "ProofManualReview",
        "type": "object"
      },
      "ProofNotationEntry": {
        "additionalProperties": false,
        "properties": {
          "meaning": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Meaning",
            "type": "string"
          },
          "symbol": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Symbol",
            "type": "string"
          }
        },
        "required": ["symbol", "meaning"],
        "title": "ProofNotationEntry",
        "type": "object"
      },
      "ProofObligation": {
        "additionalProperties": false,
        "properties": {
          "obligation_id": {
            "pattern": "^proof:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Obligation Id",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "statement": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["obligation_id", "statement", "required", "weight_basis_points"],
        "title": "ProofObligation",
        "type": "object"
      },
      "ProofResponse": {
        "additionalProperties": false,
        "properties": {
          "equivalence": {
            "$ref": "#/components/schemas/MathEquivalencePolicy"
          },
          "obligations": {
            "items": {
              "$ref": "#/components/schemas/ProofObligation"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Obligations",
            "type": "array"
          },
          "proof_system": {
            "enum": ["natural_deduction", "algebraic", "geometric", "free_form"],
            "title": "Proof System",
            "type": "string"
          },
          "response_type": {
            "const": "proof",
            "default": "proof",
            "title": "Response Type",
            "type": "string"
          }
        },
        "required": ["equivalence", "proof_system", "obligations"],
        "title": "ProofResponse",
        "type": "object"
      },
      "ProofSolutionArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_kind": {
            "const": "proof_solution",
            "default": "proof_solution",
            "title": "Artifact Kind",
            "type": "string"
          },
          "checker": {
            "$ref": "#/components/schemas/ProofCheckerEvidence"
          },
          "equivalence_claims": {
            "items": {
              "$ref": "#/components/schemas/ProofEquivalenceClaim"
            },
            "minItems": 1,
            "title": "Equivalence Claims",
            "type": "array"
          },
          "manual_review": {
            "$ref": "#/components/schemas/ProofManualReview"
          },
          "notation": {
            "items": {
              "$ref": "#/components/schemas/ProofNotationEntry"
            },
            "minItems": 1,
            "title": "Notation",
            "type": "array"
          },
          "premises": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Premises",
            "type": "array"
          },
          "semantic_math": {
            "$ref": "#/components/schemas/SemanticMathAlternative"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/ProofStep"
            },
            "minItems": 1,
            "title": "Steps",
            "type": "array"
          }
        },
        "required": [
          "premises",
          "steps",
          "notation",
          "equivalence_claims",
          "checker",
          "manual_review",
          "semantic_math"
        ],
        "title": "ProofSolutionArtifact",
        "type": "object"
      },
      "ProofStep": {
        "additionalProperties": false,
        "properties": {
          "equivalent_expression": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Equivalent Expression"
          },
          "expression": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Expression",
            "type": "string"
          },
          "justification": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Justification",
            "type": "string"
          },
          "premise_refs": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Premise Refs",
            "type": "array"
          },
          "step_id": {
            "pattern": "^step-[a-z0-9-]+$",
            "title": "Step Id",
            "type": "string"
          }
        },
        "required": ["step_id", "expression", "justification"],
        "title": "ProofStep",
        "type": "object"
      },
      "PropagationOutcome": {
        "additionalProperties": false,
        "properties": {
          "external_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "External Id",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[0-9a-f]{40}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "payload_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Payload Sha256",
            "type": "string"
          },
          "system": {
            "enum": ["aggregate", "lti", "oneroster", "credential", "transcript"],
            "title": "System",
            "type": "string"
          },
          "unchanged": {
            "title": "Unchanged",
            "type": "boolean"
          }
        },
        "required": ["system", "external_id", "payload_sha256", "unchanged", "idempotency_key"],
        "title": "PropagationOutcome",
        "type": "object"
      },
      "PropagationResult": {
        "additionalProperties": false,
        "properties": {
          "grade_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Grade Id",
            "type": "string"
          },
          "outcomes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PropagationOutcome"
            },
            "maxItems": 50,
            "title": "Outcomes",
            "type": "array"
          },
          "preserved_appeal_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Preserved Appeal Ids",
            "type": "array"
          },
          "preserved_view_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Preserved View Ids",
            "type": "array"
          }
        },
        "required": ["grade_id"],
        "title": "PropagationResult",
        "type": "object"
      },
      "PropagationTarget": {
        "additionalProperties": false,
        "properties": {
          "current_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Sha256"
          },
          "external_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "External Id",
            "type": "string"
          },
          "system": {
            "enum": ["aggregate", "lti", "oneroster", "credential", "transcript"],
            "title": "System",
            "type": "string"
          }
        },
        "required": ["system", "external_id"],
        "title": "PropagationTarget",
        "type": "object"
      },
      "PropertySweepReport": {
        "additionalProperties": false,
        "properties": {
          "all_laws_hold": {
            "title": "All Laws Hold",
            "type": "boolean"
          },
          "candidates_generated": {
            "minimum": 1.0,
            "title": "Candidates Generated",
            "type": "integer"
          },
          "constraint_tuples_generated": {
            "minimum": 1.0,
            "title": "Constraint Tuples Generated",
            "type": "integer"
          },
          "deterministic_seed": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "laws": {
            "items": {
              "$ref": "#/components/schemas/LatticePropertyResult"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Laws",
            "type": "array"
          },
          "method": {
            "const": "deterministic-exhaustive-lattice-property-sweep-v1",
            "title": "Method",
            "type": "string"
          }
        },
        "required": [
          "method",
          "deterministic_seed",
          "constraint_tuples_generated",
          "candidates_generated",
          "laws",
          "all_laws_hold"
        ],
        "title": "PropertySweepReport",
        "type": "object"
      },
      "ProposalProjection": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "envelope_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Envelope Id",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "response": {
            "$ref": "#/components/schemas/IntakeResponse"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["envelope_id", "tenant_id", "created_at", "record_sha256", "response"],
        "title": "ProposalProjection",
        "type": "object"
      },
      "ProposalRecord": {
        "additionalProperties": false,
        "description": "An accepted-for-review proposal, attributed and pinned.\n\nNothing here names a grade, an appeal, a gate, a credential or a\npublication; `every_field_name_is_inert` proves that at import over the\nwhole published model tree.",
        "properties": {
          "citations": {
            "items": {
              "$ref": "#/components/schemas/CitationRef"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Citations",
            "type": "array"
          },
          "confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Confidence Basis Points",
            "type": "integer"
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "envelope_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Envelope Id",
            "type": "string"
          },
          "output_kind": {
            "enum": [
              "curriculum_outline_proposal",
              "item_draft_proposal",
              "verification_finding_set",
              "accessibility_remediation_proposal",
              "tutoring_script_proposal"
            ],
            "title": "Output Kind",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/ResultPayload"
          },
          "proposal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Proposal Sha256",
            "type": "string"
          },
          "received_at": {
            "format": "date-time",
            "title": "Received At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.15.0",
            "default": "6.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "default": "awaiting_review",
            "enum": ["awaiting_review", "accepted", "rejected", "deferred"],
            "title": "State",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "versions": {
            "$ref": "#/components/schemas/ProducerVersions"
          }
        },
        "required": [
          "proposal_id",
          "envelope_id",
          "tenant_id",
          "output_kind",
          "versions",
          "payload",
          "citations",
          "confidence_basis_points",
          "proposal_sha256",
          "received_at"
        ],
        "title": "ProposalRecord",
        "type": "object"
      },
      "ProtectedDataProbe": {
        "additionalProperties": false,
        "properties": {
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "mechanism": {
            "enum": [
              "absent_field",
              "visibility_matrix",
              "residue_scan",
              "access_audit",
              "state_machine"
            ],
            "title": "Mechanism",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          }
        },
        "required": ["probe_id", "attempted", "refused", "mechanism", "detail"],
        "title": "ProtectedDataProbe",
        "type": "object"
      },
      "ProtectedFieldFinding": {
        "additionalProperties": false,
        "description": "One protected thing found in a payload, named without being repeated.",
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "field_name": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Field Name",
            "type": "string"
          },
          "kind": {
            "enum": [
              "learner_identifier",
              "answer_key_marker",
              "grade_assertion",
              "integrity_verdict",
              "credential_reference",
              "private_source_reference",
              "tool_secret",
              "unsupported_claim"
            ],
            "title": "Kind",
            "type": "string"
          },
          "value_index": {
            "maximum": 999.0,
            "minimum": 0.0,
            "title": "Value Index",
            "type": "integer"
          }
        },
        "required": ["kind", "field_name", "value_index", "detail"],
        "title": "ProtectedFieldFinding",
        "type": "object"
      },
      "ProtectionProbe": {
        "additionalProperties": false,
        "properties": {
          "anchor_kind": {
            "enum": ["entity", "field", "text", "region", "timecode", "item_option", "rubric_cell"],
            "title": "Anchor Kind",
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "enum": [
                  "learner_response_excerpt",
                  "live_assessment_material",
                  "private_source_excerpt"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "subject_kind": {
            "enum": [
              "course",
              "lesson",
              "block",
              "objective",
              "rubric",
              "item",
              "response",
              "stimulus",
              "media"
            ],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": ["subject_kind", "anchor_kind", "refused"],
        "title": "ProtectionProbe",
        "type": "object"
      },
      "ProvenanceCoverage": {
        "additionalProperties": false,
        "properties": {
          "fully_registry_bound": {
            "title": "Fully Registry Bound",
            "type": "boolean"
          },
          "measurements": {
            "items": {
              "$ref": "#/components/schemas/EntityProvenanceSummary"
            },
            "title": "Measurements",
            "type": "array"
          },
          "nonreproducible_count": {
            "minimum": 0.0,
            "title": "Nonreproducible Count",
            "type": "integer"
          },
          "reproducible_count": {
            "minimum": 0.0,
            "title": "Reproducible Count",
            "type": "integer"
          },
          "verdicts": {
            "items": {
              "$ref": "#/components/schemas/EntityProvenanceSummary"
            },
            "title": "Verdicts",
            "type": "array"
          }
        },
        "required": [
          "measurements",
          "verdicts",
          "fully_registry_bound",
          "reproducible_count",
          "nonreproducible_count"
        ],
        "title": "ProvenanceCoverage",
        "type": "object"
      },
      "ProvenanceRegistryCatalog": {
        "additionalProperties": false,
        "properties": {
          "corpora": {
            "items": {
              "$ref": "#/components/schemas/CorpusVersionRecord"
            },
            "title": "Corpora",
            "type": "array"
          },
          "environments": {
            "items": {
              "$ref": "#/components/schemas/EnvironmentVersionRecord"
            },
            "title": "Environments",
            "type": "array"
          },
          "evaluators": {
            "items": {
              "$ref": "#/components/schemas/EvaluatorVersionRecord"
            },
            "title": "Evaluators",
            "type": "array"
          },
          "policy_bundles": {
            "items": {
              "$ref": "#/components/schemas/PolicyBundleRecord"
            },
            "title": "Policy Bundles",
            "type": "array"
          }
        },
        "required": ["evaluators", "corpora", "policy_bundles", "environments"],
        "title": "ProvenanceRegistryCatalog",
        "type": "object"
      },
      "ProviderAttribution": {
        "additionalProperties": false,
        "description": "Whose suggestion this is. Carried by every successful result.",
        "properties": {
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "cost_cents": {
            "minimum": 0.0,
            "title": "Cost Cents",
            "type": "integer"
          },
          "model": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Model",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Provider",
            "type": "string"
          }
        },
        "required": ["provider", "model", "prompt_sha256", "completed_at", "cost_cents"],
        "title": "ProviderAttribution",
        "type": "object"
      },
      "ProviderEndpoint": {
        "additionalProperties": false,
        "description": "Where the prompts would go. The host is pinned; a request may not redirect.",
        "properties": {
          "base_url": {
            "pattern": "^https://[a-z0-9.-]+(?::\\d{2,5})?(?:/[A-Za-z0-9._~/-]*)?$",
            "title": "Base Url",
            "type": "string"
          },
          "model_fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Model Fingerprint Sha256",
            "type": "string"
          },
          "model_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Model Id",
            "type": "string"
          },
          "provider_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Provider Id",
            "type": "string"
          },
          "region": {
            "enum": ["eu", "uk", "us", "unspecified"],
            "title": "Region",
            "type": "string"
          }
        },
        "required": ["provider_id", "base_url", "model_id", "model_fingerprint_sha256", "region"],
        "title": "ProviderEndpoint",
        "type": "object"
      },
      "ProviderModelAdmissionReport": {
        "additionalProperties": false,
        "properties": {
          "approval_requires_five_distinct_people": {
            "title": "Approval Requires Five Distinct People",
            "type": "boolean"
          },
          "every_probe_kind_reported": {
            "title": "Every Probe Kind Reported",
            "type": "boolean"
          },
          "every_refusal_reason_reached": {
            "title": "Every Refusal Reason Reached",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "journey": {
            "items": {
              "$ref": "#/components/schemas/AdmissionJourneyStep"
            },
            "maxItems": 9,
            "minItems": 9,
            "title": "Journey",
            "type": "array"
          },
          "journey_fails_closed": {
            "title": "Journey Fails Closed",
            "type": "boolean"
          },
          "kill_is_scoped_and_fails_closed": {
            "title": "Kill Is Scoped And Fails Closed",
            "type": "boolean"
          },
          "probe_kinds": {
            "minimum": 1.0,
            "title": "Probe Kinds",
            "type": "integer"
          },
          "quarantine_holds_without_a_full_suite": {
            "title": "Quarantine Holds Without A Full Suite",
            "type": "boolean"
          },
          "restore_gates": {
            "items": {
              "$ref": "#/components/schemas/RestoreCheck"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Restore Gates",
            "type": "array"
          },
          "sample_admission": {
            "$ref": "#/components/schemas/AdmissionRecord"
          },
          "sample_kill": {
            "$ref": "#/components/schemas/KillOrder"
          },
          "sample_refusals": {
            "items": {
              "$ref": "#/components/schemas/ModelAdmissionRefusal"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sample Refusals",
            "type": "array"
          },
          "sample_run": {
            "$ref": "#/components/schemas/EvaluationRun"
          },
          "schema_version": {
            "const": "7.11.0",
            "default": "7.11.0",
            "title": "Schema Version",
            "type": "string"
          },
          "secret_scan": {
            "$ref": "#/components/schemas/SecretScan"
          },
          "triage_cannot_dismiss_an_auto_suspend": {
            "title": "Triage Cannot Dismiss An Auto Suspend",
            "type": "boolean"
          }
        },
        "required": [
          "generated_at",
          "secret_scan",
          "probe_kinds",
          "every_probe_kind_reported",
          "quarantine_holds_without_a_full_suite",
          "every_refusal_reason_reached",
          "approval_requires_five_distinct_people",
          "kill_is_scoped_and_fails_closed",
          "restore_gates",
          "triage_cannot_dismiss_an_auto_suspend",
          "journey",
          "journey_fails_closed",
          "sample_run",
          "sample_admission",
          "sample_kill",
          "sample_refusals"
        ],
        "title": "ProviderModelAdmissionReport",
        "type": "object"
      },
      "ProviderProposal": {
        "additionalProperties": false,
        "description": "A model's suggestion. It names the model, because a reader is trusting it.",
        "properties": {
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "is_decision": {
            "const": false,
            "default": false,
            "title": "Is Decision",
            "type": "boolean"
          },
          "model": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Model",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Provider",
            "type": "string"
          }
        },
        "required": ["provider", "model", "confidence"],
        "title": "ProviderProposal",
        "type": "object"
      },
      "PsychometricState": {
        "enum": ["unknown", "stale", "current"],
        "title": "PsychometricState",
        "type": "string"
      },
      "PublicationAttempt": {
        "additionalProperties": false,
        "description": "One try at writing one target. Never edited, only added to.",
        "properties": {
          "attempt": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Attempt",
            "type": "integer"
          },
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "finished_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finished At"
          },
          "outcome": {
            "anyOf": [
              {
                "enum": ["succeeded", "failed", "refused", "compensated", "abandoned"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome"
          },
          "receipt_id": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receipt Id"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          }
        },
        "required": ["attempt", "started_at", "detail"],
        "title": "PublicationAttempt",
        "type": "object"
      },
      "PublicationCandidate": {
        "additionalProperties": false,
        "description": "Nine dimensions, one subject revision, one digest.",
        "properties": {
          "assembled_at": {
            "format": "date-time",
            "title": "Assembled At",
            "type": "string"
          },
          "assembled_by": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Assembled By",
            "type": "string"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/DimensionVersion"
            },
            "minItems": 9,
            "title": "Dimensions",
            "type": "array"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Revision",
            "type": "string"
          }
        },
        "required": [
          "candidate_id",
          "subject_id",
          "subject_revision",
          "dimensions",
          "digest",
          "assembled_by",
          "assembled_at"
        ],
        "title": "PublicationCandidate",
        "type": "object"
      },
      "PublicationScheduleFinding": {
        "additionalProperties": false,
        "description": "One thing wrong with a schedule.",
        "properties": {
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "kind": {
            "enum": [
              "unresolvable_time",
              "ambiguous_time",
              "embargo_breach",
              "dependency_cycle",
              "dependency_missing",
              "dependency_out_of_order",
              "capacity_exceeded",
              "candidate_moved"
            ],
            "title": "Kind",
            "type": "string"
          },
          "target_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Id"
          }
        },
        "required": ["kind", "detail"],
        "title": "PublicationScheduleFinding",
        "type": "object"
      },
      "PublicationStatusView": {
        "additionalProperties": false,
        "description": "Every target for one candidate, and one honest overall answer.",
        "properties": {
          "candidate_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Digest",
            "type": "string"
          },
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "overall": {
            "enum": ["pending", "in_flight", "published", "partial", "failed", "unknown"],
            "title": "Overall",
            "type": "string"
          },
          "targets": {
            "items": {
              "$ref": "#/components/schemas/TargetPublication"
            },
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": ["candidate_digest", "targets", "overall", "computed_at"],
        "title": "PublicationStatusView",
        "type": "object"
      },
      "PublicationTarget": {
        "additionalProperties": false,
        "description": "One destination, and how many writes it will take at once.",
        "properties": {
          "concurrency": {
            "default": 1,
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Concurrency",
            "type": "integer"
          },
          "kind": {
            "enum": ["lms", "catalog", "store", "credential_registry", "search_index"],
            "title": "Kind",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id", "kind"],
        "title": "PublicationTarget",
        "type": "object"
      },
      "PurgeReport": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "purged_sequences": {
            "items": {
              "type": "integer"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Purged Sequences",
            "type": "array"
          },
          "recorded_at_sequence": {
            "minimum": 2.0,
            "title": "Recorded At Sequence",
            "type": "integer"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["signal", "case"],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": [
          "subject_kind",
          "subject_id",
          "policy_id",
          "purged_sequences",
          "recorded_at_sequence",
          "at"
        ],
        "title": "PurgeReport",
        "type": "object"
      },
      "QtiAssessmentItem": {
        "properties": {
          "choices": {
            "items": {
              "$ref": "#/components/schemas/QtiChoice"
            },
            "title": "Choices",
            "type": "array"
          },
          "correct_response": {
            "items": {
              "type": "string"
            },
            "title": "Correct Response",
            "type": "array"
          },
          "identifier": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Identifier",
            "type": "string"
          },
          "points": {
            "default": 1.0,
            "minimum": 0.0,
            "title": "Points",
            "type": "number"
          },
          "prompt": {
            "minLength": 1,
            "title": "Prompt",
            "type": "string"
          },
          "question_type": {
            "enum": ["multiple_choice", "short_answer"],
            "title": "Question Type",
            "type": "string"
          },
          "source_xml_hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Xml Hash"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["identifier", "title", "question_type", "prompt"],
        "title": "QtiAssessmentItem",
        "type": "object"
      },
      "QtiChoice": {
        "properties": {
          "identifier": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Identifier",
            "type": "string"
          },
          "text": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["identifier", "text"],
        "title": "QtiChoice",
        "type": "object"
      },
      "QtiExportRequest": {
        "properties": {
          "bank_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Bank Id",
            "type": "string"
          },
          "item_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Ids"
          }
        },
        "required": ["bank_id"],
        "title": "QtiExportRequest",
        "type": "object"
      },
      "QtiExportResponse": {
        "properties": {
          "bank_id": {
            "title": "Bank Id",
            "type": "string"
          },
          "exported_at": {
            "format": "date-time",
            "title": "Exported At",
            "type": "string"
          },
          "item_count": {
            "title": "Item Count",
            "type": "integer"
          },
          "item_xml": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Item Xml",
            "type": "object"
          },
          "manifest_xml": {
            "title": "Manifest Xml",
            "type": "string"
          },
          "package_hash": {
            "title": "Package Hash",
            "type": "string"
          }
        },
        "required": [
          "bank_id",
          "item_count",
          "manifest_xml",
          "item_xml",
          "package_hash",
          "exported_at"
        ],
        "title": "QtiExportResponse",
        "type": "object"
      },
      "QtiImportRequest": {
        "properties": {
          "bank_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bank Id"
          },
          "replace_existing": {
            "default": false,
            "title": "Replace Existing",
            "type": "boolean"
          },
          "xml_documents": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Xml Documents",
            "type": "array"
          }
        },
        "required": ["xml_documents"],
        "title": "QtiImportRequest",
        "type": "object"
      },
      "QtiImportResponse": {
        "properties": {
          "bank_id": {
            "title": "Bank Id",
            "type": "string"
          },
          "imported_at": {
            "format": "date-time",
            "title": "Imported At",
            "type": "string"
          },
          "imported_count": {
            "title": "Imported Count",
            "type": "integer"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/QtiAssessmentItem"
            },
            "title": "Items",
            "type": "array"
          },
          "skipped_count": {
            "title": "Skipped Count",
            "type": "integer"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "bank_id",
          "imported_count",
          "skipped_count",
          "items",
          "warnings",
          "imported_at"
        ],
        "title": "QtiImportResponse",
        "type": "object"
      },
      "QtiMappingProfile": {
        "additionalProperties": false,
        "properties": {
          "declared_loss_paths": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Declared Loss Paths",
            "type": "array"
          },
          "disposition": {
            "enum": ["extension", "lossy", "incompatible"],
            "title": "Disposition",
            "type": "string"
          },
          "extension_namespace": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extension Namespace"
          },
          "incompatibility_reasons": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Incompatibility Reasons",
            "type": "array"
          },
          "target": {
            "enum": ["qti-3.0-core", "qti-3.0-metis-extension", "qti-2.2"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["target", "disposition"],
        "title": "QtiMappingProfile",
        "type": "object"
      },
      "QualityFinding": {
        "additionalProperties": false,
        "description": "One check's result, and what it looked at.\n\nA `not_applicable` must say why it does not apply, because \"not applicable\"\nwith no reason is indistinguishable from a check nobody ran.\n``examined`` is the count of things looked at: a check reporting `passed`\nover nothing examined is a check that did not run.",
        "properties": {
          "check": {
            "enum": [
              "label_validity",
              "duplication",
              "leakage",
              "benchmark_contamination",
              "poisoned_content",
              "subgroup_representation"
            ],
            "title": "Check",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "examined": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Examined",
            "type": "integer"
          },
          "outcome": {
            "enum": ["passed", "failed", "not_applicable"],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": ["check", "outcome", "examined", "detail"],
        "title": "QualityFinding",
        "type": "object"
      },
      "QualityReport": {
        "additionalProperties": false,
        "description": "Every check accounted for, with the benchmarks the comparison used.\n\n``clean`` is derived. A report claiming clean while carrying a failure, or\nwhile naming a benchmark it overlaps, is unconstructible.",
        "properties": {
          "benchmarks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/BenchmarkOverlap"
            },
            "maxItems": 40,
            "title": "Benchmarks",
            "type": "array"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "clean": {
            "title": "Clean",
            "type": "boolean"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/QualityFinding"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Findings",
            "type": "array"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["candidate_id", "findings", "clean", "evaluated_at"],
        "title": "QualityReport",
        "type": "object"
      },
      "QuarantineCheckRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "candidate": {
            "$ref": "#/components/schemas/ModelCandidate"
          },
          "fixtures": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EvaluationFixture"
            },
            "maxItems": 50,
            "title": "Fixtures",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/EvaluationRun"
          }
        },
        "required": ["candidate", "run"],
        "title": "QuarantineCheckRequest",
        "type": "object"
      },
      "QuarantineCheckResponse": {
        "additionalProperties": false,
        "properties": {
          "may_seek_approval": {
            "title": "May Seek Approval",
            "type": "boolean"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ModelAdmissionRefusal"
            },
            "title": "Refusals",
            "type": "array"
          }
        },
        "required": ["may_seek_approval"],
        "title": "QuarantineCheckResponse",
        "type": "object"
      },
      "QuestionCalibrationResponse": {
        "description": "Live learner-data item calibration statistics.",
        "properties": {
          "calibrated_difficulty_label": {
            "title": "Calibrated Difficulty Label",
            "type": "string"
          },
          "configured_difficulty": {
            "title": "Configured Difficulty",
            "type": "string"
          },
          "correct_responses": {
            "minimum": 0.0,
            "title": "Correct Responses",
            "type": "integer"
          },
          "difficulty_index": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Difficulty Index",
            "type": "number"
          },
          "discrimination_index": {
            "title": "Discrimination Index",
            "type": "number"
          },
          "discrimination_label": {
            "title": "Discrimination Label",
            "type": "string"
          },
          "incorrect_responses": {
            "minimum": 0.0,
            "title": "Incorrect Responses",
            "type": "integer"
          },
          "irt_difficulty": {
            "title": "Irt Difficulty",
            "type": "number"
          },
          "prompt_preview": {
            "title": "Prompt Preview",
            "type": "string"
          },
          "question_id": {
            "title": "Question Id",
            "type": "string"
          },
          "question_type": {
            "title": "Question Type",
            "type": "string"
          },
          "sample_size": {
            "minimum": 0.0,
            "title": "Sample Size",
            "type": "integer"
          }
        },
        "required": [
          "question_id",
          "question_type",
          "prompt_preview",
          "configured_difficulty",
          "calibrated_difficulty_label",
          "difficulty_index",
          "irt_difficulty",
          "discrimination_index",
          "discrimination_label",
          "sample_size",
          "correct_responses",
          "incorrect_responses"
        ],
        "title": "QuestionCalibrationResponse",
        "type": "object"
      },
      "QuestionCreate": {
        "description": "Schema for creating a question within an assessment.",
        "properties": {
          "content": {
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "correct_answer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Correct Answer"
          },
          "difficulty": {
            "default": "medium",
            "pattern": "^(easy|medium|hard)$",
            "title": "Difficulty",
            "type": "string"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Explanation"
          },
          "hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hint"
          },
          "options": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Options"
          },
          "order": {
            "default": 0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "points": {
            "default": 1.0,
            "minimum": 0.0,
            "title": "Points",
            "type": "number"
          },
          "question_type": {
            "default": "multiple_choice",
            "pattern": "^(multiple_choice|true_false|short_answer|essay|code)$",
            "title": "Question Type",
            "type": "string"
          }
        },
        "required": ["content"],
        "title": "QuestionCreate",
        "type": "object"
      },
      "QuestionResponse": {
        "description": "Question data returned in API responses.",
        "properties": {
          "assessment_id": {
            "format": "uuid",
            "title": "Assessment Id",
            "type": "string"
          },
          "content": {
            "title": "Content",
            "type": "string"
          },
          "correct_answer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Correct Answer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "difficulty": {
            "title": "Difficulty",
            "type": "string"
          },
          "evidence_bundle": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EvidenceBundleResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Explanation"
          },
          "hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hint"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "options": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Options"
          },
          "order": {
            "title": "Order",
            "type": "integer"
          },
          "points": {
            "title": "Points",
            "type": "number"
          },
          "question_type": {
            "title": "Question Type",
            "type": "string"
          },
          "source_refs_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Refs Json"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "content",
          "question_type",
          "points",
          "order",
          "difficulty",
          "assessment_id",
          "created_at",
          "updated_at"
        ],
        "title": "QuestionResponse",
        "type": "object"
      },
      "QuestionUpdate": {
        "description": "Schema for updating question fields.",
        "properties": {
          "content": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "correct_answer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Correct Answer"
          },
          "difficulty": {
            "anyOf": [
              {
                "pattern": "^(easy|medium|hard)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Difficulty"
          },
          "explanation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Explanation"
          },
          "hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hint"
          },
          "options": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Options"
          },
          "order": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Order"
          },
          "points": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Points"
          },
          "question_type": {
            "anyOf": [
              {
                "pattern": "^(multiple_choice|true_false|short_answer|essay|code)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Question Type"
          }
        },
        "title": "QuestionUpdate",
        "type": "object"
      },
      "QueueEntry": {
        "additionalProperties": false,
        "description": "One run waiting to be looked at.",
        "properties": {
          "eligibility": {
            "enum": ["eligible", "insufficient_sample", "superseded", "errored", "excluded"],
            "title": "Eligibility",
            "type": "string"
          },
          "has_suppressed_cohort": {
            "default": false,
            "title": "Has Suppressed Cohort",
            "type": "boolean"
          },
          "identity": {
            "$ref": "#/components/schemas/RunIdentity"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "verdict": {
            "anyOf": [
              {
                "enum": ["promote", "hold", "restrict", "retire", "manual_band", "unavailable"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verdict"
          }
        },
        "required": ["identity", "eligibility"],
        "title": "QueueEntry",
        "type": "object"
      },
      "QueueItem": {
        "additionalProperties": false,
        "description": "One clustered finding about one content revision.\n\nThere is deliberately no field here able to hold text from a signal. What a\nlearner wrote reaches this shape only through ``quotes``, and only with the\nreviewer who released it attached.",
        "properties": {
          "attribution": {
            "$ref": "#/components/schemas/TriageAttribution"
          },
          "counterexamples": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Counterexample"
            },
            "maxItems": 50,
            "title": "Counterexamples",
            "type": "array"
          },
          "learners_represented": {
            "minimum": 1.0,
            "title": "Learners Represented",
            "type": "integer"
          },
          "owner": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Owner",
            "type": "string"
          },
          "priority_rank": {
            "minimum": 1.0,
            "title": "Priority Rank",
            "type": "integer"
          },
          "queue_item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Queue Item Id",
            "type": "string"
          },
          "quotes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReleasedQuote"
            },
            "maxItems": 20,
            "title": "Quotes",
            "type": "array"
          },
          "severity": {
            "enum": ["informational", "minor", "major", "blocking"],
            "title": "Severity",
            "type": "string"
          },
          "share_of_signals": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Share Of Signals",
            "type": "number"
          },
          "signal_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Signal Ids",
            "type": "array"
          },
          "sources": {
            "items": {
              "enum": [
                "survey",
                "comment",
                "support_ticket",
                "correction",
                "analytics",
                "performance",
                "accessibility",
                "integrity"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Sources",
            "type": "array"
          },
          "status": {
            "enum": ["new", "triaged", "accepted", "rejected", "deferred", "research_requested"],
            "title": "Status",
            "type": "string"
          },
          "target_content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Content Id",
            "type": "string"
          },
          "target_content_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Content Revision Sha256",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": [
          "queue_item_id",
          "target_content_id",
          "target_content_revision_sha256",
          "signal_ids",
          "sources",
          "severity",
          "learners_represented",
          "priority_rank",
          "attribution",
          "share_of_signals",
          "wilson_low",
          "wilson_high",
          "status",
          "owner"
        ],
        "title": "QueueItem",
        "type": "object"
      },
      "QueueReservation": {
        "additionalProperties": false,
        "description": "Why this run is waiting, and until when.",
        "properties": {
          "lane": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Lane",
            "type": "string"
          },
          "position": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Position",
            "type": "integer"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "reserved_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reserved Until"
          }
        },
        "required": ["position", "lane", "reason"],
        "title": "QueueReservation",
        "type": "object"
      },
      "QueueRow": {
        "additionalProperties": false,
        "description": "One task in a queue view. The title is present only for an audience allowed it.",
        "properties": {
          "assignee_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Digest"
          },
          "breach_state": {
            "enum": ["on_track", "warned", "breached"],
            "title": "Breach State",
            "type": "string"
          },
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "priority": {
            "enum": ["routine", "elevated", "urgent"],
            "title": "Priority",
            "type": "string"
          },
          "review_type": {
            "enum": ["integrity", "content", "accessibility", "rights", "credential", "conflict"],
            "title": "Review Type",
            "type": "string"
          },
          "state": {
            "enum": ["current", "stale", "blocked", "done"],
            "title": "State",
            "type": "string"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "required": ["task_id", "review_type", "priority", "state", "breach_state", "due_at"],
        "title": "QueueRow",
        "type": "object"
      },
      "QueueView": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["assignee", "review_lead", "institution_admin", "summary_reader"],
            "title": "Audience",
            "type": "string"
          },
          "counts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SafeCount"
            },
            "maxItems": 100,
            "title": "Counts",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "rows": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/QueueRow"
            },
            "maxItems": 500,
            "title": "Rows",
            "type": "array"
          },
          "titles_withheld": {
            "title": "Titles Withheld",
            "type": "boolean"
          }
        },
        "required": ["audience", "generated_at", "titles_withheld"],
        "title": "QueueView",
        "type": "object"
      },
      "QueueViewRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "policy": {
            "$ref": "#/components/schemas/SlaPolicy"
          },
          "reviewers": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Reviewer"
            },
            "maxItems": 200,
            "title": "Reviewers",
            "type": "array"
          },
          "tasks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewTask"
            },
            "maxItems": 500,
            "title": "Tasks",
            "type": "array"
          }
        },
        "required": ["policy"],
        "title": "QueueViewRequest",
        "type": "object"
      },
      "QuietHours": {
        "additionalProperties": false,
        "description": "A nightly window in the recipient's own zone. DST is the zone's problem, not ours.",
        "properties": {
          "ends_at": {
            "format": "time",
            "title": "Ends At",
            "type": "string"
          },
          "starts_at": {
            "format": "time",
            "title": "Starts At",
            "type": "string"
          },
          "timezone": {
            "maxLength": 60,
            "minLength": 3,
            "title": "Timezone",
            "type": "string"
          }
        },
        "required": ["timezone", "starts_at", "ends_at"],
        "title": "QuietHours",
        "type": "object"
      },
      "QuietHoursProbe": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "in_quiet_hours": {
            "title": "In Quiet Hours",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["sent", "deferred_quiet_hours", "sent_over_quiet_hours", "suppressed"],
            "title": "Outcome",
            "type": "string"
          },
          "scenario": {
            "maxLength": 100,
            "minLength": 3,
            "title": "Scenario",
            "type": "string"
          },
          "timezone": {
            "title": "Timezone",
            "type": "string"
          },
          "urgent": {
            "title": "Urgent",
            "type": "boolean"
          }
        },
        "required": ["scenario", "timezone", "at", "in_quiet_hours", "urgent", "outcome"],
        "title": "QuietHoursProbe",
        "type": "object"
      },
      "QuorumRequest": {
        "additionalProperties": false,
        "properties": {
          "declarations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewerConflictDeclaration"
            },
            "maxItems": 200,
            "title": "Declarations",
            "type": "array"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "mitigations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MitigationPlan"
            },
            "maxItems": 50,
            "title": "Mitigations",
            "type": "array"
          },
          "overlay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConflictPolicyOverlay"
              },
              {
                "type": "null"
              }
            ]
          },
          "quorum": {
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Quorum",
            "type": "integer"
          },
          "recusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RecusalRecord"
            },
            "maxItems": 50,
            "title": "Recusals",
            "type": "array"
          },
          "referrals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/UnsureReferral"
            },
            "maxItems": 50,
            "title": "Referrals",
            "type": "array"
          },
          "reviewer_digests": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Reviewer Digests",
            "type": "array"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ConflictSubject"
          }
        },
        "required": ["dimension", "subject", "risk", "quorum", "reviewer_digests"],
        "title": "QuorumRequest",
        "type": "object"
      },
      "QuorumResponse": {
        "additionalProperties": false,
        "properties": {
          "counted": {
            "items": {
              "type": "string"
            },
            "title": "Counted",
            "type": "array"
          },
          "evaluations": {
            "items": {
              "$ref": "#/components/schemas/ConflictEvaluation"
            },
            "title": "Evaluations",
            "type": "array"
          },
          "excluded": {
            "items": {
              "type": "string"
            },
            "title": "Excluded",
            "type": "array"
          },
          "met": {
            "title": "Met",
            "type": "boolean"
          },
          "quorum": {
            "title": "Quorum",
            "type": "integer"
          }
        },
        "required": ["met", "quorum", "counted", "excluded", "evaluations"],
        "title": "QuorumResponse",
        "type": "object"
      },
      "RaceProbe": {
        "additionalProperties": false,
        "description": "One pair of commands issued against the same run version.",
        "properties": {
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "exactly_one_applied": {
            "title": "Exactly One Applied",
            "type": "boolean"
          },
          "loser": {
            "enum": ["pause", "resume", "redirect", "cancel", "budget_kill", "replay"],
            "title": "Loser",
            "type": "string"
          },
          "loser_reason": {
            "enum": [
              "stale_expected_version",
              "role_not_permitted",
              "lifecycle_not_eligible",
              "run_already_terminal",
              "scope_mismatch",
              "no_safe_boundary",
              "revalidation_failed",
              "budget_not_exceeded",
              "replay_would_mutate_source"
            ],
            "title": "Loser Reason",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "winner": {
            "enum": ["pause", "resume", "redirect", "cancel", "budget_kill", "replay"],
            "title": "Winner",
            "type": "string"
          }
        },
        "required": [
          "probe_id",
          "attempted",
          "exactly_one_applied",
          "winner",
          "loser",
          "loser_reason",
          "detail"
        ],
        "title": "RaceProbe",
        "type": "object"
      },
      "RampConsistencyReport": {
        "additionalProperties": false,
        "description": "Widening the ramp must only add subjects, never move one to another arm.",
        "properties": {
          "assigned_after": {
            "minimum": 0.0,
            "title": "Assigned After",
            "type": "integer"
          },
          "assigned_before": {
            "minimum": 0.0,
            "title": "Assigned Before",
            "type": "integer"
          },
          "changed_arm": {
            "minimum": 0.0,
            "title": "Changed Arm",
            "type": "integer"
          },
          "consistent": {
            "title": "Consistent",
            "type": "boolean"
          },
          "from_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "From Basis Points",
            "type": "integer"
          },
          "to_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "To Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "from_basis_points",
          "to_basis_points",
          "assigned_before",
          "assigned_after",
          "changed_arm",
          "consistent"
        ],
        "title": "RampConsistencyReport",
        "type": "object"
      },
      "RankingRule": {
        "additionalProperties": false,
        "properties": {
          "hidden_candidate_removal_permitted": {
            "const": false,
            "default": false,
            "title": "Hidden Candidate Removal Permitted",
            "type": "boolean"
          },
          "minimum_total_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Minimum Total Basis Points",
            "type": "integer"
          },
          "required_verifier_outcome": {
            "const": "pass",
            "default": "pass",
            "title": "Required Verifier Outcome",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rule Sha256",
            "type": "string"
          },
          "rule_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Rule Version",
            "type": "string"
          },
          "tie_policy": {
            "const": "require_educator_selection",
            "default": "require_educator_selection",
            "title": "Tie Policy",
            "type": "string"
          }
        },
        "required": ["rule_id", "rule_version", "rule_sha256", "minimum_total_basis_points"],
        "title": "RankingRule",
        "type": "object"
      },
      "RationaleCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "model_contracts",
              "bkt_rationale",
              "fsrs_rationale",
              "graph_rationale",
              "irt_rationale",
              "panel_separation"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "RationaleCorpusMetric",
        "type": "object"
      },
      "RationaleEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "bkt_method": {
            "const": "corbett-anderson-posterior-then-learn-v1",
            "title": "Bkt Method",
            "type": "string"
          },
          "combined_rule": {
            "const": "every-applicable-model-must-be-ready-and-none-may-be-stale",
            "title": "Combined Rule",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-learner-model-rationale",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.4.0",
            "title": "Engine Version",
            "type": "string"
          },
          "fsrs_method": {
            "const": "fsrs-5-power-forgetting-curve-decay-0.5-factor-19-81-v1",
            "title": "Fsrs Method",
            "type": "string"
          },
          "graph_method": {
            "const": "expected-versus-observed-path-set-difference-v1",
            "title": "Graph Method",
            "type": "string"
          },
          "irt_method": {
            "const": "three-parameter-logistic-fisher-information-v1",
            "title": "Irt Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.4.0",
            "default": "6.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/RationaleToolWitness"
            },
            "maxItems": 20,
            "minItems": 4,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "abstain_per_model_and_never_blend_a_score",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "bkt_method",
          "fsrs_method",
          "graph_method",
          "irt_method",
          "tools",
          "rules_sha256",
          "combined_rule",
          "unsupported_behavior"
        ],
        "title": "RationaleEngineWitness",
        "type": "object"
      },
      "RationaleEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "RationaleEvaluationCaseResult",
        "type": "object"
      },
      "RationaleEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/RationaleEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.4-learner-model-rationale-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/RationaleCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "separation": {
            "$ref": "#/components/schemas/SeparationSweepReport"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "separation",
          "limitations"
        ],
        "title": "RationaleEvaluationReport",
        "type": "object"
      },
      "RationaleToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "RationaleToolWitness",
        "type": "object"
      },
      "RationaleWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "abstaining_models": {
            "minimum": 0.0,
            "title": "Abstaining Models",
            "type": "integer"
          },
          "disagreeing_panels": {
            "minimum": 0.0,
            "title": "Disagreeing Panels",
            "type": "integer"
          },
          "generic_mastery_scores": {
            "const": 0,
            "default": 0,
            "title": "Generic Mastery Scores",
            "type": "integer"
          },
          "indeterminate": {
            "minimum": 0.0,
            "title": "Indeterminate",
            "type": "integer"
          },
          "not_ready": {
            "minimum": 0.0,
            "title": "Not Ready",
            "type": "integer"
          },
          "panels": {
            "minimum": 0.0,
            "title": "Panels",
            "type": "integer"
          },
          "ready": {
            "minimum": 0.0,
            "title": "Ready",
            "type": "integer"
          }
        },
        "required": [
          "panels",
          "ready",
          "not_ready",
          "indeterminate",
          "disagreeing_panels",
          "abstaining_models"
        ],
        "title": "RationaleWorkspaceSummary",
        "type": "object"
      },
      "RawCitationSufficiencyResult": {
        "additionalProperties": false,
        "properties": {
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/GroundingCitationCriterionResult"
            },
            "maxItems": 9,
            "minItems": 9,
            "title": "Criteria",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "inaccessible_link_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Inaccessible Link Ids",
            "type": "array"
          },
          "irrelevant_link_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Irrelevant Link Ids",
            "type": "array"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "overbroad_link_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Overbroad Link Ids",
            "type": "array"
          },
          "result_id": {
            "pattern": "^citationres_[a-f0-9]{40}$",
            "title": "Result Id",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "State",
            "type": "string"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          },
          "verifier": {
            "$ref": "#/components/schemas/GroundingVerifierWitness"
          }
        },
        "required": [
          "result_id",
          "state",
          "criteria",
          "uncertainty",
          "verifier",
          "evaluated_at",
          "output_sha256"
        ],
        "title": "RawCitationSufficiencyResult",
        "type": "object"
      },
      "RawContradictionResult": {
        "additionalProperties": false,
        "properties": {
          "claim_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "kind": {
            "enum": ["polarity", "numeric"],
            "title": "Kind",
            "type": "string"
          },
          "left_citation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Left Citation Id",
            "type": "string"
          },
          "right_citation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Right Citation Id",
            "type": "string"
          }
        },
        "required": ["claim_id", "left_citation_id", "right_citation_id", "kind", "detail"],
        "title": "RawContradictionResult",
        "type": "object"
      },
      "RawEvidenceRef": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "kind": {
            "enum": ["timeline", "media", "session", "device", "similarity", "authorship"],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "artifact_id", "content_sha256"],
        "title": "RawEvidenceRef",
        "type": "object"
      },
      "RawFaithfulnessResult": {
        "additionalProperties": false,
        "properties": {
          "changes": {
            "default": [],
            "items": {
              "enum": ["added_certainty", "omitted_qualifier", "scope_change", "number_change"],
              "type": "string"
            },
            "maxItems": 8,
            "title": "Changes",
            "type": "array"
          },
          "citation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Citation Id",
            "type": "string"
          },
          "claim_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          }
        },
        "required": ["claim_id", "citation_id", "detail"],
        "title": "RawFaithfulnessResult",
        "type": "object"
      },
      "RawFeedbackSignal": {
        "additionalProperties": false,
        "description": "What arrives at intake. The only shape in this contract with raw text.",
        "properties": {
          "cohort_size": {
            "minimum": 1.0,
            "title": "Cohort Size",
            "type": "integer"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "source": {
            "enum": [
              "survey",
              "comment",
              "support_ticket",
              "correction",
              "analytics",
              "performance",
              "accessibility",
              "integrity"
            ],
            "title": "Source",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "target_content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Content Id",
            "type": "string"
          },
          "target_content_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Content Revision Sha256",
            "type": "string"
          },
          "verbatim": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Verbatim",
            "type": "string"
          }
        },
        "required": [
          "signal_id",
          "source",
          "submitted_at",
          "verbatim",
          "cohort_size",
          "target_content_id",
          "target_content_revision_sha256"
        ],
        "title": "RawFeedbackSignal",
        "type": "object"
      },
      "RawGroundingConflictResult": {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "differences": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "title": "Differences",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "kind": {
            "enum": ["within_source", "cross_source", "version", "jurisdiction", "perspective"],
            "title": "Kind",
            "type": "string"
          },
          "left_link_id": {
            "pattern": "^claimlink_[a-f0-9]{40}$",
            "title": "Left Link Id",
            "type": "string"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "relation": {
            "enum": ["compatible", "contradiction", "difference", "unclear"],
            "title": "Relation",
            "type": "string"
          },
          "result_id": {
            "pattern": "^conflictres_[a-f0-9]{40}$",
            "title": "Result Id",
            "type": "string"
          },
          "right_link_id": {
            "pattern": "^claimlink_[a-f0-9]{40}$",
            "title": "Right Link Id",
            "type": "string"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          },
          "verifier": {
            "$ref": "#/components/schemas/GroundingVerifierWitness"
          }
        },
        "required": [
          "result_id",
          "left_link_id",
          "right_link_id",
          "kind",
          "relation",
          "confidence",
          "uncertainty",
          "rationale",
          "verifier",
          "evaluated_at",
          "output_sha256"
        ],
        "title": "RawGroundingConflictResult",
        "type": "object"
      },
      "RawGroundingFaithfulnessResult": {
        "additionalProperties": false,
        "properties": {
          "changes": {
            "items": {
              "enum": [
                "added_certainty",
                "omitted_qualifier",
                "scope_change",
                "number_change",
                "time_change",
                "causal_change",
                "attribution_change"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "title": "Changes",
            "type": "array"
          },
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "content_wording": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Content Wording",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "result_id": {
            "pattern": "^faithres_[a-f0-9]{40}$",
            "title": "Result Id",
            "type": "string"
          },
          "supported_propositions": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Supported Propositions",
            "type": "array"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          },
          "verdict": {
            "enum": ["faithful", "changed", "unclear", "not_applicable"],
            "title": "Verdict",
            "type": "string"
          },
          "verifier": {
            "$ref": "#/components/schemas/GroundingVerifierWitness"
          }
        },
        "required": [
          "result_id",
          "verdict",
          "content_wording",
          "reason_codes",
          "confidence",
          "uncertainty",
          "rationale",
          "verifier",
          "evaluated_at",
          "output_sha256"
        ],
        "title": "RawGroundingFaithfulnessResult",
        "type": "object"
      },
      "RawGroundingSupportResult": {
        "additionalProperties": false,
        "properties": {
          "claim_proposition": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Claim Proposition",
            "type": "string"
          },
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "link_id": {
            "pattern": "^claimlink_[a-f0-9]{40}$",
            "title": "Link Id",
            "type": "string"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Rationale",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "result_id": {
            "pattern": "^supportres_[a-f0-9]{40}$",
            "title": "Result Id",
            "type": "string"
          },
          "source_proposition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Source Proposition",
            "type": "string"
          },
          "supported_qualifiers": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Supported Qualifiers",
            "type": "array"
          },
          "token_coverage": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Token Coverage",
            "type": "number"
          },
          "uncertainty": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Uncertainty",
            "type": "number"
          },
          "unsupported_qualifiers": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Unsupported Qualifiers",
            "type": "array"
          },
          "verdict": {
            "enum": ["full", "partial", "unsupported", "contradicted", "unclear", "not_applicable"],
            "title": "Verdict",
            "type": "string"
          },
          "verifier": {
            "$ref": "#/components/schemas/GroundingVerifierWitness"
          }
        },
        "required": [
          "result_id",
          "link_id",
          "verdict",
          "claim_proposition",
          "source_proposition",
          "token_coverage",
          "reason_codes",
          "confidence",
          "uncertainty",
          "rationale",
          "verifier",
          "evaluated_at",
          "output_sha256"
        ],
        "title": "RawGroundingSupportResult",
        "type": "object"
      },
      "RawMeasure-Input": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable", "undetermined"],
            "title": "Applicability",
            "type": "string"
          },
          "boolean_value": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Boolean Value"
          },
          "decimal_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decimal Value"
          },
          "metric_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Metric Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "region_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Region Ids",
            "type": "array"
          },
          "state_evidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MeasurementStateEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "text_value": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Value"
          },
          "uncertainty": {
            "$ref": "#/components/schemas/MeasurementUncertainty-Input"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": ["metric_id", "applicability", "uncertainty", "rationale"],
        "title": "RawMeasure",
        "type": "object"
      },
      "RawMeasure-Output": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applicable", "not_applicable", "undetermined"],
            "title": "Applicability",
            "type": "string"
          },
          "boolean_value": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Boolean Value"
          },
          "decimal_value": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decimal Value"
          },
          "metric_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Metric Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "region_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Region Ids",
            "type": "array"
          },
          "state_evidence": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MeasurementStateEvidence"
              },
              {
                "type": "null"
              }
            ]
          },
          "text_value": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text Value"
          },
          "uncertainty": {
            "$ref": "#/components/schemas/MeasurementUncertainty-Output"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": ["metric_id", "applicability", "uncertainty", "rationale"],
        "title": "RawMeasure",
        "type": "object"
      },
      "RawMeasurementRecord": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "evaluator": {
            "$ref": "#/components/schemas/MeasurementEvaluator"
          },
          "evidence_refs": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Evidence Refs",
            "type": "array"
          },
          "input_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Set Sha256",
            "type": "string"
          },
          "inputs": {
            "items": {
              "$ref": "#/components/schemas/MeasurementInput"
            },
            "minItems": 1,
            "title": "Inputs",
            "type": "array"
          },
          "measured_at": {
            "format": "date-time",
            "title": "Measured At",
            "type": "string"
          },
          "measurement_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Measurement Id",
            "type": "string"
          },
          "measurement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Measurement Sha256",
            "type": "string"
          },
          "measures": {
            "items": {
              "$ref": "#/components/schemas/RawMeasure-Output"
            },
            "minItems": 1,
            "title": "Measures",
            "type": "array"
          },
          "provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MeasurementProvenanceDeclaration"
              },
              {
                "type": "null"
              }
            ]
          },
          "regions": {
            "items": {
              "$ref": "#/components/schemas/MeasurementRegion-Output"
            },
            "minItems": 1,
            "title": "Regions",
            "type": "array"
          },
          "schema_version": {
            "default": "1.2.0",
            "enum": ["1.0.0", "1.1.0", "1.2.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/MeasurementSubject"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "subject",
          "evaluator",
          "inputs",
          "regions",
          "measures",
          "measured_at",
          "measurement_id",
          "input_set_sha256",
          "measurement_sha256",
          "created_at"
        ],
        "title": "RawMeasurementRecord",
        "type": "object"
      },
      "RawMeasurementRequest": {
        "additionalProperties": false,
        "properties": {
          "evaluator": {
            "$ref": "#/components/schemas/MeasurementEvaluator"
          },
          "evidence_refs": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Evidence Refs",
            "type": "array"
          },
          "inputs": {
            "items": {
              "$ref": "#/components/schemas/MeasurementInput"
            },
            "minItems": 1,
            "title": "Inputs",
            "type": "array"
          },
          "measured_at": {
            "format": "date-time",
            "title": "Measured At",
            "type": "string"
          },
          "measures": {
            "items": {
              "$ref": "#/components/schemas/RawMeasure-Input"
            },
            "minItems": 1,
            "title": "Measures",
            "type": "array"
          },
          "provenance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MeasurementProvenanceDeclaration"
              },
              {
                "type": "null"
              }
            ]
          },
          "regions": {
            "items": {
              "$ref": "#/components/schemas/MeasurementRegion-Input"
            },
            "minItems": 1,
            "title": "Regions",
            "type": "array"
          },
          "schema_version": {
            "default": "1.2.0",
            "enum": ["1.0.0", "1.1.0", "1.2.0"],
            "title": "Schema Version",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/MeasurementSubject"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "subject",
          "evaluator",
          "inputs",
          "regions",
          "measures",
          "measured_at"
        ],
        "title": "RawMeasurementRequest",
        "type": "object"
      },
      "RawOutput": {
        "additionalProperties": false,
        "description": "The classifier's output as emitted. Preserved, never reinterpreted.",
        "properties": {
          "calibrated_at": {
            "format": "date-time",
            "title": "Calibrated At",
            "type": "string"
          },
          "classifier_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Classifier Id",
            "type": "string"
          },
          "label": {
            "enum": ["human_likely", "ai_likely", "mixed", "copied", "unknown"],
            "title": "Label",
            "type": "string"
          },
          "model_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Model Version",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "threshold": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Threshold",
            "type": "number"
          }
        },
        "required": [
          "classifier_id",
          "model_version",
          "label",
          "score",
          "threshold",
          "calibrated_at"
        ],
        "title": "RawOutput",
        "type": "object"
      },
      "RawSufficiencyResult": {
        "additionalProperties": false,
        "properties": {
          "claim_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "criterion": {
            "enum": [
              "citation_present",
              "citation_count",
              "authority_floor",
              "relevance",
              "currency"
            ],
            "title": "Criterion",
            "type": "string"
          },
          "observed": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Observed",
            "type": "string"
          },
          "required": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Required",
            "type": "string"
          },
          "satisfied": {
            "title": "Satisfied",
            "type": "boolean"
          }
        },
        "required": ["claim_id", "criterion", "satisfied", "observed", "required"],
        "title": "RawSufficiencyResult",
        "type": "object"
      },
      "RawSupportResult": {
        "additionalProperties": false,
        "description": "Per-citation support, kept raw. ``unclear`` is an abstention, not a pass.",
        "properties": {
          "citation_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Citation Id"
          },
          "claim_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "matched_excerpt_locator": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matched Excerpt Locator"
          },
          "verdict": {
            "enum": [
              "supported",
              "partial",
              "unsupported",
              "contradicted",
              "unclear",
              "not_applicable"
            ],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["claim_id", "citation_id", "verdict", "detail"],
        "title": "RawSupportResult",
        "type": "object"
      },
      "ReassignmentRecord": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "from_reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "From Reviewer Digest",
            "type": "string"
          },
          "reason": {
            "enum": ["disqualifying_conflict", "recusal", "unresolved_unsure", "no_declaration"],
            "title": "Reason",
            "type": "string"
          },
          "reassigned_at": {
            "format": "date-time",
            "title": "Reassigned At",
            "type": "string"
          },
          "reassigned_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reassigned By Digest",
            "type": "string"
          },
          "reassignment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Reassignment Id",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ConflictSubject"
          },
          "to_reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Reviewer Digest",
            "type": "string"
          }
        },
        "required": [
          "reassignment_id",
          "dimension",
          "subject",
          "from_reviewer_digest",
          "to_reviewer_digest",
          "reason",
          "reassigned_at",
          "reassigned_by_digest"
        ],
        "title": "ReassignmentRecord",
        "type": "object"
      },
      "RecentExposure": {
        "additionalProperties": false,
        "description": "When the learner last saw an item, so a spacing rule has something to read.",
        "properties": {
          "days_since_last_seen": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Days Since Last Seen",
            "type": "integer"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          }
        },
        "required": ["item_id", "days_since_last_seen"],
        "title": "RecentExposure",
        "type": "object"
      },
      "ReconcileRequest": {
        "additionalProperties": false,
        "description": "A stored row and the payload it claims to be projected from.",
        "properties": {
          "payload": {
            "additionalProperties": true,
            "title": "Payload",
            "type": "object"
          },
          "stored": {
            "$ref": "#/components/schemas/ProjectedRow"
          }
        },
        "required": ["stored", "payload"],
        "title": "ReconcileRequest",
        "type": "object"
      },
      "ReconciliationResult": {
        "additionalProperties": false,
        "description": "The reconciler's verdict. It reports; it does not choose.",
        "properties": {
          "consistent": {
            "title": "Consistent",
            "type": "boolean"
          },
          "divergences": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Divergence"
            },
            "maxItems": 100,
            "title": "Divergences",
            "type": "array"
          },
          "logical_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Logical Id",
            "type": "string"
          },
          "repaired": {
            "const": false,
            "default": false,
            "title": "Repaired",
            "type": "boolean"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "table_name": {
            "maxLength": 63,
            "pattern": "^[a-z][a-z0-9_]*$",
            "title": "Table Name",
            "type": "string"
          }
        },
        "required": ["table_name", "logical_id", "revision", "consistent"],
        "title": "ReconciliationResult",
        "type": "object"
      },
      "RecoveryPlanView": {
        "additionalProperties": false,
        "description": "What a recovery would do before anybody presses anything.",
        "properties": {
          "action": {
            "enum": ["retry", "replay", "reconcile"],
            "title": "Action",
            "type": "string"
          },
          "allowed": {
            "default": false,
            "title": "Allowed",
            "type": "boolean"
          },
          "idempotency_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Idempotency Key"
          },
          "impact": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Impact",
            "type": "array"
          },
          "operation_id": {
            "title": "Operation Id",
            "type": "string"
          },
          "refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          },
          "requires_confirmation": {
            "default": true,
            "title": "Requires Confirmation",
            "type": "boolean"
          },
          "reuses_idempotency_key": {
            "default": false,
            "title": "Reuses Idempotency Key",
            "type": "boolean"
          }
        },
        "required": ["action", "operation_id"],
        "title": "RecoveryPlanView",
        "type": "object"
      },
      "RecoveryRequest": {
        "additionalProperties": false,
        "description": "A retry, replay or reconcile, and who is asking.",
        "properties": {
          "action": {
            "enum": ["retry", "replay", "reconcile"],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Actor Role",
            "type": "string"
          },
          "confirmed": {
            "default": false,
            "title": "Confirmed",
            "type": "boolean"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "operation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Operation Id",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "action",
          "operation_id",
          "actor_id",
          "actor_role",
          "reason",
          "expected_version"
        ],
        "title": "RecoveryRequest",
        "type": "object"
      },
      "Recurrence": {
        "additionalProperties": false,
        "description": "How an event repeats. Repeats keep the local time, not the offset.",
        "properties": {
          "count": {
            "default": 1,
            "maximum": 520.0,
            "minimum": 1.0,
            "title": "Count",
            "type": "integer"
          },
          "rule": {
            "default": "none",
            "enum": ["none", "daily", "weekly", "monthly_by_date"],
            "title": "Rule",
            "type": "string"
          },
          "until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Until"
          }
        },
        "title": "Recurrence",
        "type": "object"
      },
      "RecusalRecord": {
        "additionalProperties": false,
        "properties": {
          "declaration_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Declaration Id"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "recusal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Recusal Id",
            "type": "string"
          },
          "recused_at": {
            "format": "date-time",
            "title": "Recused At",
            "type": "string"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ConflictSubject"
          },
          "voluntary": {
            "title": "Voluntary",
            "type": "boolean"
          }
        },
        "required": [
          "recusal_id",
          "reviewer_digest",
          "dimension",
          "subject",
          "recused_at",
          "voluntary"
        ],
        "title": "RecusalRecord",
        "type": "object"
      },
      "RedactedAuditPayload": {
        "additionalProperties": false,
        "description": "A different shape from the payload: a masked section carries its count, roles or flag.",
        "properties": {
          "appeal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AppealSubstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "classifier_feature_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Classifier Feature Count"
          },
          "classifier_features": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FeatureValue"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Classifier Features"
          },
          "correction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CorrectionApplied"
              },
              {
                "type": "null"
              }
            ]
          },
          "decision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DecisionSubstance"
              },
              {
                "type": "null"
              }
            ]
          },
          "narrative": {
            "anyOf": [
              {
                "maxLength": 600,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Narrative"
          },
          "other_learner_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Other Learner Count"
          },
          "other_learner_refs": {
            "anyOf": [
              {
                "items": {
                  "pattern": "^[a-f0-9]{64}$",
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Other Learner Refs"
          },
          "raw_evidence": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/RawEvidenceRef"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Raw Evidence"
          },
          "raw_evidence_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Raw Evidence Count"
          },
          "refs": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SubjectRefs"
              },
              {
                "type": "null"
              }
            ]
          },
          "security_method": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SecurityMethod"
              },
              {
                "type": "null"
              }
            ]
          },
          "security_method_recorded": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Security Method Recorded"
          },
          "staff": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/StaffRef"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Staff"
          },
          "staff_roles": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "detector_owner",
                    "reviewer",
                    "decider",
                    "appeal_decider",
                    "integrity_lead",
                    "forensic_examiner"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Staff Roles"
          }
        },
        "title": "RedactedAuditPayload",
        "type": "object"
      },
      "RedactedEvent": {
        "additionalProperties": false,
        "description": "What one audience sees of one event. Withheld sections are empty AND named.",
        "properties": {
          "actor_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor Digest"
          },
          "actor_role": {
            "enum": [
              "learner",
              "representative",
              "detector_owner",
              "reviewer",
              "decider",
              "appeal_decider",
              "integrity_lead",
              "forensic_examiner",
              "system"
            ],
            "title": "Actor Role",
            "type": "string"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "audience": {
            "enum": [
              "learner",
              "representative",
              "reviewer",
              "decider",
              "integrity_lead",
              "forensic"
            ],
            "title": "Audience",
            "type": "string"
          },
          "authority_basis": {
            "enum": [
              "case_role",
              "learner_self",
              "representative_grant",
              "forensic_authorization",
              "system_policy"
            ],
            "title": "Authority Basis",
            "type": "string"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/SectionDecision"
            },
            "maxItems": 8,
            "minItems": 8,
            "title": "Decisions",
            "type": "array"
          },
          "event_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Event Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "collection",
              "access",
              "change",
              "signal",
              "case",
              "evidence",
              "decision",
              "appeal",
              "notification",
              "correction"
            ],
            "title": "Kind",
            "type": "string"
          },
          "payload": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RedactedAuditPayload"
              },
              {
                "type": "null"
              }
            ]
          },
          "previous_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Previous Sha256",
            "type": "string"
          },
          "purged": {
            "title": "Purged",
            "type": "boolean"
          },
          "sections_withheld": {
            "items": {
              "enum": [
                "subject_refs",
                "narrative",
                "decision_substance",
                "raw_evidence",
                "classifier_features",
                "other_learner_refs",
                "staff_identity",
                "security_method"
              ],
              "type": "string"
            },
            "title": "Sections Withheld",
            "type": "array"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "subject": {
            "$ref": "#/components/schemas/Subject"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "sequence",
          "kind",
          "tenant_id",
          "subject",
          "actor_role",
          "actor_digest",
          "authority_basis",
          "at",
          "audience",
          "purged",
          "payload",
          "decisions",
          "sections_withheld",
          "previous_sha256",
          "event_sha256"
        ],
        "title": "RedactedEvent",
        "type": "object"
      },
      "RedactedField": {
        "additionalProperties": false,
        "description": "One field of a payload, described rather than carried.",
        "properties": {
          "byte_size": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Byte Size",
            "type": "integer"
          },
          "kind": {
            "enum": ["string", "number", "boolean", "object", "array", "null", "binary"],
            "title": "Kind",
            "type": "string"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "reason": {
            "enum": [
              "prompt_text",
              "provider_credential",
              "learner_data",
              "answer_key",
              "free_text_output",
              "not_sensitive_but_unbounded"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["name", "kind", "byte_size", "reason"],
        "title": "RedactedField",
        "type": "object"
      },
      "RedactedPayload": {
        "additionalProperties": false,
        "description": "A tool call's inputs, outputs or error, with the values removed.\n\nThere is no `value`, `text`, `prompt` or `body` field. A view cannot leak a\nprompt or a key by forgetting to blank one, because there is nowhere for the\nbytes to sit. The digest lets two payloads be compared for equality without\neither being shown.",
        "properties": {
          "carries_no_value": {
            "const": true,
            "default": true,
            "title": "Carries No Value",
            "type": "boolean"
          },
          "fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RedactedField"
            },
            "maxItems": 200,
            "title": "Fields",
            "type": "array"
          },
          "payload_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Payload Sha256",
            "type": "string"
          },
          "total_byte_size": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Total Byte Size",
            "type": "integer"
          }
        },
        "required": ["total_byte_size", "payload_sha256"],
        "title": "RedactedPayload",
        "type": "object"
      },
      "RedactedPayloadView": {
        "additionalProperties": false,
        "description": "A payload with groups removed, and the groups named.",
        "properties": {
          "hidden_groups": {
            "default": [],
            "items": {
              "enum": ["answer", "source", "learner", "review"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Hidden Groups",
            "type": "array"
          },
          "hidden_keys": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Hidden Keys",
            "type": "array"
          },
          "values": {
            "additionalProperties": true,
            "title": "Values",
            "type": "object"
          }
        },
        "required": ["values"],
        "title": "RedactedPayloadView",
        "type": "object"
      },
      "RedactionEntry": {
        "additionalProperties": false,
        "description": "One field class, in one section, and what happened to it.",
        "properties": {
          "affected_fields": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Affected Fields",
            "type": "array"
          },
          "affected_rows": {
            "minimum": 1.0,
            "title": "Affected Rows",
            "type": "integer"
          },
          "field_class": {
            "enum": [
              "learner_identity",
              "answer_content",
              "integrity_detail",
              "source_text",
              "reviewer_identity",
              "private_note"
            ],
            "title": "Field Class",
            "type": "string"
          },
          "section": {
            "enum": [
              "subjects_and_revisions",
              "templates_and_gates",
              "measurements_and_evidence",
              "comments",
              "assignments_and_conflicts",
              "decisions_appeals_signoffs",
              "actors_and_roles",
              "audit",
              "redactions"
            ],
            "title": "Section",
            "type": "string"
          },
          "treatment": {
            "enum": ["kept", "pseudonymised", "redacted", "omitted"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["section", "field_class", "treatment", "affected_fields", "affected_rows"],
        "title": "RedactionEntry",
        "type": "object"
      },
      "RedactionNote": {
        "additionalProperties": false,
        "description": "One thing the summary left out, named without being repeated.",
        "properties": {
          "field_name": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Field Name",
            "type": "string"
          },
          "reason": {
            "enum": ["learner_words", "learner_identifier", "provider_credential", "answer_key"],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["field_name", "reason"],
        "title": "RedactionNote",
        "type": "object"
      },
      "RedirectCommand": {
        "additionalProperties": false,
        "description": "Point the run at a new plan revision, keeping what it has already done.",
        "properties": {
          "changed": {
            "items": {
              "enum": ["objective", "inputs", "tools", "budget"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Changed",
            "type": "array"
          },
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "issued_by_role": {
            "enum": ["run_owner", "course_owner", "operator", "budget_holder"],
            "title": "Issued By Role",
            "type": "string"
          },
          "kind": {
            "const": "redirect",
            "default": "redirect",
            "title": "Kind",
            "type": "string"
          },
          "preserves_completed_history": {
            "const": true,
            "default": true,
            "title": "Preserves Completed History",
            "type": "boolean"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "to_plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "To Plan Id",
            "type": "string"
          },
          "to_plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Plan Sha256",
            "type": "string"
          }
        },
        "required": [
          "command_id",
          "idempotency_key",
          "run_id",
          "expected_version",
          "issued_by",
          "issued_by_role",
          "reason",
          "issued_at",
          "to_plan_id",
          "to_plan_sha256",
          "changed"
        ],
        "title": "RedirectCommand",
        "type": "object"
      },
      "RefreshRequest": {
        "description": "Request to refresh an access token.",
        "properties": {
          "refresh_token": {
            "title": "Refresh Token",
            "type": "string"
          }
        },
        "required": ["refresh_token"],
        "title": "RefreshRequest",
        "type": "object"
      },
      "RefusedSignal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "reason": {
            "enum": [
              "feedback.intake.below-cohort-threshold",
              "feedback.intake.source-not-approved",
              "feedback.intake.target-revision-unknown",
              "feedback.intake.nothing-left-after-redaction",
              "feedback.intake.redaction-incomplete"
            ],
            "title": "Reason",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          }
        },
        "required": ["signal_id", "reason", "detail"],
        "title": "RefusedSignal",
        "type": "object"
      },
      "RegionAnchor": {
        "additionalProperties": false,
        "description": "A rectangle in fractions of the asset's width and height.",
        "properties": {
          "asset_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Asset Sha256",
            "type": "string"
          },
          "height": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Height",
            "type": "number"
          },
          "kind": {
            "const": "region",
            "default": "region",
            "title": "Kind",
            "type": "string"
          },
          "width": {
            "exclusiveMinimum": 0.0,
            "maximum": 1.0,
            "title": "Width",
            "type": "number"
          },
          "x": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "X",
            "type": "number"
          },
          "y": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Y",
            "type": "number"
          }
        },
        "required": ["asset_sha256", "x", "y", "width", "height"],
        "title": "RegionAnchor",
        "type": "object"
      },
      "RegisterRequest": {
        "description": "Data for public learner registration.\n\nPrivileged roles are assigned through authenticated institutional or\nadministrator workflows, never selected by an unauthenticated caller.",
        "properties": {
          "email": {
            "format": "email",
            "title": "Email",
            "type": "string"
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "password": {
            "maxLength": 128,
            "minLength": 8,
            "title": "Password",
            "type": "string"
          },
          "role": {
            "const": "student",
            "default": "student",
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["email", "password", "name"],
        "title": "RegisterRequest",
        "type": "object"
      },
      "RegisteredArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_kind": {
            "enum": [
              "model",
              "code",
              "config",
              "runtime",
              "dependency",
              "container",
              "manifest",
              "labels",
              "gate",
              "policy",
              "rubric",
              "profile",
              "threshold",
              "aggregation"
            ],
            "title": "Artifact Kind",
            "type": "string"
          },
          "artifact_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Sha256"
          },
          "license_spdx": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Spdx"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "minLength": 12,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "source_revision": {
            "anyOf": [
              {
                "maxLength": 240,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Revision"
          },
          "source_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "minLength": 4,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Uri"
          },
          "usage": {
            "default": "used",
            "enum": ["used", "not_applicable"],
            "title": "Usage",
            "type": "string"
          },
          "version": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": ["artifact_kind", "artifact_id"],
        "title": "RegisteredArtifact",
        "type": "object"
      },
      "RegisteredMetric": {
        "additionalProperties": false,
        "properties": {
          "denominator": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Denominator",
            "type": "string"
          },
          "direction": {
            "enum": ["higher_is_better", "lower_is_better"],
            "title": "Direction",
            "type": "string"
          },
          "guardrail_threshold_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guardrail Threshold Basis Points"
          },
          "metric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Metric Id",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "secondary", "guardrail"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["metric_id", "role", "denominator", "direction"],
        "title": "RegisteredMetric",
        "type": "object"
      },
      "RegisteredThresholdSet": {
        "additionalProperties": false,
        "properties": {
          "artifact": {
            "$ref": "#/components/schemas/RegisteredArtifact"
          },
          "bands": {
            "items": {
              "$ref": "#/components/schemas/PolicyBand"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Bands",
            "type": "array"
          },
          "rule_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Rule Ids",
            "type": "array"
          }
        },
        "required": ["artifact", "rule_ids", "bands"],
        "title": "RegisteredThresholdSet",
        "type": "object"
      },
      "RegistryReference": {
        "additionalProperties": false,
        "properties": {
          "registry_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Registry Id",
            "type": "string"
          },
          "registry_kind": {
            "enum": ["evaluator", "corpus", "policy_bundle", "environment"],
            "title": "Registry Kind",
            "type": "string"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          }
        },
        "required": ["registry_kind", "registry_id", "registry_sha256"],
        "title": "RegistryReference",
        "type": "object"
      },
      "ReleasedQuote": {
        "additionalProperties": false,
        "description": "A learner's words in the queue, and the reviewer who put them there.\n\nThis model cannot be constructed without a reviewer and a review timestamp,\nwhich is what makes \"no unreviewed learner quote exposure\" structural: a\nquote with nobody's name on it has no shape to arrive in.",
        "properties": {
          "redacted_text": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Redacted Text",
            "type": "string"
          },
          "redactions_applied": {
            "default": [],
            "items": {
              "enum": ["email", "uuid", "identity_reference"],
              "type": "string"
            },
            "maxItems": 3,
            "title": "Redactions Applied",
            "type": "array"
          },
          "released_at": {
            "format": "date-time",
            "title": "Released At",
            "type": "string"
          },
          "released_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Released By",
            "type": "string"
          },
          "reviewed": {
            "const": true,
            "default": true,
            "title": "Reviewed",
            "type": "boolean"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          }
        },
        "required": ["signal_id", "released_by", "released_at", "redacted_text"],
        "title": "ReleasedQuote",
        "type": "object"
      },
      "Remediation": {
        "additionalProperties": false,
        "description": "One person's decision about one claim, at one exact revision.",
        "properties": {
          "action": {
            "enum": ["attach", "replace", "corroborate", "edit", "abstain", "request_review"],
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Actor",
            "type": "string"
          },
          "assigned_to": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assigned To"
          },
          "base_revision": {
            "minimum": 1.0,
            "title": "Base Revision",
            "type": "integer"
          },
          "claim_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "composed_at": {
            "format": "date-time",
            "title": "Composed At",
            "type": "string"
          },
          "preview_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Preview Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "replaces_citation_id": {
            "anyOf": [
              {
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replaces Citation Id"
          },
          "role": {
            "enum": ["author", "peer_reviewer", "subject_expert", "editorial_board"],
            "title": "Role",
            "type": "string"
          },
          "source_id": {
            "anyOf": [
              {
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Id"
          },
          "source_version": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Version"
          },
          "statement": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Statement"
          }
        },
        "required": [
          "action",
          "claim_id",
          "base_revision",
          "actor",
          "role",
          "rationale",
          "preview_sha256",
          "composed_at"
        ],
        "title": "Remediation",
        "type": "object"
      },
      "RemediationPreviewRequest": {
        "properties": {
          "action": {
            "enum": ["attach", "replace", "corroborate", "edit", "abstain", "request_review"],
            "title": "Action",
            "type": "string"
          },
          "base_revision": {
            "minimum": 1.0,
            "title": "Base Revision",
            "type": "integer"
          },
          "replaces_citation_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replaces Citation Id"
          }
        },
        "required": ["action", "base_revision"],
        "title": "RemediationPreviewRequest",
        "type": "object"
      },
      "RemedyLedger": {
        "additionalProperties": false,
        "description": "Every remedy applied to one export, and what is still unanswered.",
        "properties": {
          "build_revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Build Revision",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Package Id",
            "type": "string"
          },
          "remedies": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExportRemedy"
            },
            "title": "Remedies",
            "type": "array"
          },
          "unanswered": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unanswered",
            "type": "array"
          }
        },
        "required": ["package_id", "build_revision"],
        "title": "RemedyLedger",
        "type": "object"
      },
      "ReplayCommand": {
        "additionalProperties": false,
        "description": "Run it again as a new run, against today's sources, grants and policy.",
        "properties": {
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "issued_by_role": {
            "enum": ["run_owner", "course_owner", "operator", "budget_holder"],
            "title": "Issued By Role",
            "type": "string"
          },
          "kind": {
            "const": "replay",
            "default": "replay",
            "title": "Kind",
            "type": "string"
          },
          "mutates_source_run": {
            "const": false,
            "default": false,
            "title": "Mutates Source Run",
            "type": "boolean"
          },
          "new_run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "New Run Id",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "revalidate": {
            "items": {
              "enum": ["sources", "course", "policy", "grants", "budget", "rights"],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Revalidate",
            "type": "array"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "command_id",
          "idempotency_key",
          "run_id",
          "expected_version",
          "issued_by",
          "issued_by_role",
          "reason",
          "issued_at",
          "new_run_id",
          "revalidate"
        ],
        "title": "ReplayCommand",
        "type": "object"
      },
      "ReplayLineage": {
        "additionalProperties": false,
        "description": "The link from a replay to what it replayed.",
        "properties": {
          "new_run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "New Run Id",
            "type": "string"
          },
          "revalidated": {
            "items": {
              "enum": ["sources", "course", "policy", "grants", "budget", "rights"],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Revalidated",
            "type": "array"
          },
          "source_run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Run Id",
            "type": "string"
          },
          "source_run_version": {
            "minimum": 1.0,
            "title": "Source Run Version",
            "type": "integer"
          }
        },
        "required": ["source_run_id", "source_run_version", "new_run_id", "revalidated"],
        "title": "ReplayLineage",
        "type": "object"
      },
      "ReplyRequest": {
        "additionalProperties": false,
        "properties": {
          "attachments": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommentAttachment"
            },
            "maxItems": 10,
            "title": "Attachments",
            "type": "array"
          },
          "body": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "mentions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CommentMention"
            },
            "maxItems": 20,
            "title": "Mentions",
            "type": "array"
          },
          "parent_comment_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Parent Comment Id",
            "type": "string"
          }
        },
        "required": ["parent_comment_id", "body", "expected_version"],
        "title": "ReplyRequest",
        "type": "object"
      },
      "ReproducibilityDeclaration": {
        "additionalProperties": false,
        "properties": {
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Limitations",
            "type": "array"
          },
          "mode": {
            "enum": ["bit_exact", "semantically_equivalent", "not_reproducible"],
            "title": "Mode",
            "type": "string"
          },
          "parameters_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parameters Sha256"
          },
          "procedure": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Procedure",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Reason Codes",
            "type": "array"
          },
          "seed": {
            "anyOf": [
              {
                "maxLength": 240,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seed"
          },
          "status": {
            "enum": ["reproducible", "nonreproducible"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "mode", "procedure", "reason_codes", "limitations"],
        "title": "ReproducibilityDeclaration",
        "type": "object"
      },
      "ReproducibilityEvidence": {
        "additionalProperties": false,
        "properties": {
          "artifact_uri": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Artifact Uri",
            "type": "string"
          },
          "environment": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Environment",
            "type": "string"
          },
          "procedure_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Procedure Version",
            "type": "string"
          },
          "repeat_count": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Repeat Count",
            "type": "integer"
          }
        },
        "required": ["procedure_version", "environment", "repeat_count", "artifact_uri"],
        "title": "ReproducibilityEvidence",
        "type": "object"
      },
      "RequirementOutcome": {
        "additionalProperties": false,
        "properties": {
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/ConditionOutcome"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Conditions",
            "type": "array"
          },
          "remaining_alternative_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Remaining Alternative Ids",
            "type": "array"
          },
          "requirement_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Requirement Id",
            "type": "string"
          },
          "satisfied": {
            "title": "Satisfied",
            "type": "boolean"
          },
          "satisfied_by": {
            "enum": ["all_of", "any_of"],
            "title": "Satisfied By",
            "type": "string"
          },
          "satisfying_condition_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "title": "Satisfying Condition Ids",
            "type": "array"
          }
        },
        "required": [
          "requirement_id",
          "satisfied_by",
          "satisfied",
          "conditions",
          "satisfying_condition_ids",
          "remaining_alternative_ids"
        ],
        "title": "RequirementOutcome",
        "type": "object"
      },
      "ResearchClaimResponse": {
        "properties": {
          "cited_ids": {
            "items": {
              "type": "string"
            },
            "title": "Cited Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "risk_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Risk Reasons",
            "type": "array"
          },
          "support_status": {
            "enum": ["pass", "review", "fail"],
            "title": "Support Status",
            "type": "string"
          },
          "support_term_overlap": {
            "minimum": 0.0,
            "title": "Support Term Overlap",
            "type": "integer"
          },
          "text": {
            "title": "Text",
            "type": "string"
          },
          "unknown_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unknown Citation Ids",
            "type": "array"
          }
        },
        "required": ["id", "text", "support_term_overlap", "support_status"],
        "title": "ResearchClaimResponse",
        "type": "object"
      },
      "ResearchIntegrityAdjudicationResponse": {
        "properties": {
          "decision": {
            "enum": ["allow", "hold_for_review", "block_publication"],
            "title": "Decision",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "status": {
            "enum": ["pass", "review", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "decision", "rationale"],
        "title": "ResearchIntegrityAdjudicationResponse",
        "type": "object"
      },
      "ResearchIntegrityRequest": {
        "properties": {
          "build_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Build Id"
          },
          "generated_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Generated Text",
            "type": "string"
          },
          "known_citation_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Known Citation Ids",
            "type": "array"
          },
          "max_queries_per_claim": {
            "default": 4,
            "maximum": 8.0,
            "minimum": 1.0,
            "title": "Max Queries Per Claim",
            "type": "integer"
          },
          "source_excerpt_texts": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Source Excerpt Texts",
            "type": "array"
          },
          "source_package_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "strictness": {
            "default": "strict",
            "enum": ["standard", "strict", "high_stakes"],
            "title": "Strictness",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "generated_text"],
        "title": "ResearchIntegrityRequest",
        "type": "object"
      },
      "ResearchIntegrityResponse": {
        "properties": {
          "adjudication": {
            "$ref": "#/components/schemas/ResearchIntegrityAdjudicationResponse"
          },
          "build_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Build Id"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "extracted_claims": {
            "items": {
              "$ref": "#/components/schemas/ResearchClaimResponse"
            },
            "title": "Extracted Claims",
            "type": "array"
          },
          "kill_switches": {
            "items": {
              "$ref": "#/components/schemas/ResearchKillSwitchDecisionResponse"
            },
            "title": "Kill Switches",
            "type": "array"
          },
          "query_decomposition": {
            "items": {
              "$ref": "#/components/schemas/ResearchQueryDecompositionResponse"
            },
            "title": "Query Decomposition",
            "type": "array"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "rollback_actions": {
            "items": {
              "$ref": "#/components/schemas/ResearchRollbackActionResponse"
            },
            "title": "Rollback Actions",
            "type": "array"
          },
          "safe_degradation": {
            "$ref": "#/components/schemas/ResearchSafeDegradationResponse"
          },
          "source_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "verifier_checks": {
            "items": {
              "$ref": "#/components/schemas/ResearchVerifierCheckResponse"
            },
            "title": "Verifier Checks",
            "type": "array"
          }
        },
        "required": ["review_id", "tenant_id", "evaluated_at", "adjudication", "safe_degradation"],
        "title": "ResearchIntegrityResponse",
        "type": "object"
      },
      "ResearchKillSwitchDecisionResponse": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "scope": {
            "enum": ["agent", "family", "tenant", "provider", "region"],
            "title": "Scope",
            "type": "string"
          },
          "state": {
            "enum": ["armed", "tripped"],
            "title": "State",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["id", "scope", "target", "state", "reason"],
        "title": "ResearchKillSwitchDecisionResponse",
        "type": "object"
      },
      "ResearchQueryDecompositionResponse": {
        "properties": {
          "claim_id": {
            "title": "Claim Id",
            "type": "string"
          },
          "method_labels": {
            "items": {
              "type": "string"
            },
            "title": "Method Labels",
            "type": "array"
          },
          "queries": {
            "items": {
              "type": "string"
            },
            "title": "Queries",
            "type": "array"
          }
        },
        "required": ["claim_id"],
        "title": "ResearchQueryDecompositionResponse",
        "type": "object"
      },
      "ResearchRollbackActionResponse": {
        "properties": {
          "action": {
            "enum": [
              "continue_pipeline",
              "hold_publish",
              "retain_previous_release",
              "invalidate_generated_artifacts",
              "queue_review_package",
              "trip_kill_switch"
            ],
            "title": "Action",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": ["id", "action", "target", "rationale"],
        "title": "ResearchRollbackActionResponse",
        "type": "object"
      },
      "ResearchSafeDegradationResponse": {
        "properties": {
          "allowed_output": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Allowed Output"
          },
          "learner_visible_message": {
            "title": "Learner Visible Message",
            "type": "string"
          },
          "mode": {
            "enum": [
              "continue",
              "text_only_with_disclaimer",
              "deferred_answer",
              "abstain",
              "manual_review"
            ],
            "title": "Mode",
            "type": "string"
          },
          "resume_condition": {
            "title": "Resume Condition",
            "type": "string"
          }
        },
        "required": ["mode", "learner_visible_message", "resume_condition"],
        "title": "ResearchSafeDegradationResponse",
        "type": "object"
      },
      "ResearchVerifierCheckResponse": {
        "properties": {
          "claim_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Claim Id"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "title": "Evidence",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "verifier": {
            "enum": [
              "citation_membership",
              "source_overlap",
              "fabrication_marker",
              "query_decomposition",
              "source_scope"
            ],
            "title": "Verifier",
            "type": "string"
          }
        },
        "required": ["id", "verifier", "status", "rationale"],
        "title": "ResearchVerifierCheckResponse",
        "type": "object"
      },
      "ResolutionConflict": {
        "additionalProperties": false,
        "description": "A level tried to move a value the wrong way. Both values are named.",
        "properties": {
          "against_level": {
            "enum": ["platform", "region", "institution", "program", "course"],
            "title": "Against Level",
            "type": "string"
          },
          "at_level": {
            "enum": ["platform", "region", "institution", "program", "course"],
            "title": "At Level",
            "type": "string"
          },
          "attempted": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "bool": "#/components/schemas/BoolValue",
                    "enum": "#/components/schemas/EnumValue",
                    "int": "#/components/schemas/IntValue",
                    "set": "#/components/schemas/SetValue"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BoolValue"
                  },
                  {
                    "$ref": "#/components/schemas/IntValue"
                  },
                  {
                    "$ref": "#/components/schemas/EnumValue"
                  },
                  {
                    "$ref": "#/components/schemas/SetValue"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Attempted"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "in_force": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "bool": "#/components/schemas/BoolValue",
                    "enum": "#/components/schemas/EnumValue",
                    "int": "#/components/schemas/IntValue",
                    "set": "#/components/schemas/SetValue"
                  },
                  "propertyName": "kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BoolValue"
                  },
                  {
                    "$ref": "#/components/schemas/IntValue"
                  },
                  {
                    "$ref": "#/components/schemas/EnumValue"
                  },
                  {
                    "$ref": "#/components/schemas/SetValue"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "In Force"
          },
          "key": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "reason": {
            "enum": ["loosens_floor", "wrong_value_kind", "unknown_key", "fixed_by_platform"],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["key", "reason", "at_level", "against_level", "detail"],
        "title": "ResolutionConflict",
        "type": "object"
      },
      "ResolutionProbe": {
        "additionalProperties": false,
        "properties": {
          "conflicts": {
            "default": [],
            "items": {
              "enum": ["loosens_floor", "wrong_value_kind", "unknown_key", "fixed_by_platform"],
              "type": "string"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "key": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "scenario": {
            "maxLength": 100,
            "minLength": 3,
            "title": "Scenario",
            "type": "string"
          },
          "set_by": {
            "anyOf": [
              {
                "enum": ["platform", "region", "institution", "program", "course"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Set By"
          }
        },
        "required": ["scenario", "key"],
        "title": "ResolutionProbe",
        "type": "object"
      },
      "ResolutionReport": {
        "additionalProperties": false,
        "properties": {
          "blocking_count": {
            "minimum": 0.0,
            "title": "Blocking Count",
            "type": "integer"
          },
          "every_material_resolves": {
            "title": "Every Material Resolves",
            "type": "boolean"
          },
          "resolutions": {
            "items": {
              "$ref": "#/components/schemas/MaterialResolution"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Resolutions",
            "type": "array"
          }
        },
        "required": ["resolutions", "blocking_count", "every_material_resolves"],
        "title": "ResolutionReport",
        "type": "object"
      },
      "ResolutionResult": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "conflicts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ResolutionConflict"
            },
            "maxItems": 100,
            "title": "Conflicts",
            "type": "array"
          },
          "levels_applied": {
            "items": {
              "enum": ["platform", "region", "institution", "program", "course"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Levels Applied",
            "type": "array"
          },
          "resolved": {
            "items": {
              "$ref": "#/components/schemas/ResolvedSetting"
            },
            "maxItems": 100,
            "title": "Resolved",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "at", "resolved", "levels_applied"],
        "title": "ResolutionResult",
        "type": "object"
      },
      "ResolveRequest": {
        "additionalProperties": false,
        "properties": {
          "descriptor": {
            "$ref": "#/components/schemas/ContentDescriptor"
          },
          "overlay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InstitutionOverlay"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["descriptor"],
        "title": "ResolveRequest",
        "type": "object"
      },
      "ResolvedContext": {
        "additionalProperties": false,
        "description": "What the server decided this operation may read, and the digest of it.",
        "properties": {
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "grants": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Grants",
            "type": "array"
          },
          "operation": {
            "enum": [
              "draft_lesson_section",
              "suggest_distractors",
              "rewrite_for_reading_level",
              "summarise_source",
              "propose_rubric_criteria"
            ],
            "title": "Operation",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          }
        },
        "required": ["operation", "grants", "context_sha256", "prompt_sha256"],
        "title": "ResolvedContext",
        "type": "object"
      },
      "ResolvedSetting": {
        "additionalProperties": false,
        "description": "The value in force, and which level put it there.",
        "properties": {
          "contributed_by": {
            "items": {
              "enum": ["platform", "region", "institution", "program", "course"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Contributed By",
            "type": "array"
          },
          "key": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Key",
            "type": "string"
          },
          "set_by": {
            "enum": ["platform", "region", "institution", "program", "course"],
            "title": "Set By",
            "type": "string"
          },
          "value": {
            "discriminator": {
              "mapping": {
                "bool": "#/components/schemas/BoolValue",
                "enum": "#/components/schemas/EnumValue",
                "int": "#/components/schemas/IntValue",
                "set": "#/components/schemas/SetValue"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/BoolValue"
              },
              {
                "$ref": "#/components/schemas/IntValue"
              },
              {
                "$ref": "#/components/schemas/EnumValue"
              },
              {
                "$ref": "#/components/schemas/SetValue"
              }
            ],
            "title": "Value"
          }
        },
        "required": ["key", "value", "set_by", "contributed_by"],
        "title": "ResolvedSetting",
        "type": "object"
      },
      "ResolvedTarget": {
        "additionalProperties": false,
        "description": "One target's window, as an instant, or the reason there isn't one.",
        "properties": {
          "detail": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "instant": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instant"
          },
          "resolution": {
            "anyOf": [
              {
                "enum": ["resolved", "ambiguous", "nonexistent"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id", "detail"],
        "title": "ResolvedTarget",
        "type": "object"
      },
      "ResolvedWindow": {
        "additionalProperties": false,
        "description": "A local window turned into instants, or the reason it could not be.",
        "properties": {
          "candidates": {
            "default": [],
            "items": {
              "format": "date-time",
              "type": "string"
            },
            "maxItems": 4,
            "title": "Candidates",
            "type": "array"
          },
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "end_resolution": {
            "enum": ["resolved", "ambiguous", "nonexistent"],
            "title": "End Resolution",
            "type": "string"
          },
          "ends_at_utc": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ends At Utc"
          },
          "schema_version": {
            "const": "9.8.0",
            "default": "9.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "start_resolution": {
            "enum": ["resolved", "ambiguous", "nonexistent"],
            "title": "Start Resolution",
            "type": "string"
          },
          "starts_at_utc": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Starts At Utc"
          },
          "zone": {
            "maxLength": 60,
            "minLength": 3,
            "title": "Zone",
            "type": "string"
          }
        },
        "required": ["zone", "start_resolution", "end_resolution"],
        "title": "ResolvedWindow",
        "type": "object"
      },
      "ResourceCeiling": {
        "additionalProperties": false,
        "description": "What one grant may consume. Every field is required and finite.",
        "properties": {
          "max_bytes_read": {
            "maximum": 1000000000.0,
            "minimum": 1.0,
            "title": "Max Bytes Read",
            "type": "integer"
          },
          "max_calls": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Max Calls",
            "type": "integer"
          },
          "max_wall_clock_ms": {
            "maximum": 3600000.0,
            "minimum": 1.0,
            "title": "Max Wall Clock Ms",
            "type": "integer"
          }
        },
        "required": ["max_calls", "max_wall_clock_ms", "max_bytes_read"],
        "title": "ResourceCeiling",
        "type": "object"
      },
      "ResponseCapturePolicy": {
        "additionalProperties": false,
        "properties": {
          "admitted_event_names": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Admitted Event Names",
            "type": "array"
          },
          "freeform_telemetry_allowed": {
            "const": false,
            "default": false,
            "title": "Freeform Telemetry Allowed",
            "type": "boolean"
          },
          "learner_identity_allowed": {
            "const": false,
            "default": false,
            "title": "Learner Identity Allowed",
            "type": "boolean"
          },
          "schema_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Schema Sha256",
            "type": "string"
          },
          "schema_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Schema Version",
            "type": "string"
          },
          "signed_receipt_required": {
            "const": true,
            "default": true,
            "title": "Signed Receipt Required",
            "type": "boolean"
          },
          "signing_key_ref": {
            "pattern": "^secret://[A-Za-z0-9._:/-]{3,300}$",
            "title": "Signing Key Ref",
            "type": "string"
          }
        },
        "required": ["schema_version", "schema_sha256", "admitted_event_names", "signing_key_ref"],
        "title": "ResponseCapturePolicy",
        "type": "object"
      },
      "RestoreCheck": {
        "additionalProperties": false,
        "description": "Whether a stopped model may serve again, and which gates are still shut.",
        "properties": {
          "basis": {
            "enum": ["abuse", "drift", "credential", "cost", "operator_request"],
            "title": "Basis",
            "type": "string"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "may_restore": {
            "title": "May Restore",
            "type": "boolean"
          },
          "met": {
            "default": [],
            "items": {
              "enum": [
                "fresh_evaluation",
                "approvals_renewed",
                "credential_rotated",
                "incident_closed"
              ],
              "type": "string"
            },
            "title": "Met",
            "type": "array"
          },
          "required": {
            "items": {
              "enum": [
                "fresh_evaluation",
                "approvals_renewed",
                "credential_rotated",
                "incident_closed"
              ],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Required",
            "type": "array"
          }
        },
        "required": ["candidate_id", "basis", "required", "may_restore"],
        "title": "RestoreCheck",
        "type": "object"
      },
      "RestoreCheckRequest": {
        "additionalProperties": false,
        "properties": {
          "basis": {
            "enum": ["abuse", "drift", "credential", "cost", "operator_request"],
            "title": "Basis",
            "type": "string"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "met": {
            "default": [],
            "items": {
              "enum": [
                "fresh_evaluation",
                "approvals_renewed",
                "credential_rotated",
                "incident_closed"
              ],
              "type": "string"
            },
            "maxItems": 10,
            "title": "Met",
            "type": "array"
          }
        },
        "required": ["candidate_id", "basis"],
        "title": "RestoreCheckRequest",
        "type": "object"
      },
      "ResultEnvelope": {
        "additionalProperties": false,
        "description": "A signed result. The signature is over the whole body.",
        "properties": {
          "body": {
            "$ref": "#/components/schemas/ResultEnvelopeBody"
          },
          "body_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Body Sha256",
            "type": "string"
          },
          "signature": {
            "maxLength": 64,
            "minLength": 64,
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          }
        },
        "required": ["body", "body_sha256", "signature"],
        "title": "ResultEnvelope",
        "type": "object"
      },
      "ResultEnvelopeBody": {
        "additionalProperties": false,
        "description": "Everything the signature covers.\n\nSplit out as its own model so the signature is over a shape rather than over\na hand-assembled subset: adding a field here brings it under the signature\nautomatically, which is the opposite of the usual failure.",
        "properties": {
          "citations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CitationRef"
            },
            "maxItems": 60,
            "title": "Citations",
            "type": "array"
          },
          "confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Confidence Basis Points",
            "type": "integer"
          },
          "cost_minor_units": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "envelope_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Envelope Id",
            "type": "string"
          },
          "input_binding_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Binding Sha256",
            "type": "string"
          },
          "payload": {
            "$ref": "#/components/schemas/ResultPayload"
          },
          "produced_at": {
            "format": "date-time",
            "title": "Produced At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.15.0",
            "default": "6.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": ["produced", "partial", "refused_by_agent"],
            "title": "Status",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "versions": {
            "$ref": "#/components/schemas/ProducerVersions"
          }
        },
        "required": [
          "envelope_id",
          "produced_at",
          "tenant_id",
          "versions",
          "input_binding_sha256",
          "payload",
          "confidence_basis_points",
          "cost_minor_units",
          "status"
        ],
        "title": "ResultEnvelopeBody",
        "type": "object"
      },
      "ResultPayload": {
        "additionalProperties": false,
        "description": "What the agent produced: named fields and nothing else.",
        "properties": {
          "fields": {
            "items": {
              "$ref": "#/components/schemas/ContentField"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Fields",
            "type": "array"
          },
          "output_kind": {
            "enum": [
              "curriculum_outline_proposal",
              "item_draft_proposal",
              "verification_finding_set",
              "accessibility_remediation_proposal",
              "tutoring_script_proposal"
            ],
            "title": "Output Kind",
            "type": "string"
          }
        },
        "required": ["output_kind", "fields"],
        "title": "ResultPayload",
        "type": "object"
      },
      "ResumeCommand": {
        "additionalProperties": false,
        "description": "Continue a paused run \u2014 but only after every precondition is checked again.\n\n``revalidated`` is a `Literal[True]` the caller cannot set to false, so a\nresume that skipped revalidation is not a resume this contract can express.\nThe engine is what actually re-runs the checks; this makes the claim\nunavoidable rather than optional.",
        "properties": {
          "command_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Command Id",
            "type": "string"
          },
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issued_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Issued By",
            "type": "string"
          },
          "issued_by_role": {
            "enum": ["run_owner", "course_owner", "operator", "budget_holder"],
            "title": "Issued By Role",
            "type": "string"
          },
          "kind": {
            "const": "resume",
            "default": "resume",
            "title": "Kind",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "revalidated": {
            "const": true,
            "default": true,
            "title": "Revalidated",
            "type": "boolean"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "command_id",
          "idempotency_key",
          "run_id",
          "expected_version",
          "issued_by",
          "issued_by_role",
          "reason",
          "issued_at"
        ],
        "title": "ResumeCommand",
        "type": "object"
      },
      "RetentionDesign": {
        "additionalProperties": false,
        "description": "How long the rows live. Always a proposal, never a derivation.",
        "properties": {
          "basis": {
            "maxLength": 300,
            "minLength": 8,
            "title": "Basis",
            "type": "string"
          },
          "data_class": {
            "enum": [
              "learner_identifiable",
              "learner_pseudonymous",
              "assessment_secure",
              "authored_content",
              "operational_record",
              "unclassified"
            ],
            "title": "Data Class",
            "type": "string"
          },
          "proposed_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Proposed Days",
            "type": "integer"
          },
          "requires_ratification": {
            "const": true,
            "default": true,
            "title": "Requires Ratification",
            "type": "boolean"
          }
        },
        "required": ["data_class", "proposed_days", "basis"],
        "title": "RetentionDesign",
        "type": "object"
      },
      "RetentionPolicy": {
        "additionalProperties": false,
        "properties": {
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "retain_payload_days": {
            "maximum": 3650.0,
            "minimum": 30.0,
            "title": "Retain Payload Days",
            "type": "integer"
          }
        },
        "required": ["policy_id", "retain_payload_days"],
        "title": "RetentionPolicy",
        "type": "object"
      },
      "RetentionRequest": {
        "additionalProperties": false,
        "properties": {
          "appeal_window_closes_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appeal Window Closes At"
          },
          "declaration": {
            "$ref": "#/components/schemas/ReviewerConflictDeclaration"
          }
        },
        "required": ["declaration"],
        "title": "RetentionRequest",
        "type": "object"
      },
      "RetentionSettings": {
        "additionalProperties": false,
        "description": "How long a session's record is kept, and what leaves with it.",
        "properties": {
          "audio_days": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Audio Days",
            "type": "integer"
          },
          "delete_on_request": {
            "const": true,
            "default": true,
            "title": "Delete On Request",
            "type": "boolean"
          },
          "export_permitted": {
            "title": "Export Permitted",
            "type": "boolean"
          },
          "transcript_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Transcript Days",
            "type": "integer"
          }
        },
        "required": ["transcript_days", "audio_days", "export_permitted"],
        "title": "RetentionSettings",
        "type": "object"
      },
      "RetentionState": {
        "additionalProperties": false,
        "description": "When this material must be gone, and what has happened to it so far.",
        "properties": {
          "deleted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deleted At"
          },
          "opt_outs_applied": {
            "default": 0,
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Opt Outs Applied",
            "type": "integer"
          },
          "retain_until": {
            "format": "date-time",
            "title": "Retain Until",
            "type": "string"
          },
          "retention_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Retention Days",
            "type": "integer"
          }
        },
        "required": ["retention_days", "retain_until"],
        "title": "RetentionState",
        "type": "object"
      },
      "RetentionVerdict": {
        "additionalProperties": false,
        "description": "Whether a declaration may be disposed of yet, and what is holding it.",
        "properties": {
          "appeal_window_closes_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appeal Window Closes At"
          },
          "declaration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Declaration Id",
            "type": "string"
          },
          "holding": {
            "default": [],
            "items": {
              "enum": ["appeal_window", "minimum_retention"],
              "type": "string"
            },
            "title": "Holding",
            "type": "array"
          },
          "may_dispose": {
            "title": "May Dispose",
            "type": "boolean"
          },
          "retain_until": {
            "format": "date-time",
            "title": "Retain Until",
            "type": "string"
          },
          "withdrawn": {
            "title": "Withdrawn",
            "type": "boolean"
          }
        },
        "required": ["declaration_id", "withdrawn", "retain_until", "may_dispose"],
        "title": "RetentionVerdict",
        "type": "object"
      },
      "RevalidateRequest": {
        "additionalProperties": false,
        "properties": {
          "after": {
            "items": {
              "$ref": "#/components/schemas/OverlayVersion"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "After",
            "type": "array"
          },
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "before": {
            "items": {
              "$ref": "#/components/schemas/OverlayVersion"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Before",
            "type": "array"
          },
          "invalidating_keys": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Invalidating Keys",
            "type": "array"
          },
          "inventory": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/InventoryItem"
            },
            "maxItems": 1000,
            "title": "Inventory",
            "type": "array"
          }
        },
        "required": ["before", "after"],
        "title": "RevalidateRequest",
        "type": "object"
      },
      "RevalidateResponse": {
        "additionalProperties": false,
        "properties": {
          "changed_keys": {
            "items": {
              "type": "string"
            },
            "title": "Changed Keys",
            "type": "array"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/RevalidationItem"
            },
            "title": "Items",
            "type": "array"
          },
          "unaffected_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unaffected Item Ids",
            "type": "array"
          }
        },
        "required": ["changed_keys", "items", "unaffected_item_ids"],
        "title": "RevalidateResponse",
        "type": "object"
      },
      "RevalidationItem": {
        "additionalProperties": false,
        "description": "One dependent thing, and what the change means for it. Nothing is rewritten.",
        "properties": {
          "category": {
            "enum": ["users", "content", "builds", "attempts", "integrations", "schedules"],
            "title": "Category",
            "type": "string"
          },
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "keys": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Keys",
            "type": "array"
          },
          "verdict": {
            "enum": ["still_valid", "needs_recheck", "now_invalid"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["item_id", "category", "verdict", "keys", "detail"],
        "title": "RevalidationItem",
        "type": "object"
      },
      "ReviewAction": {
        "additionalProperties": false,
        "description": "What a reviewer may ask. There is no field for a grade or a consequence.",
        "properties": {
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "verb": {
            "enum": ["request_evidence", "dismiss", "escalate", "open_case"],
            "title": "Verb",
            "type": "string"
          }
        },
        "required": ["verb", "reason", "expected_version"],
        "title": "ReviewAction",
        "type": "object"
      },
      "ReviewComparisonSnapshot": {
        "additionalProperties": false,
        "properties": {
          "comparison_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Comparison Sha256",
            "type": "string"
          },
          "source_variant_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Variant Sha256",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Summary",
            "type": "string"
          },
          "target_variant_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Target Variant Sha256",
            "type": "string"
          }
        },
        "required": [
          "source_variant_sha256",
          "target_variant_sha256",
          "comparison_sha256",
          "summary"
        ],
        "title": "ReviewComparisonSnapshot",
        "type": "object"
      },
      "ReviewContextSnapshot": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["general_adult", "youth", "professional", "high_stakes"],
            "title": "Audience",
            "type": "string"
          },
          "community_context_id": {
            "anyOf": [
              {
                "maxLength": 120,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Community Context Id"
          },
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "context_summary": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Context Summary",
            "type": "string"
          },
          "discipline_id": {
            "maxLength": 120,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Discipline Id",
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "maxLength": 120,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          }
        },
        "required": ["audience", "risk", "discipline_id", "context_summary", "context_sha256"],
        "title": "ReviewContextSnapshot",
        "type": "object"
      },
      "ReviewCorrectionImpactResponse": {
        "properties": {
          "correction_id": {
            "title": "Correction Id",
            "type": "string"
          },
          "invalidated_at": {
            "format": "date-time",
            "title": "Invalidated At",
            "type": "string"
          },
          "invalidated_evidence": {
            "items": {
              "type": "string"
            },
            "title": "Invalidated Evidence",
            "type": "array"
          },
          "next_actions": {
            "items": {
              "type": "string"
            },
            "title": "Next Actions",
            "type": "array"
          },
          "previous_course_status": {
            "title": "Previous Course Status",
            "type": "string"
          },
          "revised_course_status": {
            "title": "Revised Course Status",
            "type": "string"
          },
          "state": {
            "const": "revised_path_required",
            "default": "revised_path_required",
            "title": "State",
            "type": "string"
          },
          "triggered_by_action": {
            "enum": ["request_changes", "reject"],
            "title": "Triggered By Action",
            "type": "string"
          }
        },
        "required": [
          "correction_id",
          "triggered_by_action",
          "invalidated_at",
          "previous_course_status",
          "revised_course_status"
        ],
        "title": "ReviewCorrectionImpactResponse",
        "type": "object"
      },
      "ReviewCriterion": {
        "additionalProperties": false,
        "description": "One thing one dimension checks. Its code carries the dimension, so it cannot be lent.",
        "properties": {
          "code": {
            "maxLength": 80,
            "pattern": "^[a-z_]+\\.[a-z0-9_]+$",
            "title": "Code",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "evidence": {
            "enum": [
              "source_citation",
              "alignment_map",
              "automated_gate",
              "reviewer_attestation",
              "rights_record",
              "render_proof"
            ],
            "title": "Evidence",
            "type": "string"
          },
          "statement": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          }
        },
        "required": ["code", "dimension", "statement", "evidence"],
        "title": "ReviewCriterion",
        "type": "object"
      },
      "ReviewDecision": {
        "additionalProperties": false,
        "description": "One person's action on one run, recorded so it cannot be edited later.",
        "properties": {
          "action": {
            "enum": ["request_rerun", "promote", "restrict", "revise", "retire", "record_review"],
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "maxLength": 200,
            "minLength": 2,
            "title": "Actor",
            "type": "string"
          },
          "authority": {
            "enum": ["analyst", "psychometrician", "fairness_reviewer"],
            "title": "Authority",
            "type": "string"
          },
          "countersigned_authority": {
            "anyOf": [
              {
                "enum": ["analyst", "psychometrician", "fairness_reviewer"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Countersigned Authority"
          },
          "countersigned_by": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Countersigned By"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "item_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "run_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "9.6.0",
            "default": "9.6.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "run_id",
          "action",
          "actor",
          "authority",
          "rationale",
          "evidence_sha256",
          "decided_at"
        ],
        "title": "ReviewDecision",
        "type": "object"
      },
      "ReviewDecisionEvidence": {
        "additionalProperties": false,
        "description": "What a reviewer is pointing at.",
        "properties": {
          "kind": {
            "enum": ["comment", "gate", "diff", "source", "media"],
            "title": "Kind",
            "type": "string"
          },
          "reference": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Reference",
            "type": "string"
          },
          "revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision",
            "type": "string"
          }
        },
        "required": ["kind", "reference", "revision"],
        "title": "ReviewDecisionEvidence",
        "type": "object"
      },
      "ReviewDecisionRecord": {
        "additionalProperties": false,
        "description": "The decision as recorded: who, what they saw, and what it produced.",
        "properties": {
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decided_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Decided By",
            "type": "string"
          },
          "decision": {
            "enum": ["accept", "edit_and_accept", "reject", "defer"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "draft": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DraftRevision"
              },
              {
                "type": "null"
              }
            ]
          },
          "gate_reruns": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GateRerun"
            },
            "maxItems": 10,
            "title": "Gate Reruns",
            "type": "array"
          },
          "proposal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "saw_proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Saw Proposal Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.15.0",
            "default": "6.15.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "proposal_id",
          "tenant_id",
          "decided_by",
          "decided_at",
          "decision",
          "rationale",
          "saw_proposal_sha256",
          "record_sha256"
        ],
        "title": "ReviewDecisionRecord",
        "type": "object"
      },
      "ReviewDecisionRecordResponse": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer": {
            "title": "Reviewer",
            "type": "string"
          }
        },
        "required": ["action", "comment", "reviewer", "reviewed_at"],
        "title": "ReviewDecisionRecordResponse",
        "type": "object"
      },
      "ReviewDecisionRequest": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "default": "",
            "maxLength": 4000,
            "title": "Comment",
            "type": "string"
          }
        },
        "required": ["action"],
        "title": "ReviewDecisionRequest",
        "type": "object"
      },
      "ReviewDecisionResponse": {
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/ReviewDecisionRecordResponse"
          },
          "item": {
            "$ref": "#/components/schemas/ReviewQueueDetailResponse"
          }
        },
        "required": ["item", "decision"],
        "title": "ReviewDecisionResponse",
        "type": "object"
      },
      "ReviewDecisionResult": {
        "additionalProperties": false,
        "description": "A recorded decision, or the reasons it was not.",
        "properties": {
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "recorded": {
            "title": "Recorded",
            "type": "boolean"
          },
          "refusals": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Refusals",
            "type": "array"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          }
        },
        "required": ["subject_id", "kind", "recorded"],
        "title": "ReviewDecisionResult",
        "type": "object"
      },
      "ReviewEvidenceExportReport": {
        "additionalProperties": false,
        "properties": {
          "deterministic_across_rebuilds": {
            "title": "Deterministic Across Rebuilds",
            "type": "boolean"
          },
          "every_tamper_detected": {
            "title": "Every Tamper Detected",
            "type": "boolean"
          },
          "every_validation_finding_reached": {
            "title": "Every Validation Finding Reached",
            "type": "boolean"
          },
          "expiry_refuses_a_stale_export": {
            "title": "Expiry Refuses A Stale Export",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "injection_probes": {
            "items": {
              "$ref": "#/components/schemas/InjectionProbe"
            },
            "maxItems": 40,
            "minItems": 5,
            "title": "Injection Probes",
            "type": "array"
          },
          "large_export_splits_into_parts": {
            "title": "Large Export Splits Into Parts",
            "type": "boolean"
          },
          "minimisation_cells": {
            "minimum": 1.0,
            "title": "Minimisation Cells",
            "type": "integer"
          },
          "minimisation_probes": {
            "items": {
              "$ref": "#/components/schemas/MinimisationProbe"
            },
            "maxItems": 60,
            "minItems": 6,
            "title": "Minimisation Probes",
            "type": "array"
          },
          "purposes": {
            "minimum": 1.0,
            "title": "Purposes",
            "type": "integer"
          },
          "sample_manifest": {
            "$ref": "#/components/schemas/ExportManifest"
          },
          "sample_refusals": {
            "items": {
              "$ref": "#/components/schemas/ExportRefusal"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Sample Refusals",
            "type": "array"
          },
          "sample_validation": {
            "$ref": "#/components/schemas/ValidationResult"
          },
          "schema_version": {
            "const": "7.14.0",
            "default": "7.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tamper_probes": {
            "items": {
              "$ref": "#/components/schemas/TamperProbe"
            },
            "maxItems": 40,
            "minItems": 5,
            "title": "Tamper Probes",
            "type": "array"
          },
          "two_tenants_never_mix": {
            "title": "Two Tenants Never Mix",
            "type": "boolean"
          }
        },
        "required": [
          "generated_at",
          "purposes",
          "minimisation_cells",
          "minimisation_probes",
          "injection_probes",
          "tamper_probes",
          "every_tamper_detected",
          "every_validation_finding_reached",
          "deterministic_across_rebuilds",
          "two_tenants_never_mix",
          "large_export_splits_into_parts",
          "expiry_refuses_a_stale_export",
          "sample_manifest",
          "sample_validation",
          "sample_refusals"
        ],
        "title": "ReviewEvidenceExportReport",
        "type": "object"
      },
      "ReviewGateResult": {
        "additionalProperties": false,
        "properties": {
          "gate": {
            "enum": [
              "answer_key_verification",
              "grounding",
              "readability",
              "accessibility_completeness",
              "dif_analysis",
              "rights_clearance",
              "publication_render"
            ],
            "title": "Gate",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "integer"
          }
        },
        "required": ["gate", "score", "revision_sha256"],
        "title": "ReviewGateResult",
        "type": "object"
      },
      "ReviewQueue": {
        "additionalProperties": false,
        "description": "The runs this viewer may look at, and what was withheld.",
        "properties": {
          "authority": {
            "enum": ["analyst", "psychometrician", "fairness_reviewer"],
            "title": "Authority",
            "type": "string"
          },
          "entries": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/QueueEntry"
            },
            "maxItems": 500,
            "title": "Entries",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "9.6.0",
            "default": "9.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "withheld": {
            "default": 0,
            "minimum": 0.0,
            "title": "Withheld",
            "type": "integer"
          }
        },
        "required": ["total", "authority", "generated_at"],
        "title": "ReviewQueue",
        "type": "object"
      },
      "ReviewQueueDetailResponse": {
        "properties": {
          "artifact_kind": {
            "title": "Artifact Kind",
            "type": "string"
          },
          "avatar_workflow": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AvatarTeacherWorkflowResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "context": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueFactResponse"
            },
            "title": "Context",
            "type": "array"
          },
          "correction_impact": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReviewCorrectionImpactResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "due_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due At"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueFactResponse"
            },
            "title": "Evidence",
            "type": "array"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/ReviewDecisionRecordResponse"
            },
            "title": "History",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "owner_id": {
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "title": "Owner Name",
            "type": "string"
          },
          "queue_label": {
            "title": "Queue Label",
            "type": "string"
          },
          "queue_type": {
            "enum": [
              "source_bundle",
              "grounded_build",
              "publication_package",
              "tutor_persona",
              "prompt_change",
              "model_routing_policy_change",
              "avatar_teacher_profile",
              "voice_pack",
              "likeness_consent_record"
            ],
            "title": "Queue Type",
            "type": "string"
          },
          "review_focus": {
            "items": {
              "type": "string"
            },
            "title": "Review Focus",
            "type": "array"
          },
          "review_gates": {
            "items": {
              "$ref": "#/components/schemas/HumanReviewGateResponse"
            },
            "title": "Review Gates",
            "type": "array"
          },
          "risk_level": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Risk Level",
            "type": "string"
          },
          "runtime_rollout": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RuntimeRolloutDecisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "enum": ["pending", "approved", "changes_requested", "rejected"],
            "title": "Status",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "target_href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Href"
          },
          "target_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Label"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "queue_type",
          "queue_label",
          "title",
          "artifact_kind",
          "subject_id",
          "owner_id",
          "owner_name",
          "status",
          "risk_level",
          "summary",
          "submitted_at",
          "updated_at"
        ],
        "title": "ReviewQueueDetailResponse",
        "type": "object"
      },
      "ReviewQueueFactResponse": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "ReviewQueueFactResponse",
        "type": "object"
      },
      "ReviewQueueItemResponse": {
        "properties": {
          "artifact_kind": {
            "title": "Artifact Kind",
            "type": "string"
          },
          "avatar_workflow": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AvatarTeacherWorkflowResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "course_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "course_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Title"
          },
          "due_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "owner_id": {
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "title": "Owner Name",
            "type": "string"
          },
          "queue_label": {
            "title": "Queue Label",
            "type": "string"
          },
          "queue_type": {
            "enum": [
              "source_bundle",
              "grounded_build",
              "publication_package",
              "tutor_persona",
              "prompt_change",
              "model_routing_policy_change",
              "avatar_teacher_profile",
              "voice_pack",
              "likeness_consent_record"
            ],
            "title": "Queue Type",
            "type": "string"
          },
          "review_focus": {
            "items": {
              "type": "string"
            },
            "title": "Review Focus",
            "type": "array"
          },
          "review_gates": {
            "items": {
              "$ref": "#/components/schemas/HumanReviewGateResponse"
            },
            "title": "Review Gates",
            "type": "array"
          },
          "risk_level": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Risk Level",
            "type": "string"
          },
          "runtime_rollout": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RuntimeRolloutDecisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "enum": ["pending", "approved", "changes_requested", "rejected"],
            "title": "Status",
            "type": "string"
          },
          "subject_id": {
            "title": "Subject Id",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "target_href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Href"
          },
          "target_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Label"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "queue_type",
          "queue_label",
          "title",
          "artifact_kind",
          "subject_id",
          "owner_id",
          "owner_name",
          "status",
          "risk_level",
          "summary",
          "submitted_at",
          "updated_at"
        ],
        "title": "ReviewQueueItemResponse",
        "type": "object"
      },
      "ReviewQueueMetricResponse": {
        "properties": {
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "tone": {
            "default": "neutral",
            "enum": ["neutral", "positive", "warning", "critical"],
            "title": "Tone",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "ReviewQueueMetricResponse",
        "type": "object"
      },
      "ReviewQueueOverviewResponse": {
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "queues": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueSummaryRowResponse"
            },
            "title": "Queues",
            "type": "array"
          }
        },
        "required": ["generated_at"],
        "title": "ReviewQueueOverviewResponse",
        "type": "object"
      },
      "ReviewQueueSummaryRowResponse": {
        "properties": {
          "approved": {
            "minimum": 0.0,
            "title": "Approved",
            "type": "integer"
          },
          "changes_requested": {
            "minimum": 0.0,
            "title": "Changes Requested",
            "type": "integer"
          },
          "high_risk": {
            "minimum": 0.0,
            "title": "High Risk",
            "type": "integer"
          },
          "oldest_submitted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Oldest Submitted At"
          },
          "pending": {
            "minimum": 0.0,
            "title": "Pending",
            "type": "integer"
          },
          "queue_label": {
            "title": "Queue Label",
            "type": "string"
          },
          "queue_type": {
            "enum": [
              "source_bundle",
              "grounded_build",
              "publication_package",
              "tutor_persona",
              "prompt_change",
              "model_routing_policy_change",
              "avatar_teacher_profile",
              "voice_pack",
              "likeness_consent_record"
            ],
            "title": "Queue Type",
            "type": "string"
          },
          "rejected": {
            "minimum": 0.0,
            "title": "Rejected",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "queue_type",
          "queue_label",
          "pending",
          "approved",
          "changes_requested",
          "rejected",
          "high_risk",
          "total"
        ],
        "title": "ReviewQueueSummaryRowResponse",
        "type": "object"
      },
      "ReviewQuorumRule": {
        "additionalProperties": false,
        "properties": {
          "assignment_due_days": {
            "maximum": 90.0,
            "minimum": 1.0,
            "title": "Assignment Due Days",
            "type": "integer"
          },
          "decision_valid_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Decision Valid Days",
            "type": "integer"
          },
          "independence_required": {
            "title": "Independence Required",
            "type": "boolean"
          },
          "minimum_reviewers": {
            "maximum": 4.0,
            "minimum": 1.0,
            "title": "Minimum Reviewers",
            "type": "integer"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "substitute_due_days": {
            "maximum": 90.0,
            "minimum": 1.0,
            "title": "Substitute Due Days",
            "type": "integer"
          }
        },
        "required": [
          "risk",
          "minimum_reviewers",
          "decision_valid_days",
          "assignment_due_days",
          "substitute_due_days",
          "independence_required"
        ],
        "title": "ReviewQuorumRule",
        "type": "object"
      },
      "ReviewRequest": {
        "additionalProperties": false,
        "description": "A person's decision about one exact proposal.\n\n``saw_proposal_sha256`` is required and checked. A decision about a proposal\nthat has changed since the reviewer read it is a decision about something\nelse.",
        "properties": {
          "decision": {
            "enum": ["accept", "edit_and_accept", "reject", "defer"],
            "title": "Decision",
            "type": "string"
          },
          "edited_fields": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ContentField"
            },
            "maxItems": 40,
            "title": "Edited Fields",
            "type": "array"
          },
          "proposal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "saw_proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Saw Proposal Sha256",
            "type": "string"
          }
        },
        "required": ["proposal_id", "saw_proposal_sha256", "decision", "rationale"],
        "title": "ReviewRequest",
        "type": "object"
      },
      "ReviewRequirementQuorum": {
        "additionalProperties": false,
        "properties": {
          "approved_reviewer_ids": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Approved Reviewer Ids",
            "type": "array"
          },
          "community_context_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Community Context Id"
          },
          "dimension": {
            "enum": ["cultural", "regional", "language"],
            "title": "Dimension",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "missing_reviewers": {
            "minimum": 0.0,
            "title": "Missing Reviewers",
            "type": "integer"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "region": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region"
          },
          "required_reviewers": {
            "minimum": 1.0,
            "title": "Required Reviewers",
            "type": "integer"
          },
          "requirement_id": {
            "title": "Requirement Id",
            "type": "string"
          },
          "state": {
            "enum": ["approved", "pending", "blocked", "expired", "conflicted"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "requirement_id",
          "dimension",
          "locale",
          "region",
          "community_context_id",
          "required_reviewers",
          "approved_reviewer_ids",
          "missing_reviewers",
          "state",
          "reason_codes"
        ],
        "title": "ReviewRequirementQuorum",
        "type": "object"
      },
      "ReviewSlaReport": {
        "additionalProperties": false,
        "properties": {
          "assignment_is_fair_and_explained": {
            "title": "Assignment Is Fair And Explained",
            "type": "boolean"
          },
          "business_time_skips_closed_hours": {
            "title": "Business Time Skips Closed Hours",
            "type": "boolean"
          },
          "counts_suppress_small_cells": {
            "title": "Counts Suppress Small Cells",
            "type": "boolean"
          },
          "deadline_probes": {
            "items": {
              "$ref": "#/components/schemas/DeadlineProbe"
            },
            "maxItems": 40,
            "minItems": 3,
            "title": "Deadline Probes",
            "type": "array"
          },
          "every_assignment_refusal_reached": {
            "title": "Every Assignment Refusal Reached",
            "type": "boolean"
          },
          "every_breach_state_reached": {
            "title": "Every Breach State Reached",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "notifications_are_idempotent": {
            "title": "Notifications Are Idempotent",
            "type": "boolean"
          },
          "pauses_do_not_count_against_a_reviewer": {
            "title": "Pauses Do Not Count Against A Reviewer",
            "type": "boolean"
          },
          "priority_cells": {
            "minimum": 1.0,
            "title": "Priority Cells",
            "type": "integer"
          },
          "queue_views": {
            "items": {
              "$ref": "#/components/schemas/QueueView"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Queue Views",
            "type": "array"
          },
          "quiet_hours_hold_across_dst": {
            "title": "Quiet Hours Hold Across Dst",
            "type": "boolean"
          },
          "quiet_hours_probes": {
            "items": {
              "$ref": "#/components/schemas/QuietHoursProbe"
            },
            "maxItems": 40,
            "minItems": 4,
            "title": "Quiet Hours Probes",
            "type": "array"
          },
          "sample_notifications": {
            "items": {
              "$ref": "#/components/schemas/Notification"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Sample Notifications",
            "type": "array"
          },
          "sample_status": {
            "$ref": "#/components/schemas/SlaStatus"
          },
          "schema_version": {
            "const": "7.12.0",
            "default": "7.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "titles_never_reach_a_summary_reader": {
            "title": "Titles Never Reach A Summary Reader",
            "type": "boolean"
          },
          "urgent_events_are_never_suppressed": {
            "title": "Urgent Events Are Never Suppressed",
            "type": "boolean"
          },
          "workload": {
            "items": {
              "$ref": "#/components/schemas/WorkloadRow"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Workload",
            "type": "array"
          }
        },
        "required": [
          "generated_at",
          "priority_cells",
          "deadline_probes",
          "business_time_skips_closed_hours",
          "pauses_do_not_count_against_a_reviewer",
          "every_breach_state_reached",
          "workload",
          "counts_suppress_small_cells",
          "assignment_is_fair_and_explained",
          "every_assignment_refusal_reached",
          "queue_views",
          "titles_never_reach_a_summary_reader",
          "quiet_hours_probes",
          "quiet_hours_hold_across_dst",
          "urgent_events_are_never_suppressed",
          "notifications_are_idempotent",
          "sample_notifications",
          "sample_status"
        ],
        "title": "ReviewSlaReport",
        "type": "object"
      },
      "ReviewStatus": {
        "additionalProperties": false,
        "properties": {
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "content_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Content Id",
            "type": "string"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/DimensionStatus"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Dimensions",
            "type": "array"
          },
          "institution_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Id"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          }
        },
        "required": [
          "content_id",
          "revision_sha256",
          "template_id",
          "template_version",
          "dimensions",
          "complete"
        ],
        "title": "ReviewStatus",
        "type": "object"
      },
      "ReviewSubject": {
        "additionalProperties": false,
        "description": "What is being reviewed, at which revision.",
        "properties": {
          "revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision",
            "type": "string"
          },
          "state": {
            "enum": ["draft", "in_review", "decided", "escalated", "withdrawn"],
            "title": "State",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["item", "lesson", "media", "rubric"],
            "title": "Subject Kind",
            "type": "string"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["subject_id", "subject_kind", "revision", "state", "title"],
        "title": "ReviewSubject",
        "type": "object"
      },
      "ReviewSubjectIntake": {
        "description": "A subject and its unprojected payload, on its way into the store.\n\nThis is the authoring side of the boundary. Everything after it reads the\npayload out of the row and projects before answering, which is what makes\nthe projection something other than the client hiding its own data.",
        "properties": {
          "fields": {
            "additionalProperties": true,
            "title": "Fields",
            "type": "object"
          },
          "subject": {
            "$ref": "#/components/schemas/ReviewSubject"
          }
        },
        "required": ["subject"],
        "title": "ReviewSubjectIntake",
        "type": "object"
      },
      "ReviewTask": {
        "additionalProperties": false,
        "description": "One thing somebody has to review, and everything its clock depends on.",
        "properties": {
          "assignee_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assignee Digest"
          },
          "assignee_locale": {
            "default": "en",
            "maxLength": 35,
            "minLength": 2,
            "title": "Assignee Locale",
            "type": "string"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "opened_at": {
            "format": "date-time",
            "title": "Opened At",
            "type": "string"
          },
          "pauses": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SlaPause"
            },
            "maxItems": 20,
            "title": "Pauses",
            "type": "array"
          },
          "required_qualification": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Required Qualification"
          },
          "review_type": {
            "enum": ["integrity", "content", "accessibility", "rights", "credential", "conflict"],
            "title": "Review Type",
            "type": "string"
          },
          "risk": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "schema_version": {
            "const": "7.12.0",
            "default": "7.12.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": ["current", "stale", "blocked", "done"],
            "title": "State",
            "type": "string"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "title": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["task_id", "tenant_id", "review_type", "risk", "opened_at", "state", "title"],
        "title": "ReviewTask",
        "type": "object"
      },
      "ReviewVisibilityView": {
        "additionalProperties": false,
        "description": "What a pair may and may not see, before anything is fetched.",
        "properties": {
          "may_decide": {
            "title": "May Decide",
            "type": "boolean"
          },
          "purpose": {
            "enum": ["content", "accessibility", "integrity", "psychometrics", "learner_support"],
            "title": "Purpose",
            "type": "string"
          },
          "role": {
            "enum": [
              "author",
              "editor",
              "subject_expert",
              "accessibility_specialist",
              "integrity_officer",
              "learner_support"
            ],
            "title": "Role",
            "type": "string"
          },
          "visible": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Visible",
            "type": "array"
          },
          "withheld": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": ["role", "purpose", "may_decide"],
        "title": "ReviewVisibilityView",
        "type": "object"
      },
      "Reviewer": {
        "additionalProperties": false,
        "properties": {
          "capacity": {
            "maximum": 200.0,
            "minimum": 0.0,
            "title": "Capacity",
            "type": "integer"
          },
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Institution Id",
            "type": "string"
          },
          "locales": {
            "default": ["en"],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Locales",
            "type": "array"
          },
          "qualifications": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "title": "Qualifications",
            "type": "array"
          },
          "role": {
            "enum": ["reviewer", "review_lead", "integrity_lead", "institution_admin"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["digest", "role", "institution_id", "capacity"],
        "title": "Reviewer",
        "type": "object"
      },
      "ReviewerCapabilityEnvelope": {
        "additionalProperties": false,
        "description": "Private matching inputs; no demographic or other protected attributes are accepted.",
        "properties": {
          "available": {
            "default": true,
            "title": "Available",
            "type": "boolean"
          },
          "community_context_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Community Context Ids",
            "type": "array"
          },
          "discipline_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Discipline Ids",
            "type": "array"
          },
          "independence": {
            "$ref": "#/components/schemas/ReviewerIndependenceAttestation"
          },
          "locale_capability_codes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Locale Capability Codes",
            "type": "array"
          },
          "qualification_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Qualification Ids",
            "type": "array"
          },
          "regional_context_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Regional Context Ids",
            "type": "array"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          }
        },
        "required": ["reviewer_id", "qualification_ids", "independence"],
        "title": "ReviewerCapabilityEnvelope",
        "type": "object"
      },
      "ReviewerConflictDeclaration": {
        "additionalProperties": false,
        "description": "One conflict, as declared by a reviewer or raised by a detector.\n\nA nil return is a declaration too: `nothing_to_declare` with no conflict\ntype. That is the difference between a reviewer who checked and a reviewer\nnobody asked.",
        "properties": {
          "arose_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Arose At"
          },
          "basis": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Basis",
            "type": "string"
          },
          "certainty": {
            "enum": ["certain", "unsure"],
            "title": "Certainty",
            "type": "string"
          },
          "confidentiality": {
            "enum": ["coordinator_only", "review_panel", "institution"],
            "title": "Confidentiality",
            "type": "string"
          },
          "conflict_type": {
            "anyOf": [
              {
                "enum": [
                  "financial_interest",
                  "employment",
                  "authorship",
                  "close_personal",
                  "institutional",
                  "competing_product",
                  "prior_involvement",
                  "supervisory"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Conflict Type"
          },
          "declaration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Declaration Id",
            "type": "string"
          },
          "declared_at": {
            "format": "date-time",
            "title": "Declared At",
            "type": "string"
          },
          "detection": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DetectionSignal"
              },
              {
                "type": "null"
              }
            ]
          },
          "ends_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ends At"
          },
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ConflictEvidenceRef"
            },
            "maxItems": 20,
            "title": "Evidence",
            "type": "array"
          },
          "nothing_to_declare": {
            "default": false,
            "title": "Nothing To Declare",
            "type": "boolean"
          },
          "origin": {
            "enum": ["self_declared", "detected_signal"],
            "title": "Origin",
            "type": "string"
          },
          "relationship": {
            "anyOf": [
              {
                "enum": [
                  "self",
                  "immediate_family",
                  "household",
                  "employer",
                  "former_employer",
                  "advisee",
                  "collaborator"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Relationship"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "reviewed_by_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed By Digest"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "schema_version": {
            "const": "7.8.0",
            "default": "7.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "status": {
            "enum": [
              "declared",
              "under_review",
              "accepted",
              "mitigated",
              "dismissed",
              "withdrawn",
              "expired"
            ],
            "title": "Status",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/ConflictSubject"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "declaration_id",
          "tenant_id",
          "reviewer_digest",
          "subject",
          "origin",
          "certainty",
          "confidentiality",
          "basis",
          "declared_at",
          "status"
        ],
        "title": "ReviewerConflictDeclaration",
        "type": "object"
      },
      "ReviewerConflictReport": {
        "additionalProperties": false,
        "properties": {
          "detail_never_reaches_an_author": {
            "title": "Detail Never Reaches An Author",
            "type": "boolean"
          },
          "enforcement_probes": {
            "items": {
              "$ref": "#/components/schemas/EnforcementProbe"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Enforcement Probes",
            "type": "array"
          },
          "every_disposition_reachable": {
            "title": "Every Disposition Reachable",
            "type": "boolean"
          },
          "every_refusal_reason_reached": {
            "title": "Every Refusal Reason Reached",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "overlay_only_tightens": {
            "title": "Overlay Only Tightens",
            "type": "boolean"
          },
          "overlay_trials": {
            "minimum": 1.0,
            "title": "Overlay Trials",
            "type": "integer"
          },
          "policy_cells": {
            "items": {
              "$ref": "#/components/schemas/PolicyCell"
            },
            "maxItems": 48,
            "minItems": 48,
            "title": "Policy Cells",
            "type": "array"
          },
          "quorum_excludes_the_conflicted": {
            "title": "Quorum Excludes The Conflicted",
            "type": "boolean"
          },
          "risk_only_tightens": {
            "title": "Risk Only Tightens",
            "type": "boolean"
          },
          "sample_access_entry": {
            "$ref": "#/components/schemas/ConflictAccessEntry"
          },
          "sample_reassignment": {
            "$ref": "#/components/schemas/ReassignmentRecord"
          },
          "sample_referral": {
            "$ref": "#/components/schemas/UnsureReferral"
          },
          "sample_retention": {
            "items": {
              "$ref": "#/components/schemas/RetentionVerdict"
            },
            "maxItems": 6,
            "minItems": 2,
            "title": "Sample Retention",
            "type": "array"
          },
          "sample_view": {
            "$ref": "#/components/schemas/ConflictView"
          },
          "schema_version": {
            "const": "7.8.0",
            "default": "7.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "visibility_probes": {
            "items": {
              "$ref": "#/components/schemas/ConflictVisibilityProbe"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Visibility Probes",
            "type": "array"
          }
        },
        "required": [
          "generated_at",
          "policy_cells",
          "every_disposition_reachable",
          "risk_only_tightens",
          "overlay_only_tightens",
          "overlay_trials",
          "enforcement_probes",
          "every_refusal_reason_reached",
          "quorum_excludes_the_conflicted",
          "visibility_probes",
          "detail_never_reaches_an_author",
          "sample_view",
          "sample_access_entry",
          "sample_retention",
          "sample_referral",
          "sample_reassignment"
        ],
        "title": "ReviewerConflictReport",
        "type": "object"
      },
      "ReviewerEligibility": {
        "additionalProperties": false,
        "description": "Privacy-reduced candidate result: capability values never leave the matcher.",
        "properties": {
          "active_assignment_count": {
            "minimum": 0.0,
            "title": "Active Assignment Count",
            "type": "integer"
          },
          "eligible_requirement_ids": {
            "items": {
              "type": "string"
            },
            "title": "Eligible Requirement Ids",
            "type": "array"
          },
          "ineligible_reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Ineligible Reason Codes",
            "type": "array"
          },
          "reviewer_id": {
            "format": "uuid",
            "title": "Reviewer Id",
            "type": "string"
          },
          "selection_rank": {
            "minimum": 1.0,
            "title": "Selection Rank",
            "type": "integer"
          }
        },
        "required": [
          "reviewer_id",
          "eligible_requirement_ids",
          "ineligible_reason_codes",
          "active_assignment_count",
          "selection_rank"
        ],
        "title": "ReviewerEligibility",
        "type": "object"
      },
      "ReviewerIndependenceAttestation": {
        "additionalProperties": false,
        "properties": {
          "attested_at": {
            "format": "date-time",
            "title": "Attested At",
            "type": "string"
          },
          "financial_conflict": {
            "title": "Financial Conflict",
            "type": "boolean"
          },
          "institutional_conflict": {
            "title": "Institutional Conflict",
            "type": "boolean"
          },
          "is_author": {
            "title": "Is Author",
            "type": "boolean"
          },
          "personal_conflict": {
            "title": "Personal Conflict",
            "type": "boolean"
          },
          "target_id": {
            "maxLength": 180,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": [
          "target_id",
          "is_author",
          "financial_conflict",
          "institutional_conflict",
          "personal_conflict",
          "attested_at"
        ],
        "title": "ReviewerIndependenceAttestation",
        "type": "object"
      },
      "ReviewerProfile": {
        "additionalProperties": false,
        "properties": {
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "locales": {
            "default": [],
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 40,
            "title": "Locales",
            "type": "array"
          },
          "qualification_ids": {
            "default": [],
            "items": {
              "pattern": "^qual:[a-z0-9._-]{2,80}$",
              "type": "string"
            },
            "maxItems": 40,
            "title": "Qualification Ids",
            "type": "array"
          },
          "roles": {
            "items": {
              "enum": [
                "subject_expert",
                "instructional_designer",
                "accessibility_specialist",
                "cultural_reviewer",
                "rights_counsel",
                "publisher_editor",
                "institution_reviewer"
              ],
              "type": "string"
            },
            "maxItems": 7,
            "minItems": 1,
            "title": "Roles",
            "type": "array"
          }
        },
        "required": ["digest", "roles"],
        "title": "ReviewerProfile",
        "type": "object"
      },
      "RevisionDelta": {
        "additionalProperties": false,
        "description": "What the new revision of a subject looks like, as far as anchors care.\n\nThe engine reads this and nothing else, so a resolution is a function of the\ndelta rather than of whatever the caller believed about the change.",
        "properties": {
          "asset_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "title": "Asset Sha256S",
            "type": "array"
          },
          "from_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "From Revision Sha256",
            "type": "string"
          },
          "option_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Option Ids",
            "type": "array"
          },
          "paths_present": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Paths Present",
            "type": "array"
          },
          "renamed_paths": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Renamed Paths",
            "type": "object"
          },
          "rubric_cells": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Rubric Cells",
            "type": "array"
          },
          "rubric_criteria": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Rubric Criteria",
            "type": "array"
          },
          "subject_present": {
            "default": true,
            "title": "Subject Present",
            "type": "boolean"
          },
          "text_by_path": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Text By Path",
            "type": "object"
          },
          "to_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "To Revision Sha256",
            "type": "string"
          }
        },
        "required": ["from_revision_sha256", "to_revision_sha256"],
        "title": "RevisionDelta",
        "type": "object"
      },
      "RevisionDifference": {
        "additionalProperties": false,
        "properties": {
          "after_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "After Revision Sha256"
          },
          "before_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Before Revision Sha256"
          },
          "change": {
            "enum": ["added", "removed", "replaced", "unchanged"],
            "title": "Change",
            "type": "string"
          },
          "kind": {
            "enum": [
              "persona",
              "pedagogy",
              "hint_policy",
              "system_prompt",
              "tool",
              "source",
              "course",
              "item"
            ],
            "title": "Kind",
            "type": "string"
          },
          "material_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Material Id",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "material_id",
          "before_revision_sha256",
          "after_revision_sha256",
          "change"
        ],
        "title": "RevisionDifference",
        "type": "object"
      },
      "RevisionMark": {
        "additionalProperties": false,
        "description": "One revision of the subject, enough to choose between them.",
        "properties": {
          "actor": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Actor"
          },
          "actor_withheld": {
            "default": false,
            "title": "Actor Withheld",
            "type": "boolean"
          },
          "aggregate_state": {
            "anyOf": [
              {
                "enum": ["draft", "in_review", "approved", "published", "withdrawn"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aggregate State"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          }
        },
        "required": ["revision", "recorded_at"],
        "title": "RevisionMark",
        "type": "object"
      },
      "RightsGrant": {
        "additionalProperties": false,
        "description": "One holder's grant, stating each purpose separately.\n\nA single `permitted: bool` would let an evaluation licence be read as a\ntraining licence. The purposes are named individually because they are\ndifferent permissions.",
        "properties": {
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "granted_at": {
            "format": "date-time",
            "title": "Granted At",
            "type": "string"
          },
          "granted_purposes": {
            "items": {
              "enum": ["model_training", "model_evaluation", "quality_monitoring"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Granted Purposes",
            "type": "array"
          },
          "holder": {
            "enum": ["creator", "learner", "institution"],
            "title": "Holder",
            "type": "string"
          },
          "licence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Licence Id",
            "type": "string"
          }
        },
        "required": ["holder", "licence_id", "granted_purposes", "granted_at"],
        "title": "RightsGrant",
        "type": "object"
      },
      "RoleMatrixRow": {
        "additionalProperties": false,
        "properties": {
          "criteria": {
            "minimum": 2.0,
            "title": "Criteria",
            "type": "integer"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "quorum_high_stakes": {
            "minimum": 1.0,
            "title": "Quorum High Stakes",
            "type": "integer"
          },
          "quorum_standard": {
            "minimum": 1.0,
            "title": "Quorum Standard",
            "type": "integer"
          },
          "roles": {
            "items": {
              "enum": [
                "subject_expert",
                "instructional_designer",
                "accessibility_specialist",
                "cultural_reviewer",
                "rights_counsel",
                "publisher_editor",
                "institution_reviewer"
              ],
              "type": "string"
            },
            "title": "Roles",
            "type": "array"
          }
        },
        "required": ["dimension", "roles", "criteria", "quorum_standard", "quorum_high_stakes"],
        "title": "RoleMatrixRow",
        "type": "object"
      },
      "RollbackRequest": {
        "additionalProperties": false,
        "properties": {
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "history": {
            "$ref": "#/components/schemas/OverlayHistory"
          },
          "new_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "New Version",
            "type": "string"
          },
          "to_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "To Version",
            "type": "string"
          }
        },
        "required": ["history", "to_version", "new_version", "effective_from"],
        "title": "RollbackRequest",
        "type": "object"
      },
      "RolloutRecommendation": {
        "additionalProperties": false,
        "description": "What the analysis suggests. Nothing here promotes anything.\n\nThere is no field naming a variant to roll out, and ``automatic_rollout`` is\na ``Literal[False]``: acting on an experiment is a person's decision, taken\nsomewhere else and recorded there.",
        "properties": {
          "automatic_rollout": {
            "const": false,
            "default": false,
            "title": "Automatic Rollout",
            "type": "boolean"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 10,
            "title": "Rationale",
            "type": "string"
          },
          "recommendation": {
            "enum": ["consider_rollout", "keep_control", "inconclusive", "stop_and_review"],
            "title": "Recommendation",
            "type": "string"
          },
          "requires_human_decision": {
            "const": true,
            "default": true,
            "title": "Requires Human Decision",
            "type": "boolean"
          }
        },
        "required": ["recommendation", "rationale"],
        "title": "RolloutRecommendation",
        "type": "object"
      },
      "RoundTrip": {
        "additionalProperties": false,
        "description": "code -> canonical -> code, and whether it came back the same.",
        "properties": {
          "canonical": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canonical"
          },
          "code": {
            "title": "Code",
            "type": "string"
          },
          "lossless": {
            "title": "Lossless",
            "type": "boolean"
          },
          "lost": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Lost",
            "type": "array"
          },
          "returned": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Returned"
          },
          "vocabulary_id": {
            "enum": [
              "assessment.integrity_mode",
              "interlock.mode",
              "tutor_grounding.assessment_mode",
              "tutor_preview.assessment_mode",
              "tutor_binding.integrity_mode",
              "tutoring.integrity_mode",
              "learner.tutor_style"
            ],
            "title": "Vocabulary Id",
            "type": "string"
          }
        },
        "required": ["vocabulary_id", "code", "canonical", "returned", "lossless"],
        "title": "RoundTrip",
        "type": "object"
      },
      "RouteIntegrityReport": {
        "additionalProperties": false,
        "description": "What the gate found, and how much it looked at.",
        "properties": {
          "conflicts": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "entries_examined": {
            "minimum": 0.0,
            "title": "Entries Examined",
            "type": "integer"
          },
          "passed": {
            "description": "Serialised, not just available in Python.\n\nA caller that had to recompute the verdict from four lists would\neventually recompute it differently, and then the gate and the screen\nwould disagree about whether the palette is sound.",
            "readOnly": true,
            "title": "Passed",
            "type": "boolean"
          },
          "routes_examined": {
            "minimum": 0.0,
            "title": "Routes Examined",
            "type": "integer"
          },
          "stale": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Stale",
            "type": "array"
          },
          "unoffered": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unoffered",
            "type": "array"
          },
          "unreachable": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unreachable",
            "type": "array"
          },
          "unresolved": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unresolved",
            "type": "array"
          },
          "untranslated": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Untranslated",
            "type": "array"
          }
        },
        "required": ["routes_examined", "entries_examined", "passed"],
        "title": "RouteIntegrityReport",
        "type": "object"
      },
      "RubricCellAnchor": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "kind": {
            "const": "rubric_cell",
            "default": "rubric_cell",
            "title": "Kind",
            "type": "string"
          },
          "level_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Level Id",
            "type": "string"
          }
        },
        "required": ["criterion_id", "level_id"],
        "title": "RubricCellAnchor",
        "type": "object"
      },
      "RubricCriterion": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "label": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "ordered_labels": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Ordered Labels",
            "type": "array"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["criterion_id", "label", "ordered_labels", "weight_basis_points"],
        "title": "RubricCriterion",
        "type": "object"
      },
      "RubricDependentApproval": {
        "additionalProperties": false,
        "properties": {
          "approval_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Approval Id",
            "type": "string"
          },
          "approval_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Approval Revision Sha256",
            "type": "string"
          },
          "approved_rubric_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Approved Rubric Revision Sha256",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "state": {
            "enum": ["approved", "invalidated", "revoked"],
            "title": "State",
            "type": "string"
          },
          "target_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "enum": ["item", "assessment"],
            "title": "Target Kind",
            "type": "string"
          }
        },
        "required": [
          "target_kind",
          "target_id",
          "approval_id",
          "approval_revision_sha256",
          "approved_rubric_revision_sha256",
          "state",
          "evidence_ref"
        ],
        "title": "RubricDependentApproval",
        "type": "object"
      },
      "RubricDescriptorPairAssessment": {
        "additionalProperties": false,
        "properties": {
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "direction": {
            "enum": ["agrees", "disagrees", "unsupported", "manual_review"],
            "title": "Direction",
            "type": "string"
          },
          "distinctness": {
            "enum": ["distinct", "subsumed", "contradictory", "unsupported", "manual_review"],
            "title": "Distinctness",
            "type": "string"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "lower_level_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Lower Level Id",
            "type": "string"
          },
          "observability": {
            "enum": ["observable", "nonobservable", "unsupported", "manual_review"],
            "title": "Observability",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          },
          "upper_level_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Upper Level Id",
            "type": "string"
          }
        },
        "required": [
          "criterion_id",
          "lower_level_id",
          "upper_level_id",
          "distinctness",
          "observability",
          "direction",
          "evidence",
          "uncertainty"
        ],
        "title": "RubricDescriptorPairAssessment",
        "type": "object"
      },
      "RubricQualityAnchor": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "title": "Criterion Id",
            "type": "string"
          },
          "descriptor_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 2,
            "title": "Descriptor Sha256S",
            "type": "array"
          },
          "level_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 2,
            "title": "Level Ids",
            "type": "array"
          }
        },
        "required": ["criterion_id", "level_ids", "descriptor_sha256s"],
        "title": "RubricQualityAnchor",
        "type": "object"
      },
      "RubricQualityAssessment": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "pattern": "^rubric-quality-assessment:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "attribution": {
            "$ref": "#/components/schemas/RubricQualityAttribution"
          },
          "descriptor_pairs": {
            "items": {
              "$ref": "#/components/schemas/RubricDescriptorPairAssessment"
            },
            "maxItems": 10000,
            "title": "Descriptor Pairs",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "expected_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Sha256",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          }
        },
        "required": [
          "assessment_id",
          "expected_source_sha256",
          "attribution",
          "descriptor_pairs",
          "evidence",
          "limitations"
        ],
        "title": "RubricQualityAssessment",
        "type": "object"
      },
      "RubricQualityAttribution": {
        "additionalProperties": false,
        "properties": {
          "assist_kind": {
            "enum": ["human_assist", "model"],
            "title": "Assist Kind",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "method_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Method Id",
            "type": "string"
          },
          "method_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Method Sha256",
            "type": "string"
          },
          "method_version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method Version",
            "type": "string"
          },
          "model_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Id"
          },
          "model_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Sha256"
          },
          "model_version": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "provider_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Provider Id",
            "type": "string"
          }
        },
        "required": [
          "assist_kind",
          "provider_id",
          "method_id",
          "method_version",
          "method_sha256",
          "config_sha256"
        ],
        "title": "RubricQualityAttribution",
        "type": "object"
      },
      "RubricQualityCriterion": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "evidence_requirement_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Evidence Requirement Ids",
            "type": "array"
          },
          "item_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Item Ids",
            "type": "array"
          },
          "levels": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityLevel"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Levels",
            "type": "array"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Objective Ids",
            "type": "array"
          },
          "order": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "performance_dimension_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Performance Dimension Ids",
            "type": "array"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 20000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "criterion_id",
          "order",
          "title",
          "description",
          "weight_basis_points",
          "objective_ids",
          "item_ids",
          "evidence_requirement_ids",
          "performance_dimension_ids",
          "levels"
        ],
        "title": "RubricQualityCriterion",
        "type": "object"
      },
      "RubricQualityCriterionDimensionBinding": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Criterion Id",
            "type": "string"
          },
          "performance_dimension_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Performance Dimension Ids",
            "type": "array"
          }
        },
        "required": ["criterion_id", "performance_dimension_ids"],
        "title": "RubricQualityCriterionDimensionBinding",
        "type": "object"
      },
      "RubricQualityDecision": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["confirm", "resolve", "dismiss"],
            "title": "Decision",
            "type": "string"
          },
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^rubric-quality-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["finding_id", "decision", "rationale"],
        "title": "RubricQualityDecision",
        "type": "object"
      },
      "RubricQualityFinding": {
        "additionalProperties": false,
        "properties": {
          "anchors": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityAnchor"
            },
            "maxItems": 10000,
            "title": "Anchors",
            "type": "array"
          },
          "attributed_to": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Attributed To",
            "type": "string"
          },
          "category": {
            "enum": [
              "criterion_weight_total_invalid",
              "item_weight_total_invalid",
              "level_point_total_invalid",
              "scoring_policy_invalid",
              "rounding_policy_invalid",
              "cap_floor_policy_invalid",
              "required_coverage_missing",
              "orphan_criterion",
              "duplicate_criterion_coverage",
              "level_code_order_invalid",
              "level_score_order_invalid",
              "level_range_invalid",
              "descriptor_identical",
              "descriptor_distinctness_not_established",
              "descriptor_observability_not_established",
              "descriptor_direction_not_established",
              "dependent_approval_not_current"
            ],
            "title": "Category",
            "type": "string"
          },
          "counterinterpretations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "title": "Counterinterpretations",
            "type": "array"
          },
          "evidence": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "finding_id": {
            "pattern": "^rubric-quality-finding:[a-f0-9]{40}$",
            "title": "Finding Id",
            "type": "string"
          },
          "origin": {
            "enum": ["deterministic", "semantic_assessment"],
            "title": "Origin",
            "type": "string"
          },
          "severity": {
            "enum": ["review", "block"],
            "title": "Severity",
            "type": "string"
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 8,
            "title": "Statement",
            "type": "string"
          },
          "uncertainty": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Uncertainty",
            "type": "array"
          }
        },
        "required": [
          "finding_id",
          "origin",
          "category",
          "severity",
          "anchors",
          "statement",
          "evidence",
          "uncertainty",
          "attributed_to"
        ],
        "title": "RubricQualityFinding",
        "type": "object"
      },
      "RubricQualityFreshness": {
        "additionalProperties": false,
        "properties": {
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "stale_reasons": {
            "items": {
              "enum": [
                "scan_missing",
                "review_missing",
                "gate_missing",
                "rubric_revision_changed",
                "scoring_changed",
                "weights_changed",
                "coverage_changed",
                "level_order_changed",
                "descriptors_changed",
                "dependent_approvals_changed",
                "scan_changed",
                "review_changed"
              ],
              "type": "string"
            },
            "title": "Stale Reasons",
            "type": "array"
          }
        },
        "required": ["review_required", "stale_reasons"],
        "title": "RubricQualityFreshness",
        "type": "object"
      },
      "RubricQualityGateContent": {
        "additionalProperties": false,
        "properties": {
          "blocking_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Blocking Reasons",
            "type": "array"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "invalidated_approval_ids": {
            "items": {
              "type": "string"
            },
            "title": "Invalidated Approval Ids",
            "type": "array"
          },
          "mutation_reasons": {
            "items": {
              "enum": [
                "rubric_revision_changed",
                "scoring_changed",
                "weights_changed",
                "coverage_changed",
                "level_order_changed",
                "descriptors_changed",
                "dependent_approvals_changed"
              ],
              "type": "string"
            },
            "title": "Mutation Reasons",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityFinding"
            },
            "title": "Raw Findings",
            "type": "array"
          },
          "release_allowed": {
            "title": "Release Allowed",
            "type": "boolean"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          },
          "review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Revision Sha256",
            "type": "string"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "blocked"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "scan_revision_sha256",
          "review_revision_sha256",
          "source_revision_sha256",
          "requested_action",
          "status",
          "release_allowed",
          "raw_findings",
          "decisions",
          "mutation_reasons",
          "invalidated_approval_ids",
          "blocking_reasons"
        ],
        "title": "RubricQualityGateContent",
        "type": "object"
      },
      "RubricQualityGateRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_gate_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision"
          },
          "expected_gate_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Gate Revision Sha256"
          },
          "expected_review_revision": {
            "minimum": 1.0,
            "title": "Expected Review Revision",
            "type": "integer"
          },
          "expected_review_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Review Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          },
          "requested_action": {
            "enum": ["evaluate", "publish"],
            "title": "Requested Action",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_review_revision",
          "expected_review_revision_sha256",
          "requested_action",
          "reason"
        ],
        "title": "RubricQualityGateRequest",
        "type": "object"
      },
      "RubricQualityGateResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/RubricQualityGateContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "gate_id": {
            "pattern": "^rubric-quality-gate-[a-f0-9]{40}$",
            "title": "Gate Id",
            "type": "string"
          },
          "lesson_id": {
            "format": "uuid",
            "title": "Lesson Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.6.0",
            "default": "5.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "gate_id",
          "tenant_id",
          "lesson_id",
          "rubric_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "RubricQualityGateResponse",
        "type": "object"
      },
      "RubricQualityHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "gates": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityGateResponse"
            },
            "title": "Gates",
            "type": "array"
          },
          "lesson_id": {
            "format": "uuid",
            "title": "Lesson Id",
            "type": "string"
          },
          "reviews": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityReviewResponse"
            },
            "title": "Reviews",
            "type": "array"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "scans": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityScanResponse"
            },
            "title": "Scans",
            "type": "array"
          },
          "schema_version": {
            "const": "5.6.0",
            "default": "5.6.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["lesson_id", "rubric_id", "scans", "reviews", "gates"],
        "title": "RubricQualityHistoryResponse",
        "type": "object"
      },
      "RubricQualityLevel": {
        "additionalProperties": false,
        "properties": {
          "descriptor": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Descriptor",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "level_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Level Id",
            "type": "string"
          },
          "maximum_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Maximum Points",
            "type": "integer"
          },
          "minimum_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Minimum Points",
            "type": "integer"
          },
          "order": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Points",
            "type": "integer"
          }
        },
        "required": [
          "level_id",
          "order",
          "label",
          "descriptor",
          "points",
          "minimum_points",
          "maximum_points"
        ],
        "title": "RubricQualityLevel",
        "type": "object"
      },
      "RubricQualityPolicy": {
        "additionalProperties": false,
        "properties": {
          "criterion_dimensions": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityCriterionDimensionBinding"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Criterion Dimensions",
            "type": "array"
          },
          "dependent_approvals": {
            "items": {
              "$ref": "#/components/schemas/RubricDependentApproval"
            },
            "maxItems": 10000,
            "title": "Dependent Approvals",
            "type": "array"
          },
          "expected_level_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 2,
            "title": "Expected Level Codes",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "policy_id": {
            "pattern": "^rubric-quality-policy:[a-z0-9][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "pattern": "^[1-9][0-9]*\\.[0-9]+\\.[0-9]+$",
            "title": "Policy Version",
            "type": "string"
          },
          "required_evidence_requirement_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Required Evidence Requirement Ids",
            "type": "array"
          },
          "required_objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Required Objective Ids",
            "type": "array"
          },
          "required_performance_dimension_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Required Performance Dimension Ids",
            "type": "array"
          },
          "score_cap": {
            "anyOf": [
              {
                "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Cap"
          },
          "score_floor": {
            "anyOf": [
              {
                "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Floor"
          }
        },
        "required": [
          "policy_id",
          "policy_version",
          "locale",
          "expected_level_codes",
          "required_objective_ids",
          "required_evidence_requirement_ids",
          "required_performance_dimension_ids",
          "criterion_dimensions",
          "dependent_approvals"
        ],
        "title": "RubricQualityPolicy",
        "type": "object"
      },
      "RubricQualityPreparationRequest": {
        "additionalProperties": false,
        "properties": {
          "quality_policy": {
            "$ref": "#/components/schemas/RubricQualityPolicy"
          },
          "rubric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          }
        },
        "required": ["rubric_id", "quality_policy"],
        "title": "RubricQualityPreparationRequest",
        "type": "object"
      },
      "RubricQualityPreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "current_gate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RubricQualityGateResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RubricQualityReviewResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "current_scan": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RubricQualityScanResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "freshness": {
            "$ref": "#/components/schemas/RubricQualityFreshness"
          },
          "schema_version": {
            "const": "5.6.0",
            "default": "5.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/RubricQualitySource"
          }
        },
        "required": ["source", "current_scan", "current_review", "current_gate", "freshness"],
        "title": "RubricQualityPreparationResponse",
        "type": "object"
      },
      "RubricQualityReviewContent": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "dismissed_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Dismissed Finding Ids",
            "type": "array"
          },
          "scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Revision Sha256",
            "type": "string"
          },
          "semantic_findings": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityFinding"
            },
            "title": "Semantic Findings",
            "type": "array"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "unresolved_semantic_finding_ids": {
            "items": {
              "type": "string"
            },
            "title": "Unresolved Semantic Finding Ids",
            "type": "array"
          }
        },
        "required": [
          "scan_revision_sha256",
          "source_revision_sha256",
          "semantic_findings",
          "decisions",
          "unresolved_semantic_finding_ids",
          "dismissed_finding_ids"
        ],
        "title": "RubricQualityReviewContent",
        "type": "object"
      },
      "RubricQualityReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityDecision"
            },
            "maxItems": 20000,
            "title": "Decisions",
            "type": "array"
          },
          "expected_review_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision"
          },
          "expected_review_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Review Revision Sha256"
          },
          "expected_scan_revision": {
            "minimum": 1.0,
            "title": "Expected Scan Revision",
            "type": "integer"
          },
          "expected_scan_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Scan Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_scan_revision",
          "expected_scan_revision_sha256",
          "decisions",
          "reason"
        ],
        "title": "RubricQualityReviewRequest",
        "type": "object"
      },
      "RubricQualityReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/RubricQualityReviewContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "lesson_id": {
            "format": "uuid",
            "title": "Lesson Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^rubric-quality-review-[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.6.0",
            "default": "5.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "tenant_id",
          "lesson_id",
          "rubric_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "RubricQualityReviewResponse",
        "type": "object"
      },
      "RubricQualityScanContent": {
        "additionalProperties": false,
        "properties": {
          "arithmetic_fixture_count": {
            "minimum": 1.0,
            "title": "Arithmetic Fixture Count",
            "type": "integer"
          },
          "assessment": {
            "$ref": "#/components/schemas/RubricQualityAssessment"
          },
          "automated_status": {
            "enum": ["clear", "review", "blocked"],
            "title": "Automated Status",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "raw_findings": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityFinding"
            },
            "maxItems": 20000,
            "title": "Raw Findings",
            "type": "array"
          },
          "source": {
            "$ref": "#/components/schemas/RubricQualitySource"
          }
        },
        "required": [
          "source",
          "assessment",
          "raw_findings",
          "automated_status",
          "arithmetic_fixture_count",
          "limitations"
        ],
        "title": "RubricQualityScanContent",
        "type": "object"
      },
      "RubricQualityScanRequest": {
        "additionalProperties": false,
        "properties": {
          "assessment": {
            "$ref": "#/components/schemas/RubricQualityAssessment"
          },
          "expected_rubric_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Expected Rubric Revision Id",
            "type": "string"
          },
          "expected_rubric_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Rubric Revision Sha256",
            "type": "string"
          },
          "expected_scan_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision"
          },
          "expected_scan_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Scan Revision Sha256"
          },
          "expected_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "quality_policy": {
            "$ref": "#/components/schemas/RubricQualityPolicy"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_rubric_revision_id",
          "expected_rubric_revision_sha256",
          "expected_source_sha256",
          "quality_policy",
          "assessment",
          "reason"
        ],
        "title": "RubricQualityScanRequest",
        "type": "object"
      },
      "RubricQualityScanResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/RubricQualityScanContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "lesson_id": {
            "format": "uuid",
            "title": "Lesson Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rubric_id": {
            "title": "Rubric Id",
            "type": "string"
          },
          "scan_id": {
            "pattern": "^rubric-quality-scan-[a-f0-9]{40}$",
            "title": "Scan Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.6.0",
            "default": "5.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "scan_id",
          "tenant_id",
          "lesson_id",
          "rubric_id",
          "revision",
          "content",
          "actor_id",
          "actor_role",
          "reason",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "RubricQualityScanResponse",
        "type": "object"
      },
      "RubricQualityScoring": {
        "additionalProperties": false,
        "properties": {
          "decimal_places": {
            "maximum": 12.0,
            "minimum": -1.0,
            "title": "Decimal Places",
            "type": "integer"
          },
          "method": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Method",
            "type": "string"
          },
          "missing_policy": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Missing Policy",
            "type": "string"
          },
          "not_applicable_policy": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Not Applicable Policy",
            "type": "string"
          },
          "rounding": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Rounding",
            "type": "string"
          },
          "score_cap": {
            "anyOf": [
              {
                "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Cap"
          },
          "score_floor": {
            "anyOf": [
              {
                "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Floor"
          }
        },
        "required": [
          "method",
          "missing_policy",
          "not_applicable_policy",
          "rounding",
          "decimal_places"
        ],
        "title": "RubricQualityScoring",
        "type": "object"
      },
      "RubricQualitySource": {
        "additionalProperties": false,
        "properties": {
          "coverage_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Coverage Sha256",
            "type": "string"
          },
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/RubricQualityCriterion"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "dependent_approvals_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dependent Approvals Sha256",
            "type": "string"
          },
          "descriptors_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Descriptors Sha256",
            "type": "string"
          },
          "lesson_id": {
            "format": "uuid",
            "title": "Lesson Id",
            "type": "string"
          },
          "level_order_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Level Order Sha256",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "quality_policy": {
            "$ref": "#/components/schemas/RubricQualityPolicy"
          },
          "quality_policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Quality Policy Sha256",
            "type": "string"
          },
          "rubric_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Id",
            "type": "string"
          },
          "rubric_revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Rubric Revision Id",
            "type": "string"
          },
          "rubric_revision_number": {
            "minimum": 1.0,
            "title": "Rubric Revision Number",
            "type": "integer"
          },
          "rubric_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rubric Revision Sha256",
            "type": "string"
          },
          "scoring": {
            "$ref": "#/components/schemas/RubricQualityScoring"
          },
          "scoring_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scoring Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "weights_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Weights Sha256",
            "type": "string"
          }
        },
        "required": [
          "tenant_id",
          "lesson_id",
          "rubric_id",
          "rubric_revision_id",
          "rubric_revision_number",
          "rubric_revision_sha256",
          "locale",
          "quality_policy",
          "scoring",
          "criteria",
          "scoring_sha256",
          "weights_sha256",
          "coverage_sha256",
          "level_order_sha256",
          "descriptors_sha256",
          "dependent_approvals_sha256",
          "quality_policy_sha256",
          "source_sha256"
        ],
        "title": "RubricQualitySource",
        "type": "object"
      },
      "RubricRevision": {
        "additionalProperties": false,
        "properties": {
          "criteria": {
            "items": {
              "$ref": "#/components/schemas/RubricCriterion"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Criteria",
            "type": "array"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rubric_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rubric Id",
            "type": "string"
          }
        },
        "required": ["rubric_id", "revision_id", "revision_sha256", "criteria"],
        "title": "RubricRevision",
        "type": "object"
      },
      "RuleDecision": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/DecisionApplicability"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/DecisionEvidence"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "freshness": {
            "$ref": "#/components/schemas/MeasurementFreshness"
          },
          "measurement_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Measurement Id",
            "type": "string"
          },
          "metric_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Metric Id",
            "type": "string"
          },
          "outcome": {
            "enum": [
              "pass",
              "fail",
              "advisory",
              "manual_review",
              "not_applicable",
              "insufficient_data",
              "unavailable",
              "error",
              "stale",
              "unknown"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "reason": {
            "$ref": "#/components/schemas/DecisionReason"
          },
          "remediation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RuleRemediation"
              },
              {
                "type": "null"
              }
            ]
          },
          "requirement": {
            "enum": ["mandatory", "advisory"],
            "title": "Requirement",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Rule Id",
            "type": "string"
          },
          "sample": {
            "$ref": "#/components/schemas/MeasurementSample"
          },
          "uncertainty": {
            "$ref": "#/components/schemas/MeasurementUncertainty-Output"
          }
        },
        "required": [
          "rule_id",
          "measurement_id",
          "metric_id",
          "requirement",
          "outcome",
          "reason",
          "evidence",
          "uncertainty",
          "sample",
          "applicability",
          "freshness",
          "rationale"
        ],
        "title": "RuleDecision",
        "type": "object"
      },
      "RuleRemediation": {
        "additionalProperties": false,
        "properties": {
          "action_id": {
            "pattern": "^remediation:[A-Za-z0-9._:-]{3,180}$",
            "title": "Action Id",
            "type": "string"
          },
          "evidence_required": {
            "default": true,
            "title": "Evidence Required",
            "type": "boolean"
          },
          "instruction": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Instruction",
            "type": "string"
          },
          "owner_role": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Owner Role",
            "type": "string"
          }
        },
        "required": ["action_id", "instruction", "owner_role"],
        "title": "RuleRemediation",
        "type": "object"
      },
      "RunAttemptView": {
        "additionalProperties": false,
        "description": "One attempt at one plan step.",
        "properties": {
          "attempt_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Attempt Id",
            "type": "string"
          },
          "attempt_number": {
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Attempt Number",
            "type": "integer"
          },
          "cost_minor_units": {
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "duration_ms": {
            "maximum": 86400000.0,
            "minimum": 0.0,
            "title": "Duration Ms",
            "type": "integer"
          },
          "model_invocations": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Model Invocations",
            "type": "integer"
          },
          "outcome": {
            "enum": ["succeeded", "failed", "refused", "stopped", "abandoned"],
            "title": "Outcome",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          },
          "tool_calls": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ToolCallView"
            },
            "maxItems": 200,
            "title": "Tool Calls",
            "type": "array"
          }
        },
        "required": [
          "attempt_id",
          "step_id",
          "attempt_number",
          "outcome",
          "started_at",
          "duration_ms",
          "model_invocations",
          "cost_minor_units",
          "detail"
        ],
        "title": "RunAttemptView",
        "type": "object"
      },
      "RunControlState": {
        "additionalProperties": false,
        "description": "The state a command acts on, and the version it acts at.",
        "properties": {
          "checkpoint": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Checkpoint"
              },
              {
                "type": "null"
              }
            ]
          },
          "completed_step_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "title": "Completed Step Ids",
            "type": "array"
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "fence": {
            "minimum": 1.0,
            "title": "Fence",
            "type": "integer"
          },
          "lifecycle": {
            "enum": ["queued", "running", "paused", "cancelled", "killed", "failed", "completed"],
            "title": "Lifecycle",
            "type": "string"
          },
          "pending_step_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 40,
            "title": "Pending Step Ids",
            "type": "array"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "plan_step_count": {
            "maximum": 40.0,
            "minimum": 1.0,
            "title": "Plan Step Count",
            "type": "integer"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "spend": {
            "$ref": "#/components/schemas/SpendLedger"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "run_id",
          "tenant_id",
          "plan_id",
          "version",
          "lifecycle",
          "fence",
          "plan_step_count",
          "spend",
          "updated_at"
        ],
        "title": "RunControlState",
        "type": "object"
      },
      "RunDetail": {
        "additionalProperties": false,
        "description": "One run, with what was measured kept apart from what may be done.",
        "properties": {
          "actions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Actions",
            "type": "array"
          },
          "declared_outside": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Declared Outside",
            "type": "array"
          },
          "measurement": {
            "$ref": "#/components/schemas/MeasurementView"
          },
          "missing_uncertainty": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Missing Uncertainty",
            "type": "array"
          },
          "refused": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Refused",
            "type": "array"
          },
          "sees_dif": {
            "default": false,
            "title": "Sees Dif",
            "type": "boolean"
          },
          "unavailable": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Unavailable",
            "type": "array"
          }
        },
        "required": ["measurement"],
        "title": "RunDetail",
        "type": "object"
      },
      "RunEvent": {
        "additionalProperties": false,
        "description": "One event, chained to the one before it.\n\n``previous_sha256`` is what makes a reconnect checkable. A sequence number\nalone cannot tell a reader whether event 41 is the one that followed 40 or a\nreplacement for it; a chain can.",
        "properties": {
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "event_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Event Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "queued",
              "reserved",
              "started",
              "step_started",
              "tool_called",
              "step_finished",
              "budget_warning",
              "stopped",
              "failed",
              "awaiting_approval",
              "decided",
              "completed"
            ],
            "title": "Kind",
            "type": "string"
          },
          "previous_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Previous Sha256",
            "type": "string"
          },
          "sequence": {
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "subject": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject",
            "type": "string"
          }
        },
        "required": [
          "sequence",
          "at",
          "kind",
          "subject",
          "detail",
          "previous_sha256",
          "event_sha256"
        ],
        "title": "RunEvent",
        "type": "object"
      },
      "RunIdentity": {
        "additionalProperties": false,
        "description": "Exactly which numbers these are.\n\nEvery field here is part of \"which run\": the same item calibrated by a\ndifferent tool version is a different measurement, and a queue that showed\nonly the item id would put two of them on one row.",
        "properties": {
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "item_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "item_revision": {
            "minimum": 1.0,
            "title": "Item Revision",
            "type": "integer"
          },
          "method": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Method",
            "type": "string"
          },
          "model_family": {
            "maxLength": 40,
            "minLength": 2,
            "title": "Model Family",
            "type": "string"
          },
          "run_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "sample_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sample Sha256",
            "type": "string"
          },
          "tool_version": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Tool Version",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "item_id",
          "item_revision",
          "method",
          "model_family",
          "tool_version",
          "sample_sha256",
          "completed_at"
        ],
        "title": "RunIdentity",
        "type": "object"
      },
      "RunListItemView": {
        "additionalProperties": false,
        "properties": {
          "completed_steps": {
            "maximum": 40.0,
            "minimum": 0.0,
            "title": "Completed Steps",
            "type": "integer"
          },
          "kind": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Kind",
            "type": "string"
          },
          "overspent": {
            "title": "Overspent",
            "type": "boolean"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "state": {
            "enum": [
              "queued",
              "reserved",
              "running",
              "awaiting_approval",
              "stopped",
              "failed",
              "completed"
            ],
            "title": "State",
            "type": "string"
          },
          "step_count": {
            "maximum": 40.0,
            "minimum": 1.0,
            "title": "Step Count",
            "type": "integer"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "plan_id",
          "template_id",
          "kind",
          "state",
          "updated_at",
          "step_count",
          "completed_steps",
          "overspent"
        ],
        "title": "RunListItemView",
        "type": "object"
      },
      "RunView": {
        "additionalProperties": false,
        "description": "Everything a fully-cleared audience may see of one run.\n\nA narrower audience gets the same shape with the objects it may not read\nleft empty, and `withheld` naming each one. An empty section and a section\nthe viewer is not cleared for look identical without that list, which is\nthe difference between \"this run made no tool calls\" and \"you cannot see\nthe tool calls it made\".",
        "properties": {
          "attempts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RunAttemptView"
            },
            "maxItems": 200,
            "title": "Attempts",
            "type": "array"
          },
          "audience": {
            "enum": ["author", "reviewer", "operator", "auditor", "learner_support"],
            "title": "Audience",
            "type": "string"
          },
          "budget": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BudgetLedgerView"
              },
              {
                "type": "null"
              }
            ]
          },
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "decisions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DecisionView"
            },
            "maxItems": 60,
            "title": "Decisions",
            "type": "array"
          },
          "events": {
            "$ref": "#/components/schemas/EventPage"
          },
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EvidenceRef"
            },
            "maxItems": 200,
            "title": "Evidence",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "lineage": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LineageEdge"
            },
            "maxItems": 400,
            "title": "Lineage",
            "type": "array"
          },
          "outputs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/OutputProposal"
            },
            "maxItems": 60,
            "title": "Outputs",
            "type": "array"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "reservation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/QueueReservation"
              },
              {
                "type": "null"
              }
            ]
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.14.0",
            "default": "6.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "state": {
            "enum": [
              "queued",
              "reserved",
              "running",
              "awaiting_approval",
              "stopped",
              "failed",
              "completed"
            ],
            "title": "State",
            "type": "string"
          },
          "template_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Template Id",
            "type": "string"
          },
          "template_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Template Version",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "withheld": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ViewDenial"
            },
            "maxItems": 80,
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": [
          "run_id",
          "tenant_id",
          "audience",
          "plan_id",
          "plan_sha256",
          "template_id",
          "template_version",
          "state",
          "events",
          "generated_at"
        ],
        "title": "RunView",
        "type": "object"
      },
      "RunViewCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["projection", "redaction", "budget", "provenance", "stream", "isolation"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "RunViewCorpusCaseResult",
        "type": "object"
      },
      "RunViewCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["projection", "redaction", "budget", "provenance", "stream", "isolation"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "RunViewCorpusMetric",
        "type": "object"
      },
      "RunViewEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "audience_matrix": {
            "items": {
              "$ref": "#/components/schemas/AudienceMatrixCell"
            },
            "maxItems": 120,
            "minItems": 1,
            "title": "Audience Matrix",
            "type": "array"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/RunViewCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.14-agent-run-view-v1",
            "default": "metis-m6.14-agent-run-view-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_probe_refused": {
            "title": "Every Probe Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "longest_history_events": {
            "minimum": 1.0,
            "title": "Longest History Events",
            "type": "integer"
          },
          "longest_history_page_micros": {
            "minimum": 1.0,
            "title": "Longest History Page Micros",
            "type": "integer"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/RunViewCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/IsolationProbe"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          },
          "sample_views": {
            "items": {
              "$ref": "#/components/schemas/RunView"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Sample Views",
            "type": "array"
          },
          "schema_version": {
            "const": "6.14.0",
            "default": "6.14.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "probes",
          "every_probe_refused",
          "audience_matrix",
          "longest_history_events",
          "longest_history_page_micros",
          "sample_views"
        ],
        "title": "RunViewEvaluationReport",
        "type": "object"
      },
      "RunViewProjection": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "view": {
            "$ref": "#/components/schemas/RunView"
          }
        },
        "required": ["run_id", "tenant_id", "created_at", "record_sha256", "view"],
        "title": "RunViewProjection",
        "type": "object"
      },
      "RunViewRequest": {
        "additionalProperties": false,
        "description": "What a caller asks for. The audience is not among the fields.\n\nAn audience the caller could name would be an audience the caller could\nchoose. It is resolved from the authenticated actor by the service.",
        "properties": {
          "from_sequence": {
            "default": 1,
            "minimum": 1.0,
            "title": "From Sequence",
            "type": "integer"
          },
          "page_size": {
            "default": 50,
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Page Size",
            "type": "integer"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": ["run_id"],
        "title": "RunViewRequest",
        "type": "object"
      },
      "RuntimeExperimentArmResponse": {
        "properties": {
          "arm_id": {
            "title": "Arm Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "status": {
            "enum": ["draft", "running", "paused", "completed"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "traffic_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Traffic Percent",
            "type": "integer"
          }
        },
        "required": ["arm_id", "label", "traffic_percent", "summary", "status"],
        "title": "RuntimeExperimentArmResponse",
        "type": "object"
      },
      "RuntimeExperimentResponse": {
        "properties": {
          "arms": {
            "items": {
              "$ref": "#/components/schemas/RuntimeExperimentArmResponse"
            },
            "title": "Arms",
            "type": "array"
          },
          "experiment_id": {
            "title": "Experiment Id",
            "type": "string"
          },
          "hypothesis": {
            "title": "Hypothesis",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "sample_window": {
            "title": "Sample Window",
            "type": "string"
          },
          "status": {
            "enum": ["draft", "running", "paused", "completed"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "experiment_id",
          "name",
          "hypothesis",
          "owner",
          "status",
          "sample_window",
          "summary"
        ],
        "title": "RuntimeExperimentResponse",
        "type": "object"
      },
      "RuntimeResourceLimits": {
        "additionalProperties": false,
        "properties": {
          "cpu_millis": {
            "maximum": 30000.0,
            "minimum": 100.0,
            "title": "Cpu Millis",
            "type": "integer"
          },
          "event_count": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Event Count",
            "type": "integer"
          },
          "event_payload_bytes": {
            "maximum": 1000000.0,
            "minimum": 128.0,
            "title": "Event Payload Bytes",
            "type": "integer"
          },
          "memory_bytes": {
            "maximum": 1073741824.0,
            "minimum": 16777216.0,
            "title": "Memory Bytes",
            "type": "integer"
          },
          "process_count": {
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Process Count",
            "type": "integer"
          },
          "wall_millis": {
            "maximum": 60000.0,
            "minimum": 100.0,
            "title": "Wall Millis",
            "type": "integer"
          },
          "writable_bytes": {
            "maximum": 268435456.0,
            "minimum": 0.0,
            "title": "Writable Bytes",
            "type": "integer"
          }
        },
        "required": [
          "cpu_millis",
          "wall_millis",
          "memory_bytes",
          "process_count",
          "writable_bytes",
          "event_count",
          "event_payload_bytes"
        ],
        "title": "RuntimeResourceLimits",
        "type": "object"
      },
      "RuntimeRolloutDecisionResponse": {
        "properties": {
          "decision_id": {
            "title": "Decision Id",
            "type": "string"
          },
          "experiments": {
            "items": {
              "$ref": "#/components/schemas/RuntimeExperimentResponse"
            },
            "title": "Experiments",
            "type": "array"
          },
          "facts": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueFactResponse"
            },
            "title": "Facts",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/RuntimeRolloutMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "recommendation_rationale": {
            "title": "Recommendation Rationale",
            "type": "string"
          },
          "recommended_action": {
            "enum": [
              "hold",
              "limited_rollout",
              "expand_rollout",
              "approve_full_rollout",
              "rollback"
            ],
            "title": "Recommended Action",
            "type": "string"
          },
          "rollout_scope": {
            "title": "Rollout Scope",
            "type": "string"
          },
          "rollout_window": {
            "title": "Rollout Window",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "status",
          "recommended_action",
          "title",
          "summary",
          "owner",
          "rollout_scope",
          "rollout_window",
          "recommendation_rationale"
        ],
        "title": "RuntimeRolloutDecisionResponse",
        "type": "object"
      },
      "RuntimeRolloutMetricResponse": {
        "properties": {
          "dimension": {
            "enum": ["factuality", "pedagogy", "safety", "latency", "cost"],
            "title": "Dimension",
            "type": "string"
          },
          "facts": {
            "items": {
              "$ref": "#/components/schemas/ReviewQueueFactResponse"
            },
            "title": "Facts",
            "type": "array"
          },
          "observed": {
            "title": "Observed",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "warning", "critical"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["dimension", "status", "title", "summary", "observed", "target"],
        "title": "RuntimeRolloutMetricResponse",
        "type": "object"
      },
      "SafeCount": {
        "additionalProperties": false,
        "description": "A count over people, suppressed when the cell is small enough to identify one.",
        "properties": {
          "count": {
            "anyOf": [
              {
                "minimum": 5.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Count"
          },
          "dimension": {
            "enum": ["role", "locale", "institution"],
            "title": "Dimension",
            "type": "string"
          },
          "suppressed": {
            "title": "Suppressed",
            "type": "boolean"
          },
          "value": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["dimension", "value", "suppressed"],
        "title": "SafeCount",
        "type": "object"
      },
      "SampleQuality": {
        "additionalProperties": false,
        "description": "How much data the estimates came from, and how good it was.\n\nThe two rates are optional because not every calibration run records them,\nand **0.0 is a measurement while absent is not**. Defaulting a missing rate\nto zero tells a reviewer the sample had no gaps; the truth is that nobody\ncounted, and those are different things to know before promoting an item.",
        "properties": {
          "collected_from": {
            "format": "date-time",
            "title": "Collected From",
            "type": "string"
          },
          "collected_to": {
            "format": "date-time",
            "title": "Collected To",
            "type": "string"
          },
          "exposure_rate": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exposure Rate"
          },
          "missing_rate": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Missing Rate"
          },
          "respondents": {
            "minimum": 0.0,
            "title": "Respondents",
            "type": "integer"
          },
          "responses": {
            "minimum": 0.0,
            "title": "Responses",
            "type": "integer"
          }
        },
        "required": ["responses", "respondents", "collected_from", "collected_to"],
        "title": "SampleQuality",
        "type": "object"
      },
      "ScaffoldOffer": {
        "additionalProperties": false,
        "description": "What may be offered instead, when the mode permits scaffolding only.",
        "properties": {
          "direct_answer_withheld": {
            "const": true,
            "default": true,
            "title": "Direct Answer Withheld",
            "type": "boolean"
          },
          "hint_stages_permitted": {
            "items": {
              "enum": ["orient", "probe", "targeted_hint", "worked_step", "full_solution"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Hint Stages Permitted",
            "type": "array"
          }
        },
        "required": ["hint_stages_permitted"],
        "title": "ScaffoldOffer",
        "type": "object"
      },
      "ScanResult": {
        "additionalProperties": false,
        "description": "What looked at this capture, and what it concluded.",
        "properties": {
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "scanned_at": {
            "format": "date-time",
            "title": "Scanned At",
            "type": "string"
          },
          "scanner": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Scanner",
            "type": "string"
          },
          "verdict": {
            "enum": ["not_scanned", "clean", "suspicious", "blocked"],
            "title": "Verdict",
            "type": "string"
          }
        },
        "required": ["verdict", "scanner", "scanned_at"],
        "title": "ScanResult",
        "type": "object"
      },
      "ScenarioComparison": {
        "additionalProperties": false,
        "properties": {
          "changed_learners": {
            "minimum": 0.0,
            "title": "Changed Learners",
            "type": "integer"
          },
          "cohort_identical": {
            "const": true,
            "default": true,
            "title": "Cohort Identical",
            "type": "boolean"
          },
          "cohort_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Cohort Sha256",
            "type": "string"
          },
          "deltas": {
            "items": {
              "$ref": "#/components/schemas/LearnerDelta"
            },
            "maxItems": 2000,
            "title": "Deltas",
            "type": "array"
          },
          "left_distribution": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "enum": [
                    "objective_met",
                    "no_eligible_item",
                    "budget_steps_exhausted",
                    "budget_days_exhausted",
                    "budget_engine_calls_exhausted"
                  ],
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 8,
            "title": "Left Distribution",
            "type": "array"
          },
          "left_scenario_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Left Scenario Id",
            "type": "string"
          },
          "right_distribution": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "enum": [
                    "objective_met",
                    "no_eligible_item",
                    "budget_steps_exhausted",
                    "budget_days_exhausted",
                    "budget_engine_calls_exhausted"
                  ],
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 8,
            "title": "Right Distribution",
            "type": "array"
          },
          "right_scenario_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Right Scenario Id",
            "type": "string"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": [
          "left_scenario_id",
          "right_scenario_id",
          "cohort_sha256",
          "deltas",
          "changed_learners",
          "left_distribution",
          "right_distribution"
        ],
        "title": "ScenarioComparison",
        "type": "object"
      },
      "ScheduleBody": {
        "properties": {
          "known_targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicationTarget"
            },
            "title": "Known Targets",
            "type": "array"
          },
          "targets": {
            "items": {
              "$ref": "#/components/schemas/TargetSchedule"
            },
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": ["targets"],
        "title": "ScheduleBody",
        "type": "object"
      },
      "ScheduleFinding": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "pathway.schedule.window-closes-before-it-opens",
              "pathway.schedule.deadline-before-window-closes",
              "pathway.schedule.plan-exceeds-deadline",
              "pathway.schedule.weekly-load-exceeds-maximum",
              "pathway.schedule.minimum-exceeds-maximum-days",
              "pathway.schedule.seat-time-exceeds-maximum-days",
              "pathway.schedule.self-paced-run-carries-a-deadline"
            ],
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "node_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "Node Ids",
            "type": "array"
          }
        },
        "required": ["code", "detail", "node_ids"],
        "title": "ScheduleFinding",
        "type": "object"
      },
      "SchedulePlan": {
        "additionalProperties": false,
        "properties": {
          "accommodations": {
            "items": {
              "$ref": "#/components/schemas/Accommodation"
            },
            "maxItems": 20,
            "title": "Accommodations",
            "type": "array"
          },
          "cadence": {
            "$ref": "#/components/schemas/CadenceRule"
          },
          "ends_on": {
            "format": "date",
            "title": "Ends On",
            "type": "string"
          },
          "feasible": {
            "title": "Feasible",
            "type": "boolean"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/ScheduleFinding"
            },
            "maxItems": 500,
            "title": "Findings",
            "type": "array"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/ScheduledNode"
            },
            "maxItems": 500,
            "title": "Nodes",
            "type": "array"
          },
          "pacing": {
            "$ref": "#/components/schemas/PacingRule"
          },
          "peak_weekly_load_minutes": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Peak Weekly Load Minutes",
            "type": "integer"
          },
          "starts_on": {
            "format": "date",
            "title": "Starts On",
            "type": "string"
          },
          "timezone_resolved": {
            "title": "Timezone Resolved",
            "type": "boolean"
          },
          "total_planned_days": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Total Planned Days",
            "type": "integer"
          }
        },
        "required": [
          "cadence",
          "pacing",
          "accommodations",
          "timezone_resolved",
          "starts_on",
          "ends_on",
          "total_planned_days",
          "peak_weekly_load_minutes",
          "nodes",
          "findings",
          "feasible"
        ],
        "title": "SchedulePlan",
        "type": "object"
      },
      "SchedulePreview": {
        "additionalProperties": false,
        "description": "Everything a schedule would do, and everything wrong with it.",
        "properties": {
          "candidate_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Digest",
            "type": "string"
          },
          "computed_at": {
            "format": "date-time",
            "title": "Computed At",
            "type": "string"
          },
          "findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicationScheduleFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "order": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Order",
            "type": "array"
          },
          "resolved": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ResolvedTarget"
            },
            "title": "Resolved",
            "type": "array"
          },
          "schedule_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Schedule Digest",
            "type": "string"
          }
        },
        "required": ["candidate_digest", "schedule_digest", "computed_at"],
        "title": "SchedulePreview",
        "type": "object"
      },
      "ScheduleSummary": {
        "additionalProperties": false,
        "properties": {
          "candidate_digest": {
            "title": "Candidate Digest",
            "type": "string"
          },
          "confirmed_by": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Confirmed By",
            "type": "array"
          },
          "schedule_digest": {
            "title": "Schedule Digest",
            "type": "string"
          },
          "target_count": {
            "title": "Target Count",
            "type": "integer"
          }
        },
        "required": ["schedule_digest", "candidate_digest", "target_count"],
        "title": "ScheduleSummary",
        "type": "object"
      },
      "ScheduledNode": {
        "additionalProperties": false,
        "properties": {
          "ends_on": {
            "format": "date",
            "title": "Ends On",
            "type": "string"
          },
          "node_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Node Id",
            "type": "string"
          },
          "ordinal": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "planned_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Planned Days",
            "type": "integer"
          },
          "seat_time_minutes": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Seat Time Minutes",
            "type": "integer"
          },
          "starts_on": {
            "format": "date",
            "title": "Starts On",
            "type": "string"
          }
        },
        "required": [
          "node_id",
          "ordinal",
          "starts_on",
          "ends_on",
          "planned_days",
          "seat_time_minutes"
        ],
        "title": "ScheduledNode",
        "type": "object"
      },
      "ScoreEffect": {
        "additionalProperties": false,
        "description": "What removing or replacing something did to the score.\n\nRequired on every exclusion. A record that said \"item 4 was dropped\" and\nnothing else leaves the next person to work out whether the paper is now\nmarked out of nineteen.",
        "properties": {
          "detail": {
            "maxLength": 800,
            "minLength": 4,
            "title": "Detail",
            "type": "string"
          },
          "max_score_after": {
            "minimum": 0.0,
            "title": "Max Score After",
            "type": "number"
          },
          "max_score_before": {
            "minimum": 0.0,
            "title": "Max Score Before",
            "type": "number"
          },
          "rescaled": {
            "title": "Rescaled",
            "type": "boolean"
          },
          "uncovered_areas": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Uncovered Areas",
            "type": "array"
          }
        },
        "required": ["max_score_before", "max_score_after", "rescaled", "detail"],
        "title": "ScoreEffect",
        "type": "object"
      },
      "ScoringHook": {
        "additionalProperties": false,
        "properties": {
          "credit_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Credit Basis Points",
            "type": "integer"
          },
          "evaluator": {
            "$ref": "#/components/schemas/PinnedArtifact"
          },
          "event_name": {
            "title": "Event Name",
            "type": "string"
          },
          "expected_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ],
            "title": "Expected Value"
          },
          "hook_id": {
            "pattern": "^score:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Hook Id",
            "type": "string"
          },
          "method": {
            "enum": ["exact", "range", "set_membership", "state_invariant"],
            "title": "Method",
            "type": "string"
          },
          "partial_credit": {
            "const": true,
            "default": true,
            "title": "Partial Credit",
            "type": "boolean"
          },
          "response_field": {
            "title": "Response Field",
            "type": "string"
          }
        },
        "required": [
          "hook_id",
          "evaluator",
          "event_name",
          "response_field",
          "expected_value",
          "method",
          "credit_basis_points"
        ],
        "title": "ScoringHook",
        "type": "object"
      },
      "ScormActivity-Input": {
        "additionalProperties": false,
        "description": "One node of the activity tree: the package's structure, not a learner's progress.",
        "properties": {
          "activity_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Activity Id",
            "type": "string"
          },
          "children": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ScormActivity-Input"
            },
            "maxItems": 500,
            "title": "Children",
            "type": "array"
          },
          "resource_href": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Href"
          },
          "sequencing": {
            "$ref": "#/components/schemas/ScormSequencing",
            "default": {
              "control_mode": {
                "choice": true,
                "choice_exit": true,
                "flow": false,
                "forward_only": false
              },
              "limit_conditions": {},
              "objective_measure_weight": 1.0,
              "objectives": [],
              "post_condition_rules": [],
              "pre_condition_rules": [],
              "rollup_objective_satisfied": true,
              "rollup_progress_completion": true,
              "rollup_rules": [],
              "schema_version": "1.0.0"
            }
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["activity_id", "title"],
        "title": "ScormActivity",
        "type": "object"
      },
      "ScormActivity-Output": {
        "additionalProperties": false,
        "description": "One node of the activity tree: the package's structure, not a learner's progress.",
        "properties": {
          "activity_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Activity Id",
            "type": "string"
          },
          "children": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ScormActivity-Output"
            },
            "maxItems": 500,
            "title": "Children",
            "type": "array"
          },
          "resource_href": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Href"
          },
          "sequencing": {
            "$ref": "#/components/schemas/ScormSequencing",
            "default": {
              "control_mode": {
                "choice": true,
                "choice_exit": true,
                "flow": false,
                "forward_only": false
              },
              "limit_conditions": {},
              "objective_measure_weight": 1.0,
              "objectives": [],
              "post_condition_rules": [],
              "pre_condition_rules": [],
              "rollup_objective_satisfied": true,
              "rollup_progress_completion": true,
              "rollup_rules": [],
              "schema_version": "1.0.0"
            }
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["activity_id", "title"],
        "title": "ScormActivity",
        "type": "object"
      },
      "ScormActivityStateResponse": {
        "description": "One activity's place in the tracking model.",
        "properties": {
          "active": {
            "title": "Active",
            "type": "boolean"
          },
          "activity_id": {
            "title": "Activity Id",
            "type": "string"
          },
          "attempt_count": {
            "title": "Attempt Count",
            "type": "integer"
          },
          "attempted": {
            "title": "Attempted",
            "type": "boolean"
          },
          "completed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed"
          },
          "measure": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measure"
          },
          "satisfied": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Satisfied"
          },
          "suspended": {
            "title": "Suspended",
            "type": "boolean"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["activity_id", "title", "attempt_count", "attempted", "active", "suspended"],
        "title": "ScormActivityStateResponse",
        "type": "object"
      },
      "ScormActivityTreeResponse": {
        "description": "The tree a package sequences, as it was parsed from the manifest.",
        "properties": {
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "sequenced": {
            "title": "Sequenced",
            "type": "boolean"
          },
          "tree": {
            "$ref": "#/components/schemas/ScormActivity-Output"
          },
          "version": {
            "enum": ["1.2", "2004"],
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["package_id", "version", "tree", "sequenced"],
        "title": "ScormActivityTreeResponse",
        "type": "object"
      },
      "ScormAttemptListResponse": {
        "properties": {
          "commits": {
            "items": {
              "$ref": "#/components/schemas/ScormRuntimeCommitResponse"
            },
            "title": "Commits",
            "type": "array"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["package_id", "learner_id", "commits", "total"],
        "title": "ScormAttemptListResponse",
        "type": "object"
      },
      "ScormControlMode": {
        "additionalProperties": false,
        "description": "What a learner may do inside this activity's children (SN 4.2).",
        "properties": {
          "choice": {
            "default": true,
            "title": "Choice",
            "type": "boolean"
          },
          "choice_exit": {
            "default": true,
            "title": "Choice Exit",
            "type": "boolean"
          },
          "flow": {
            "default": false,
            "title": "Flow",
            "type": "boolean"
          },
          "forward_only": {
            "default": false,
            "title": "Forward Only",
            "type": "boolean"
          }
        },
        "title": "ScormControlMode",
        "type": "object"
      },
      "ScormInteraction": {
        "description": "One question a learner answered, as the player reported it.",
        "properties": {
          "correct_responses": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Correct Responses",
            "type": "array"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "latency": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latency"
          },
          "learner_response": {
            "default": "",
            "maxLength": 4096,
            "title": "Learner Response",
            "type": "string"
          },
          "objectives": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Objectives",
            "type": "array"
          },
          "result": {
            "default": "neutral",
            "maxLength": 64,
            "minLength": 1,
            "title": "Result",
            "type": "string"
          },
          "timestamp": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timestamp"
          },
          "type": {
            "enum": [
              "true-false",
              "choice",
              "fill-in",
              "long-fill-in",
              "matching",
              "performance",
              "sequencing",
              "likert",
              "numeric",
              "other"
            ],
            "title": "Type",
            "type": "string"
          },
          "weighting": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weighting"
          }
        },
        "required": ["id", "type"],
        "title": "ScormInteraction",
        "type": "object"
      },
      "ScormLessonItem": {
        "properties": {
          "href": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Href"
          },
          "id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "mastery_score": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mastery Score"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title"],
        "title": "ScormLessonItem",
        "type": "object"
      },
      "ScormLimitConditions": {
        "additionalProperties": false,
        "description": "SN 4.3. Only the attempt limit is honoured; the duration limits are not.",
        "properties": {
          "attempt_limit": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attempt Limit"
          }
        },
        "title": "ScormLimitConditions",
        "type": "object"
      },
      "ScormNavigationRequestBody": {
        "description": "A player's navigation request (SN 5.3).",
        "properties": {
          "launch_token": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Launch Token",
            "type": "string"
          },
          "learner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Learner Id",
            "type": "string"
          },
          "package_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "request": {
            "enum": [
              "start",
              "resumeAll",
              "continue",
              "previous",
              "choice",
              "exit",
              "exitAll",
              "suspendAll",
              "abandon",
              "abandonAll"
            ],
            "title": "Request",
            "type": "string"
          },
          "target_activity_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Activity Id"
          }
        },
        "required": ["package_id", "learner_id", "launch_token", "request"],
        "title": "ScormNavigationRequestBody",
        "type": "object"
      },
      "ScormNavigationResponse": {
        "description": "What the sequencer decided.",
        "properties": {
          "activities": {
            "items": {
              "$ref": "#/components/schemas/ScormActivityStateResponse"
            },
            "title": "Activities",
            "type": "array"
          },
          "current_activity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Activity Id"
          },
          "decided_by": {
            "default": "",
            "title": "Decided By",
            "type": "string"
          },
          "delivered_activity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered Activity Id"
          },
          "delivered_href": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delivered Href"
          },
          "exception": {
            "anyOf": [
              {
                "enum": [
                  "NB.2.1-1",
                  "NB.2.1-2",
                  "NB.2.1-3",
                  "NB.2.1-4",
                  "NB.2.1-5",
                  "NB.2.1-6",
                  "NB.2.1-7",
                  "NB.2.1-8",
                  "NB.2.1-9",
                  "NB.2.1-10",
                  "NB.2.1-11",
                  "SB.2.1-2",
                  "SB.2.9-1",
                  "SB.2.9-2",
                  "SB.2.9-4",
                  "SB.2.9-6",
                  "SB.2.9-7",
                  "DB.1.1-1",
                  "DB.1.1-3",
                  "UP.5-1",
                  "UP.5-3"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exception"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "request": {
            "enum": [
              "start",
              "resumeAll",
              "continue",
              "previous",
              "choice",
              "exit",
              "exitAll",
              "suspendAll",
              "abandon",
              "abandonAll"
            ],
            "title": "Request",
            "type": "string"
          },
          "session_ended": {
            "default": false,
            "title": "Session Ended",
            "type": "boolean"
          },
          "suspended_activity_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suspended Activity Id"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": ["package_id", "learner_id", "request", "version", "updated_at"],
        "title": "ScormNavigationResponse",
        "type": "object"
      },
      "ScormObjective": {
        "description": "M10.7.c: one learning objective, as the player scored it.\n\n`cmi.objectives.n` is the sibling of `cmi.interactions.n` and was the\nother free-form casualty: a package reported what a learner had achieved\nand it arrived inside `runtime_data`, a dict nothing checked, so an\nobjective with no id and a status no edition defines was stored exactly\nlike a good one.\n\nAN OBJECTIVE IS NOT AN INTERACTION. An interaction is one question; an\nobjective is a thing the course claims the learner can now do, and several\ninteractions can bear on one. Keeping them apart is why `interactions[].objectives`\nnames these by id rather than repeating them.",
        "properties": {
          "completion_status": {
            "default": "unknown",
            "enum": ["completed", "incomplete", "not attempted", "unknown"],
            "title": "Completion Status",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "score_max": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Max"
          },
          "score_min": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Min"
          },
          "score_raw": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Raw"
          },
          "score_scaled": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": -1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Scaled"
          },
          "success_status": {
            "default": "unknown",
            "enum": ["unknown", "passed", "failed"],
            "title": "Success Status",
            "type": "string"
          }
        },
        "required": ["id"],
        "title": "ScormObjective",
        "type": "object"
      },
      "ScormPackageCreateRequest": {
        "properties": {
          "activity_tree": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScormActivity-Input"
              },
              {
                "type": "null"
              }
            ]
          },
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/ScormLessonItem"
            },
            "minItems": 1,
            "title": "Lessons",
            "type": "array"
          },
          "sequencing": {
            "$ref": "#/components/schemas/ScormSequencing",
            "default": {
              "control_mode": {
                "choice": true,
                "choice_exit": true,
                "flow": true,
                "forward_only": false
              },
              "limit_conditions": {},
              "objective_measure_weight": 1.0,
              "objectives": [],
              "post_condition_rules": [],
              "pre_condition_rules": [],
              "rollup_objective_satisfied": true,
              "rollup_progress_completion": true,
              "rollup_rules": [],
              "schema_version": "1.0.0"
            }
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "version": {
            "default": "2004",
            "enum": ["1.2", "2004"],
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["course_id", "title", "lessons"],
        "title": "ScormPackageCreateRequest",
        "type": "object"
      },
      "ScormPackageFileResponse": {
        "properties": {
          "media_type": {
            "title": "Media Type",
            "type": "string"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "sha256": {
            "title": "Sha256",
            "type": "string"
          },
          "size_bytes": {
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": ["path", "media_type", "size_bytes", "sha256"],
        "title": "ScormPackageFileResponse",
        "type": "object"
      },
      "ScormPackageResponse": {
        "properties": {
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/ScormPackageFileResponse"
            },
            "title": "Files",
            "type": "array"
          },
          "integrity_hash": {
            "title": "Integrity Hash",
            "type": "string"
          },
          "launch_path": {
            "title": "Launch Path",
            "type": "string"
          },
          "launch_token": {
            "title": "Launch Token",
            "type": "string"
          },
          "manifest_xml": {
            "title": "Manifest Xml",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "version": {
            "enum": ["1.2", "2004"],
            "title": "Version",
            "type": "string"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "package_id",
          "course_id",
          "title",
          "version",
          "launch_path",
          "manifest_xml",
          "files",
          "integrity_hash",
          "launch_token",
          "warnings",
          "created_at"
        ],
        "title": "ScormPackageResponse",
        "type": "object"
      },
      "ScormPostConditionRule": {
        "additionalProperties": false,
        "description": "A rule evaluated when an attempt on an activity ends (SN 4.5).",
        "properties": {
          "action": {
            "enum": ["continue", "previous", "exitParent", "exitAll", "retry"],
            "title": "Action",
            "type": "string"
          },
          "combination": {
            "default": "all",
            "enum": ["all", "any"],
            "title": "Combination",
            "type": "string"
          },
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/ScormRuleCondition"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Conditions",
            "type": "array"
          }
        },
        "required": ["action", "conditions"],
        "title": "ScormPostConditionRule",
        "type": "object"
      },
      "ScormPreConditionRule": {
        "additionalProperties": false,
        "description": "A rule evaluated before an activity is considered (SN 4.5).",
        "properties": {
          "action": {
            "enum": ["skip", "disabled", "hiddenFromChoice", "stopForwardTraversal"],
            "title": "Action",
            "type": "string"
          },
          "combination": {
            "default": "all",
            "enum": ["all", "any"],
            "title": "Combination",
            "type": "string"
          },
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/ScormRuleCondition"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Conditions",
            "type": "array"
          }
        },
        "required": ["action", "conditions"],
        "title": "ScormPreConditionRule",
        "type": "object"
      },
      "ScormRollupRule": {
        "additionalProperties": false,
        "description": "A rule that sets a parent's status from its children's (SN 4.6).",
        "properties": {
          "action": {
            "enum": ["satisfied", "notSatisfied", "completed", "incomplete"],
            "title": "Action",
            "type": "string"
          },
          "child_activity_set": {
            "default": "all",
            "enum": ["all", "any", "none", "atLeastCount", "atLeastPercent"],
            "title": "Child Activity Set",
            "type": "string"
          },
          "combination": {
            "default": "all",
            "enum": ["all", "any"],
            "title": "Combination",
            "type": "string"
          },
          "conditions": {
            "items": {
              "$ref": "#/components/schemas/ScormRuleCondition"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Conditions",
            "type": "array"
          },
          "minimum_count": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Minimum Count",
            "type": "integer"
          },
          "minimum_percent": {
            "default": 0.0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Minimum Percent",
            "type": "number"
          }
        },
        "required": ["action", "conditions"],
        "title": "ScormRollupRule",
        "type": "object"
      },
      "ScormRuleCondition": {
        "additionalProperties": false,
        "description": "One test in a sequencing rule (SN 4.5).",
        "properties": {
          "condition": {
            "enum": [
              "satisfied",
              "objectiveStatusKnown",
              "objectiveMeasureKnown",
              "objectiveMeasureGreaterThan",
              "objectiveMeasureLessThan",
              "completed",
              "activityProgressKnown",
              "attempted",
              "attemptLimitExceeded",
              "always"
            ],
            "title": "Condition",
            "type": "string"
          },
          "measure_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": -1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measure Threshold"
          },
          "operator": {
            "default": "noOp",
            "enum": ["noOp", "not"],
            "title": "Operator",
            "type": "string"
          },
          "referenced_objective_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referenced Objective Id"
          }
        },
        "required": ["condition"],
        "title": "ScormRuleCondition",
        "type": "object"
      },
      "ScormRuntimeCommitRequest": {
        "properties": {
          "commit_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Commit Id",
            "type": "string"
          },
          "interactions": {
            "items": {
              "$ref": "#/components/schemas/ScormInteraction"
            },
            "maxItems": 500,
            "title": "Interactions",
            "type": "array"
          },
          "launch_token": {
            "minLength": 16,
            "title": "Launch Token",
            "type": "string"
          },
          "learner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Learner Id",
            "type": "string"
          },
          "lesson_status": {
            "enum": ["not attempted", "incomplete", "completed", "passed", "failed", "browsed"],
            "title": "Lesson Status",
            "type": "string"
          },
          "location": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/ScormObjective"
            },
            "maxItems": 500,
            "title": "Objectives",
            "type": "array"
          },
          "package_id": {
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "runtime_data": {
            "additionalProperties": true,
            "title": "Runtime Data",
            "type": "object"
          },
          "sco_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Sco Id",
            "type": "string"
          },
          "score_max": {
            "anyOf": [
              {
                "exclusiveMinimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Max"
          },
          "score_min": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Min"
          },
          "score_raw": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Raw"
          },
          "session_time": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Time"
          },
          "success_status": {
            "default": "unknown",
            "enum": ["unknown", "passed", "failed"],
            "title": "Success Status",
            "type": "string"
          },
          "suspend_data": {
            "anyOf": [
              {
                "maxLength": 64000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suspend Data"
          }
        },
        "required": [
          "package_id",
          "launch_token",
          "commit_id",
          "learner_id",
          "sco_id",
          "lesson_status"
        ],
        "title": "ScormRuntimeCommitRequest",
        "type": "object"
      },
      "ScormRuntimeCommitResponse": {
        "properties": {
          "attempt_id": {
            "title": "Attempt Id",
            "type": "string"
          },
          "cmi_snapshot": {
            "additionalProperties": true,
            "title": "Cmi Snapshot",
            "type": "object"
          },
          "commit_id": {
            "title": "Commit Id",
            "type": "string"
          },
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "fields_not_carried": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Fields Not Carried",
            "type": "array"
          },
          "interactions": {
            "items": {
              "$ref": "#/components/schemas/ScormInteraction"
            },
            "title": "Interactions",
            "type": "array"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "lesson_status": {
            "enum": ["not attempted", "incomplete", "completed", "passed", "failed", "browsed"],
            "title": "Lesson Status",
            "type": "string"
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/ScormObjective"
            },
            "title": "Objectives",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "sco_id": {
            "title": "Sco Id",
            "type": "string"
          },
          "score_scaled": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Scaled"
          },
          "sequence": {
            "title": "Sequence",
            "type": "integer"
          },
          "stored_at": {
            "format": "date-time",
            "title": "Stored At",
            "type": "string"
          },
          "success_status": {
            "enum": ["unknown", "passed", "failed"],
            "title": "Success Status",
            "type": "string"
          }
        },
        "required": [
          "commit_id",
          "attempt_id",
          "sequence",
          "package_id",
          "learner_id",
          "sco_id",
          "lesson_status",
          "success_status",
          "cmi_snapshot",
          "stored_at"
        ],
        "title": "ScormRuntimeCommitResponse",
        "type": "object"
      },
      "ScormSequencing": {
        "additionalProperties": false,
        "description": "One activity's sequencing definition (SN 4).\n\nThe witness symbol `services/interop_coverage.py` named for the cell that\ndid not exist. An activity with no sequencing element gets this type's\ndefaults, which are the book's defaults.",
        "properties": {
          "control_mode": {
            "$ref": "#/components/schemas/ScormControlMode",
            "default": {
              "choice": true,
              "choice_exit": true,
              "flow": false,
              "forward_only": false
            }
          },
          "limit_conditions": {
            "$ref": "#/components/schemas/ScormLimitConditions",
            "default": {}
          },
          "objective_measure_weight": {
            "default": 1.0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Objective Measure Weight",
            "type": "number"
          },
          "objectives": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ScormSequencingObjective"
            },
            "maxItems": 50,
            "title": "Objectives",
            "type": "array"
          },
          "post_condition_rules": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ScormPostConditionRule"
            },
            "maxItems": 20,
            "title": "Post Condition Rules",
            "type": "array"
          },
          "pre_condition_rules": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ScormPreConditionRule"
            },
            "maxItems": 20,
            "title": "Pre Condition Rules",
            "type": "array"
          },
          "rollup_objective_satisfied": {
            "default": true,
            "title": "Rollup Objective Satisfied",
            "type": "boolean"
          },
          "rollup_progress_completion": {
            "default": true,
            "title": "Rollup Progress Completion",
            "type": "boolean"
          },
          "rollup_rules": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ScormRollupRule"
            },
            "maxItems": 20,
            "title": "Rollup Rules",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "title": "ScormSequencing",
        "type": "object"
      },
      "ScormSequencingLaunchRequest": {
        "description": "Begin (or resume) one learner's sequencing session over a package.",
        "properties": {
          "launch_token": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Launch Token",
            "type": "string"
          },
          "learner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Learner Id",
            "type": "string"
          },
          "package_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          }
        },
        "required": ["package_id", "learner_id", "launch_token"],
        "title": "ScormSequencingLaunchRequest",
        "type": "object"
      },
      "ScormSequencingObjective": {
        "additionalProperties": false,
        "description": "An objective an activity tracks (SN 4.1).",
        "properties": {
          "min_normalized_measure": {
            "default": 1.0,
            "maximum": 1.0,
            "minimum": -1.0,
            "title": "Min Normalized Measure",
            "type": "number"
          },
          "objective_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Objective Id",
            "type": "string"
          },
          "primary": {
            "default": false,
            "title": "Primary",
            "type": "boolean"
          },
          "satisfied_by_measure": {
            "default": false,
            "title": "Satisfied By Measure",
            "type": "boolean"
          }
        },
        "required": ["objective_id"],
        "title": "ScormSequencingObjective",
        "type": "object"
      },
      "ScormTrackingReportBody": {
        "description": "What a player reported for the activity it is running.\n\nEvery field is optional and `None` means the player said nothing about\nthat part. SCORM's tracking model has three states \u2014 true, false and not\nknown \u2014 and a body that defaulted a missing field to `false` would make\nsilence a verdict.",
        "properties": {
          "activity_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Activity Id",
            "type": "string"
          },
          "completed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed"
          },
          "launch_token": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Launch Token",
            "type": "string"
          },
          "learner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Learner Id",
            "type": "string"
          },
          "measure": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": -1.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measure"
          },
          "package_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "satisfied": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Satisfied"
          }
        },
        "required": ["package_id", "learner_id", "launch_token", "activity_id"],
        "title": "ScormTrackingReportBody",
        "type": "object"
      },
      "SecretScan": {
        "additionalProperties": false,
        "description": "Every field of every model in this module, checked for somewhere to put a secret.",
        "properties": {
          "fields_matching": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Fields Matching",
            "type": "array"
          },
          "fields_scanned": {
            "minimum": 1.0,
            "title": "Fields Scanned",
            "type": "integer"
          },
          "forbidden_words": {
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Forbidden Words",
            "type": "array"
          },
          "models_scanned": {
            "minimum": 1.0,
            "title": "Models Scanned",
            "type": "integer"
          }
        },
        "required": ["models_scanned", "fields_scanned", "forbidden_words"],
        "title": "SecretScan",
        "type": "object"
      },
      "SectionDecision": {
        "additionalProperties": false,
        "properties": {
          "section": {
            "enum": [
              "subject_refs",
              "narrative",
              "decision_substance",
              "raw_evidence",
              "classifier_features",
              "other_learner_refs",
              "staff_identity",
              "security_method"
            ],
            "title": "Section",
            "type": "string"
          },
          "treatment": {
            "enum": ["shown", "masked", "withheld"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["section", "treatment"],
        "title": "SectionDecision",
        "type": "object"
      },
      "SectionSummary": {
        "additionalProperties": false,
        "description": "What one section of the export contains \u2014 including nothing, and why.",
        "properties": {
          "absence": {
            "anyOf": [
              {
                "enum": ["not_requested", "not_allowed_for_purpose"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Absence"
          },
          "file_names": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "File Names",
            "type": "array"
          },
          "included": {
            "title": "Included",
            "type": "boolean"
          },
          "row_count": {
            "minimum": 0.0,
            "title": "Row Count",
            "type": "integer"
          },
          "section": {
            "enum": [
              "subjects_and_revisions",
              "templates_and_gates",
              "measurements_and_evidence",
              "comments",
              "assignments_and_conflicts",
              "decisions_appeals_signoffs",
              "actors_and_roles",
              "audit",
              "redactions"
            ],
            "title": "Section",
            "type": "string"
          }
        },
        "required": ["section", "included", "row_count"],
        "title": "SectionSummary",
        "type": "object"
      },
      "SecureView": {
        "additionalProperties": false,
        "description": "What one audience was shown of one signal, and what it was not.",
        "properties": {
          "audience": {
            "enum": ["learner", "reviewer", "integrity_lead"],
            "title": "Audience",
            "type": "string"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/FieldDecision"
            },
            "maxItems": 15,
            "minItems": 15,
            "title": "Decisions",
            "type": "array"
          },
          "excerpts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExcerptView"
            },
            "maxItems": 200,
            "title": "Excerpts",
            "type": "array"
          },
          "fields_shown": {
            "items": {
              "enum": [
                "refs.learner_digest",
                "refs.attempt",
                "refs.item",
                "source.versions",
                "raw_outputs",
                "confidence",
                "evidence.timeline",
                "evidence.media",
                "evidence.session",
                "evidence.device",
                "evidence.similarity",
                "evidence.authorship",
                "excerpt.text",
                "summary",
                "state"
              ],
              "type": "string"
            },
            "title": "Fields Shown",
            "type": "array"
          },
          "fields_withheld": {
            "items": {
              "enum": [
                "refs.learner_digest",
                "refs.attempt",
                "refs.item",
                "source.versions",
                "raw_outputs",
                "confidence",
                "evidence.timeline",
                "evidence.media",
                "evidence.session",
                "evidence.device",
                "evidence.similarity",
                "evidence.authorship",
                "excerpt.text",
                "summary",
                "state"
              ],
              "type": "string"
            },
            "title": "Fields Withheld",
            "type": "array"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "view_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "View Sha256",
            "type": "string"
          },
          "viewed_at": {
            "format": "date-time",
            "title": "Viewed At",
            "type": "string"
          },
          "viewed_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Viewed By Digest",
            "type": "string"
          }
        },
        "required": [
          "signal_id",
          "audience",
          "viewed_by_digest",
          "viewed_at",
          "decisions",
          "fields_shown",
          "fields_withheld",
          "view_sha256"
        ],
        "title": "SecureView",
        "type": "object"
      },
      "SecurityMethod": {
        "additionalProperties": false,
        "properties": {
          "detector_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Detector Id",
            "type": "string"
          },
          "detector_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Detector Version",
            "type": "string"
          },
          "method": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Method",
            "type": "string"
          }
        },
        "required": ["detector_id", "detector_version", "method"],
        "title": "SecurityMethod",
        "type": "object"
      },
      "SegmentError": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "samples": {
            "minimum": 0.0,
            "title": "Samples",
            "type": "integer"
          },
          "segment": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Segment",
            "type": "string"
          },
          "segment_kind": {
            "enum": ["overall", "subgroup", "content_kind"],
            "title": "Segment Kind",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": [
          "segment_kind",
          "segment",
          "samples",
          "matched",
          "accuracy",
          "wilson_low",
          "wilson_high"
        ],
        "title": "SegmentError",
        "type": "object"
      },
      "SelectedResponseAccessibility": {
        "additionalProperties": false,
        "properties": {
          "keyboard_instructions": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Keyboard Instructions",
            "type": "array"
          },
          "nonvisual_summary": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Nonvisual Summary",
            "type": "array"
          },
          "randomized_order_announced": {
            "const": true,
            "default": true,
            "title": "Randomized Order Announced",
            "type": "boolean"
          },
          "stable_option_identity_preserved": {
            "const": true,
            "default": true,
            "title": "Stable Option Identity Preserved",
            "type": "boolean"
          }
        },
        "required": ["nonvisual_summary", "keyboard_instructions"],
        "title": "SelectedResponseAccessibility",
        "type": "object"
      },
      "SelectedResponseActor": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "SelectedResponseActor",
        "type": "object"
      },
      "SelectedResponseAuthorPreview": {
        "additionalProperties": false,
        "properties": {
          "hotspot_image": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SelectedResponsePreviewImage"
              },
              {
                "type": "null"
              }
            ]
          },
          "hotspot_regions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewRegion"
            },
            "title": "Hotspot Regions",
            "type": "array"
          },
          "instructions": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "keyboard_instructions": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "matching_targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewTarget"
            },
            "title": "Matching Targets",
            "type": "array"
          },
          "mode": {
            "const": "author",
            "default": "author",
            "title": "Mode",
            "type": "string"
          },
          "nonvisual_summary": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewOption"
            },
            "title": "Options",
            "type": "array"
          },
          "protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "randomized_order_announced": {
            "const": true,
            "default": true,
            "title": "Randomized Order Announced",
            "type": "boolean"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "seed": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Seed",
            "type": "string"
          },
          "selected_response_id": {
            "title": "Selected Response Id",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "title": "Source References",
            "type": "array"
          },
          "stable_option_identity_preserved": {
            "const": true,
            "default": true,
            "title": "Stable Option Identity Preserved",
            "type": "boolean"
          },
          "stem": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          }
        },
        "required": [
          "selected_response_id",
          "revision",
          "revision_sha256",
          "locale",
          "seed",
          "response_type",
          "stem",
          "instructions",
          "options",
          "nonvisual_summary",
          "keyboard_instructions",
          "source_references"
        ],
        "title": "SelectedResponseAuthorPreview",
        "type": "object"
      },
      "SelectedResponseDistractorReview": {
        "additionalProperties": false,
        "description": "Protected misconception and author rationale; never learner feedback.",
        "properties": {
          "misconception": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Misconception",
            "type": "string"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "rationale": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Rationale",
            "type": "array"
          }
        },
        "required": ["option_id", "misconception", "rationale"],
        "title": "SelectedResponseDistractorReview",
        "type": "object"
      },
      "SelectedResponseDraft": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/SelectedResponseAccessibility"
          },
          "correct_rationale": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Correct Rationale",
            "type": "array"
          },
          "default_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Default Locale",
            "type": "string"
          },
          "distractor_reviews": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponseDistractorReview"
            },
            "maxItems": 100,
            "title": "Distractor Reviews",
            "type": "array"
          },
          "hotspot_image": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SelectedResponseHotspotImage"
              },
              {
                "type": "null"
              }
            ]
          },
          "hotspot_regions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponseHotspotRegion"
            },
            "maxItems": 100,
            "title": "Hotspot Regions",
            "type": "array"
          },
          "kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale_surfaces": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocaleSurface"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Surfaces",
            "type": "array"
          },
          "matching_targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponseMatchingTargetDraft"
            },
            "maxItems": 100,
            "title": "Matching Targets",
            "type": "array"
          },
          "options": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponseOptionDraft"
            },
            "maxItems": 100,
            "title": "Options",
            "type": "array"
          },
          "presentation": {
            "$ref": "#/components/schemas/SelectedResponsePresentation"
          },
          "response_rule": {
            "$ref": "#/components/schemas/SelectedResponseRule"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          }
        },
        "required": [
          "kind",
          "default_locale",
          "locale_surfaces",
          "presentation",
          "accessibility",
          "response_rule",
          "correct_rationale"
        ],
        "title": "SelectedResponseDraft",
        "type": "object"
      },
      "SelectedResponseHotspotImage": {
        "additionalProperties": false,
        "description": "The picture a spatial item's regions are measured on.\n\nHeld by digest, not by path: the coordinates below are only meaningful\nagainst these exact bytes, so a swapped image is a different image and the\nitem that names it no longer resolves.",
        "properties": {
          "alternative_text": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Alternative Text",
            "type": "array"
          },
          "byte_length": {
            "maximum": 50000000.0,
            "minimum": 1.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "delivery_locator": {
            "pattern": "^asset://[A-Za-z0-9._:/-]{3,500}$",
            "title": "Delivery Locator",
            "type": "string"
          },
          "height": {
            "maximum": 20000.0,
            "minimum": 1.0,
            "title": "Height",
            "type": "integer"
          },
          "media_type": {
            "enum": ["image/png", "image/jpeg", "image/svg+xml"],
            "title": "Media Type",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sha256",
            "type": "string"
          },
          "width": {
            "maximum": 20000.0,
            "minimum": 1.0,
            "title": "Width",
            "type": "integer"
          }
        },
        "required": [
          "sha256",
          "delivery_locator",
          "media_type",
          "byte_length",
          "width",
          "height",
          "alternative_text"
        ],
        "title": "SelectedResponseHotspotImage",
        "type": "object"
      },
      "SelectedResponseHotspotRegion": {
        "additionalProperties": false,
        "description": "One clickable region, its shape, and the label a non-visual learner gets.",
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Content",
            "type": "array"
          },
          "coordinates": {
            "items": {
              "type": "integer"
            },
            "maxItems": 1000,
            "minItems": 3,
            "title": "Coordinates",
            "type": "array"
          },
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "region_id": {
            "pattern": "^region:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Region Id",
            "type": "string"
          },
          "shape": {
            "enum": ["rectangle", "circle", "polygon"],
            "title": "Shape",
            "type": "string"
          }
        },
        "required": ["region_id", "order", "shape", "coordinates", "content"],
        "title": "SelectedResponseHotspotRegion",
        "type": "object"
      },
      "SelectedResponseKeyPreview": {
        "additionalProperties": false,
        "properties": {
          "correct_rationale": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "distractor_reviews": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewDistractor"
            },
            "title": "Distractor Reviews",
            "type": "array"
          },
          "hotspot_image": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SelectedResponsePreviewImage"
              },
              {
                "type": "null"
              }
            ]
          },
          "hotspot_regions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewRegion"
            },
            "title": "Hotspot Regions",
            "type": "array"
          },
          "instructions": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "keyboard_instructions": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "matching_targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewTarget"
            },
            "title": "Matching Targets",
            "type": "array"
          },
          "mode": {
            "const": "key",
            "default": "key",
            "title": "Mode",
            "type": "string"
          },
          "nonvisual_summary": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewOption"
            },
            "title": "Options",
            "type": "array"
          },
          "protected_properties_visible": {
            "const": true,
            "default": true,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "randomized_order_announced": {
            "const": true,
            "default": true,
            "title": "Randomized Order Announced",
            "type": "boolean"
          },
          "response_rule": {
            "$ref": "#/components/schemas/SelectedResponseRule"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "seed": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Seed",
            "type": "string"
          },
          "selected_response_id": {
            "title": "Selected Response Id",
            "type": "string"
          },
          "stable_option_identity_preserved": {
            "const": true,
            "default": true,
            "title": "Stable Option Identity Preserved",
            "type": "boolean"
          },
          "stem": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          }
        },
        "required": [
          "selected_response_id",
          "revision",
          "revision_sha256",
          "locale",
          "seed",
          "response_type",
          "stem",
          "instructions",
          "options",
          "nonvisual_summary",
          "keyboard_instructions",
          "response_rule",
          "correct_rationale"
        ],
        "title": "SelectedResponseKeyPreview",
        "type": "object"
      },
      "SelectedResponseLearnerPreview": {
        "additionalProperties": false,
        "properties": {
          "hotspot_image": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SelectedResponsePreviewImage"
              },
              {
                "type": "null"
              }
            ]
          },
          "hotspot_regions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewRegion"
            },
            "title": "Hotspot Regions",
            "type": "array"
          },
          "instructions": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "keyboard_instructions": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "matching_targets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewTarget"
            },
            "title": "Matching Targets",
            "type": "array"
          },
          "mode": {
            "const": "learner",
            "default": "learner",
            "title": "Mode",
            "type": "string"
          },
          "nonvisual_summary": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "options": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponsePreviewOption"
            },
            "title": "Options",
            "type": "array"
          },
          "protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "randomized_order_announced": {
            "const": true,
            "default": true,
            "title": "Randomized Order Announced",
            "type": "boolean"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "seed": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Seed",
            "type": "string"
          },
          "selected_response_id": {
            "title": "Selected Response Id",
            "type": "string"
          },
          "stable_option_identity_preserved": {
            "const": true,
            "default": true,
            "title": "Stable Option Identity Preserved",
            "type": "boolean"
          },
          "stem": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          }
        },
        "required": [
          "selected_response_id",
          "revision",
          "revision_sha256",
          "locale",
          "seed",
          "response_type",
          "stem",
          "instructions",
          "options",
          "nonvisual_summary",
          "keyboard_instructions"
        ],
        "title": "SelectedResponseLearnerPreview",
        "type": "object"
      },
      "SelectedResponseLocaleSurface": {
        "additionalProperties": false,
        "properties": {
          "instructions": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "stem": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          }
        },
        "required": ["locale", "stem", "instructions"],
        "title": "SelectedResponseLocaleSurface",
        "type": "object"
      },
      "SelectedResponseLocalizedContent": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          }
        },
        "required": ["locale", "content"],
        "title": "SelectedResponseLocalizedContent",
        "type": "object"
      },
      "SelectedResponseMatchingPair": {
        "additionalProperties": false,
        "properties": {
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "target_id": {
            "pattern": "^target:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["option_id", "target_id"],
        "title": "SelectedResponseMatchingPair",
        "type": "object"
      },
      "SelectedResponseMatchingTargetDraft": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Content",
            "type": "array"
          },
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "target_id": {
            "pattern": "^target:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id", "order", "content"],
        "title": "SelectedResponseMatchingTargetDraft",
        "type": "object"
      },
      "SelectedResponseOptionDraft": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Content",
            "type": "array"
          },
          "fixed_position": {
            "default": "none",
            "enum": ["none", "first", "last"],
            "title": "Fixed Position",
            "type": "string"
          },
          "learner_feedback": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Learner Feedback",
            "type": "array"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "order": {
            "maximum": 99.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          }
        },
        "required": ["option_id", "order", "content", "learner_feedback"],
        "title": "SelectedResponseOptionDraft",
        "type": "object"
      },
      "SelectedResponsePreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "allowed_response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Allowed Response Type",
            "type": "string"
          },
          "current": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SelectedResponseRevisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "property_policy": {
            "$ref": "#/components/schemas/SelectedResponsePropertyPolicy"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/SelectedResponseSourceSnapshot"
          }
        },
        "required": ["source", "allowed_response_type", "property_policy"],
        "title": "SelectedResponsePreparationResponse",
        "type": "object"
      },
      "SelectedResponsePresentation": {
        "additionalProperties": false,
        "properties": {
          "layout": {
            "default": "vertical",
            "enum": ["vertical", "horizontal", "matrix"],
            "title": "Layout",
            "type": "string"
          },
          "randomization_seed_scope": {
            "const": "attempt",
            "default": "attempt",
            "title": "Randomization Seed Scope",
            "type": "string"
          },
          "shuffle_matching_targets": {
            "default": true,
            "title": "Shuffle Matching Targets",
            "type": "boolean"
          },
          "shuffle_options": {
            "default": true,
            "title": "Shuffle Options",
            "type": "boolean"
          }
        },
        "title": "SelectedResponsePresentation",
        "type": "object"
      },
      "SelectedResponsePreviewDistractor": {
        "additionalProperties": false,
        "properties": {
          "misconception": {
            "title": "Misconception",
            "type": "string"
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "rationale": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          }
        },
        "required": ["option_id", "misconception", "rationale"],
        "title": "SelectedResponsePreviewDistractor",
        "type": "object"
      },
      "SelectedResponsePreviewImage": {
        "additionalProperties": false,
        "properties": {
          "alternative_text": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "height": {
            "minimum": 1.0,
            "title": "Height",
            "type": "integer"
          },
          "media_type": {
            "enum": ["image/png", "image/jpeg", "image/svg+xml"],
            "title": "Media Type",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sha256",
            "type": "string"
          },
          "width": {
            "minimum": 1.0,
            "title": "Width",
            "type": "integer"
          }
        },
        "required": ["sha256", "media_type", "width", "height", "alternative_text"],
        "title": "SelectedResponsePreviewImage",
        "type": "object"
      },
      "SelectedResponsePreviewOption": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "learner_feedback": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SelectedResponseRichContent"
              },
              {
                "type": "null"
              }
            ]
          },
          "option_id": {
            "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Option Id",
            "type": "string"
          },
          "presented_position": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Presented Position",
            "type": "integer"
          }
        },
        "required": ["option_id", "presented_position", "content"],
        "title": "SelectedResponsePreviewOption",
        "type": "object"
      },
      "SelectedResponsePreviewRegion": {
        "additionalProperties": false,
        "description": "One region as a learner meets it: where it is, and what it is called.\n\nThere is no `presented_position`: a region's position is its coordinates on\nthe image, and shuffling them would move the answer.",
        "properties": {
          "content": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "coordinates": {
            "items": {
              "type": "integer"
            },
            "title": "Coordinates",
            "type": "array"
          },
          "region_id": {
            "pattern": "^region:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Region Id",
            "type": "string"
          },
          "shape": {
            "enum": ["rectangle", "circle", "polygon"],
            "title": "Shape",
            "type": "string"
          }
        },
        "required": ["region_id", "shape", "coordinates", "content"],
        "title": "SelectedResponsePreviewRegion",
        "type": "object"
      },
      "SelectedResponsePreviewTarget": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/SelectedResponseRichContent"
          },
          "presented_position": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Presented Position",
            "type": "integer"
          },
          "target_id": {
            "pattern": "^target:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id", "presented_position", "content"],
        "title": "SelectedResponsePreviewTarget",
        "type": "object"
      },
      "SelectedResponsePropertyPolicy": {
        "additionalProperties": false,
        "properties": {
          "author_api_roles": {
            "default": ["instructor", "admin"],
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "title": "Author Api Roles",
            "type": "array"
          },
          "editor_ui_roles": {
            "default": ["instructor", "admin"],
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "title": "Editor Ui Roles",
            "type": "array"
          },
          "key_preview_roles": {
            "default": ["instructor", "admin"],
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "title": "Key Preview Roles",
            "type": "array"
          },
          "learner_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Learner Protected Properties Visible",
            "type": "boolean"
          },
          "log_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Log Protected Properties Visible",
            "type": "boolean"
          },
          "policy_version": {
            "const": "metis.selected-response-properties.v1",
            "default": "metis.selected-response-properties.v1",
            "title": "Policy Version",
            "type": "string"
          },
          "protected_export_requires_explicit_author_role": {
            "const": true,
            "default": true,
            "title": "Protected Export Requires Explicit Author Role",
            "type": "boolean"
          },
          "search_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Search Protected Properties Visible",
            "type": "boolean"
          },
          "tutor_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Tutor Protected Properties Visible",
            "type": "boolean"
          }
        },
        "title": "SelectedResponsePropertyPolicy",
        "type": "object"
      },
      "SelectedResponseProtectedExport": {
        "additionalProperties": false,
        "properties": {
          "authorization_scope": {
            "const": "selected-response:protected-export",
            "default": "selected-response:protected-export",
            "title": "Authorization Scope",
            "type": "string"
          },
          "protected_properties_visible": {
            "const": true,
            "default": true,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "revision": {
            "$ref": "#/components/schemas/SelectedResponseRevisionResponse"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["revision"],
        "title": "SelectedResponseProtectedExport",
        "type": "object"
      },
      "SelectedResponseRevisionHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/SelectedResponseRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "revisions"],
        "title": "SelectedResponseRevisionHistoryResponse",
        "type": "object"
      },
      "SelectedResponseRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/SelectedResponseDraft"
          },
          "expected_editor_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision"
          },
          "expected_editor_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision Sha256"
          },
          "expected_source_revision": {
            "minimum": 1.0,
            "title": "Expected Source Revision",
            "type": "integer"
          },
          "expected_source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_source_revision",
          "expected_source_revision_sha256",
          "reason",
          "content"
        ],
        "title": "SelectedResponseRevisionRequest",
        "type": "object"
      },
      "SelectedResponseRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/SelectedResponseActor"
          },
          "content": {
            "$ref": "#/components/schemas/SelectedResponseDraft"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selected_response_id": {
            "pattern": "^selected-response-[a-f0-9]{40}$",
            "title": "Selected Response Id",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/SelectedResponseSourceSnapshot"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "selected_response_id",
          "draft_id",
          "tenant_id",
          "revision",
          "source",
          "actor",
          "reason",
          "content",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "SelectedResponseRevisionResponse",
        "type": "object"
      },
      "SelectedResponseRichContent": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "format": {
            "default": "plain_text",
            "enum": ["plain_text", "markdown"],
            "title": "Format",
            "type": "string"
          },
          "value": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "accessible_text"],
        "title": "SelectedResponseRichContent",
        "type": "object"
      },
      "SelectedResponseRule": {
        "additionalProperties": false,
        "description": "Protected exact key and integer-points scoring configuration.",
        "properties": {
          "correct_order": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Correct Order",
            "type": "array"
          },
          "correct_region_ids": {
            "default": [],
            "items": {
              "pattern": "^region:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Correct Region Ids",
            "type": "array"
          },
          "incorrect_penalty_basis_points": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Incorrect Penalty Basis Points",
            "type": "integer"
          },
          "matching_pairs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponseMatchingPair"
            },
            "maxItems": 100,
            "title": "Matching Pairs",
            "type": "array"
          },
          "maximum_points": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Maximum Points",
            "type": "integer"
          },
          "maximum_selections": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Selections"
          },
          "minimum_selections": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Selections"
          },
          "multiple_correct_option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Multiple Correct Option Ids",
            "type": "array"
          },
          "partial_credit_method": {
            "default": "none",
            "enum": ["none", "per_correct_less_incorrect", "per_position", "per_pair"],
            "title": "Partial Credit Method",
            "type": "string"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "scoring_method": {
            "enum": ["exact", "partial"],
            "title": "Scoring Method",
            "type": "string"
          },
          "single_correct_option_id": {
            "anyOf": [
              {
                "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Single Correct Option Id"
          }
        },
        "required": ["response_type", "scoring_method", "maximum_points"],
        "title": "SelectedResponseRule",
        "type": "object"
      },
      "SelectedResponseSafeProjection": {
        "additionalProperties": false,
        "properties": {
          "excluded_properties": {
            "items": {
              "enum": [
                "response_rule",
                "answer_key",
                "correct_rationale",
                "distractor_rationales",
                "misconceptions"
              ],
              "type": "string"
            },
            "title": "Excluded Properties",
            "type": "array"
          },
          "image_alternative_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Image Alternative Text"
          },
          "kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "option_accessible_text": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Option Accessible Text",
            "type": "array"
          },
          "option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "title": "Option Ids",
            "type": "array"
          },
          "protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "region_accessible_text": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Region Accessible Text",
            "type": "array"
          },
          "region_ids": {
            "default": [],
            "items": {
              "pattern": "^region:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "title": "Region Ids",
            "type": "array"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selected_response_id": {
            "title": "Selected Response Id",
            "type": "string"
          },
          "stem_text": {
            "title": "Stem Text",
            "type": "string"
          },
          "surface": {
            "enum": ["learner", "search", "export", "log", "tutor"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": [
          "surface",
          "selected_response_id",
          "revision",
          "revision_sha256",
          "kind",
          "locale",
          "response_type",
          "stem_text",
          "excluded_properties"
        ],
        "title": "SelectedResponseSafeProjection",
        "type": "object"
      },
      "SelectedResponseScoreResult": {
        "additionalProperties": false,
        "properties": {
          "awarded_points": {
            "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{2})$",
            "title": "Awarded Points",
            "type": "string"
          },
          "correct": {
            "title": "Correct",
            "type": "boolean"
          },
          "maximum_points": {
            "minimum": 1.0,
            "title": "Maximum Points",
            "type": "integer"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "score_fraction": {
            "pattern": "^(?:0|1)(?:\\.[0-9]{4})$",
            "title": "Score Fraction",
            "type": "string"
          },
          "scoring_method": {
            "enum": ["exact", "partial"],
            "title": "Scoring Method",
            "type": "string"
          },
          "stable_option_identity_used": {
            "const": true,
            "default": true,
            "title": "Stable Option Identity Used",
            "type": "boolean"
          }
        },
        "required": [
          "response_type",
          "scoring_method",
          "correct",
          "awarded_points",
          "maximum_points",
          "score_fraction"
        ],
        "title": "SelectedResponseScoreResult",
        "type": "object"
      },
      "SelectedResponseSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "draft_revision": {
            "minimum": 1.0,
            "title": "Draft Revision",
            "type": "integer"
          },
          "draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Draft Revision Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "assessment-kind:single-choice",
              "assessment-kind:multiple-choice",
              "assessment-kind:ordering",
              "assessment-kind:matching",
              "assessment-kind:hotspot"
            ],
            "title": "Kind",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_references": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Source References",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "stem": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Stem",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "draft_revision",
          "draft_revision_sha256",
          "kind",
          "stem",
          "objective_ids",
          "source_sha256"
        ],
        "title": "SelectedResponseSourceSnapshot",
        "type": "object"
      },
      "SelectedResponseSubmission": {
        "additionalProperties": false,
        "properties": {
          "matching_pairs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SelectedResponseMatchingPair"
            },
            "maxItems": 100,
            "title": "Matching Pairs",
            "type": "array"
          },
          "ordered_option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Ordered Option Ids",
            "type": "array"
          },
          "response_type": {
            "enum": ["single", "multiple", "ordered", "matching", "hotspot"],
            "title": "Response Type",
            "type": "string"
          },
          "selected_option_ids": {
            "default": [],
            "items": {
              "pattern": "^option:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Selected Option Ids",
            "type": "array"
          },
          "selected_region_ids": {
            "default": [],
            "items": {
              "pattern": "^region:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Selected Region Ids",
            "type": "array"
          }
        },
        "required": ["response_type"],
        "title": "SelectedResponseSubmission",
        "type": "object"
      },
      "SelectionBiasReport": {
        "additionalProperties": false,
        "description": "Correlations between the score and things the rubric never asked about.\n\nBoth correlations are measured against the declared score, never against the\nfinal rank: equal scores are ordered by generation position only to make the\nranking total, so a rank-versus-position correlation would report that\ntiebreak back as a bias.",
        "properties": {
          "distinct_generators": {
            "maximum": 64.0,
            "minimum": 0.0,
            "title": "Distinct Generators",
            "type": "integer"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/BiasFinding"
            },
            "maxItems": 10,
            "title": "Findings",
            "type": "array"
          },
          "length_score_correlation_milli": {
            "maximum": 1000.0,
            "minimum": -1000.0,
            "title": "Length Score Correlation Milli",
            "type": "integer"
          },
          "position_score_correlation_milli": {
            "maximum": 1000.0,
            "minimum": -1000.0,
            "title": "Position Score Correlation Milli",
            "type": "integer"
          },
          "top_generator_share_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Top Generator Share Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "position_score_correlation_milli",
          "length_score_correlation_milli",
          "top_generator_share_basis_points",
          "distinct_generators",
          "findings"
        ],
        "title": "SelectionBiasReport",
        "type": "object"
      },
      "SelectionResult": {
        "additionalProperties": false,
        "properties": {
          "automatic_acceptance": {
            "const": false,
            "default": false,
            "title": "Automatic Acceptance",
            "type": "boolean"
          },
          "bias": {
            "$ref": "#/components/schemas/SelectionBiasReport"
          },
          "hidden_candidate_removals": {
            "const": 0,
            "default": 0,
            "title": "Hidden Candidate Removals",
            "type": "integer"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "rejected_candidate_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Rejected Candidate Ids",
            "type": "array"
          },
          "scores": {
            "items": {
              "$ref": "#/components/schemas/CandidateScore"
            },
            "maxItems": 64,
            "title": "Scores",
            "type": "array"
          },
          "shortlisted_candidate_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Shortlisted Candidate Ids",
            "type": "array"
          },
          "state": {
            "enum": [
              "shortlisted_pending_educator",
              "tie_requires_educator_selection",
              "all_candidates_rejected",
              "no_eligible_candidate",
              "plan_incomplete"
            ],
            "title": "State",
            "type": "string"
          },
          "tied_candidate_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Tied Candidate Ids",
            "type": "array"
          }
        },
        "required": [
          "state",
          "scores",
          "shortlisted_candidate_ids",
          "tied_candidate_ids",
          "rejected_candidate_ids",
          "bias",
          "reason_codes"
        ],
        "title": "SelectionResult",
        "type": "object"
      },
      "SelectionRule": {
        "additionalProperties": false,
        "properties": {
          "relax_on_empty": {
            "const": false,
            "default": false,
            "title": "Relax On Empty",
            "type": "boolean"
          },
          "seed": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Seed",
            "type": "string"
          },
          "strategy": {
            "enum": [
              "lowest_exposure_first",
              "nearest_target_difficulty",
              "widest_objective_coverage",
              "seeded_uniform"
            ],
            "title": "Strategy",
            "type": "string"
          },
          "tie_break": {
            "const": "candidate_id_ascending",
            "default": "candidate_id_ascending",
            "title": "Tie Break",
            "type": "string"
          }
        },
        "required": ["strategy", "seed"],
        "title": "SelectionRule",
        "type": "object"
      },
      "SemanticMathAlternative": {
        "additionalProperties": false,
        "properties": {
          "braille_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Braille Text",
            "type": "string"
          },
          "content_mathml": {
            "maxLength": 30000,
            "minLength": 1,
            "title": "Content Mathml",
            "type": "string"
          },
          "plain_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Plain Text",
            "type": "string"
          },
          "presentation_mathml": {
            "maxLength": 30000,
            "minLength": 1,
            "title": "Presentation Mathml",
            "type": "string"
          },
          "speech_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Speech Text",
            "type": "string"
          }
        },
        "required": [
          "presentation_mathml",
          "content_mathml",
          "speech_text",
          "braille_text",
          "plain_text"
        ],
        "title": "SemanticMathAlternative",
        "type": "object"
      },
      "SeparationProbeResult": {
        "additionalProperties": false,
        "description": "Two panels whose per-model verdicts differ but whose tally is identical.",
        "properties": {
          "left_ready_count": {
            "maximum": 4.0,
            "minimum": 0.0,
            "title": "Left Ready Count",
            "type": "integer"
          },
          "panels_differ": {
            "title": "Panels Differ",
            "type": "boolean"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "right_ready_count": {
            "maximum": 4.0,
            "minimum": 0.0,
            "title": "Right Ready Count",
            "type": "integer"
          },
          "separated": {
            "title": "Separated",
            "type": "boolean"
          },
          "tallies_match": {
            "title": "Tallies Match",
            "type": "boolean"
          }
        },
        "required": [
          "probe_id",
          "left_ready_count",
          "right_ready_count",
          "tallies_match",
          "panels_differ",
          "separated"
        ],
        "title": "SeparationProbeResult",
        "type": "object"
      },
      "SeparationSweepReport": {
        "additionalProperties": false,
        "properties": {
          "every_probe_separates": {
            "title": "Every Probe Separates",
            "type": "boolean"
          },
          "method": {
            "const": "equal-tally-distinct-panel-separation-probe-v1",
            "title": "Method",
            "type": "string"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/SeparationProbeResult"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          }
        },
        "required": ["method", "probes", "every_probe_separates"],
        "title": "SeparationSweepReport",
        "type": "object"
      },
      "SequenceDecision": {
        "additionalProperties": false,
        "properties": {
          "history": {
            "$ref": "#/components/schemas/SequenceHistoryEntry"
          },
          "outcomes": {
            "items": {
              "$ref": "#/components/schemas/CandidateOutcome"
            },
            "maxItems": 500,
            "title": "Outcomes",
            "type": "array"
          },
          "selected_candidate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Candidate Id"
          },
          "selection_rule": {
            "const": "nearest-target-difficulty-then-lowest-exposure-then-candidate-id",
            "title": "Selection Rule",
            "type": "string"
          },
          "state": {
            "enum": [
              "selected",
              "no_candidate_admitted",
              "refused_overlay_drift",
              "indeterminate_missing_protected_floor"
            ],
            "title": "State",
            "type": "string"
          },
          "target_difficulty_centilogits": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Difficulty Centilogits"
          }
        },
        "required": [
          "state",
          "selected_candidate_id",
          "selection_rule",
          "target_difficulty_centilogits",
          "outcomes",
          "history"
        ],
        "title": "SequenceDecision",
        "type": "object"
      },
      "SequenceHistoryEntry": {
        "additionalProperties": false,
        "properties": {
          "admitted_count": {
            "minimum": 0.0,
            "title": "Admitted Count",
            "type": "integer"
          },
          "applied_constraints": {
            "items": {
              "$ref": "#/components/schemas/AppliedConstraintRecord"
            },
            "maxItems": 64,
            "title": "Applied Constraints",
            "type": "array"
          },
          "asserted_effective_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asserted Effective Sha256"
          },
          "assertion_matched": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assertion Matched"
          },
          "context_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Context Sha256",
            "type": "string"
          },
          "contributing_overlays": {
            "items": {
              "$ref": "#/components/schemas/ContributingOverlay"
            },
            "maxItems": 64,
            "title": "Contributing Overlays",
            "type": "array"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "effective_overlay_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Effective Overlay Sha256",
            "type": "string"
          },
          "refused_count": {
            "minimum": 0.0,
            "title": "Refused Count",
            "type": "integer"
          },
          "selected_candidate_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Candidate Id"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "state": {
            "enum": [
              "selected",
              "no_candidate_admitted",
              "refused_overlay_drift",
              "indeterminate_missing_protected_floor"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "decided_at",
          "session_id",
          "context_sha256",
          "effective_overlay_sha256",
          "asserted_effective_sha256",
          "assertion_matched",
          "contributing_overlays",
          "applied_constraints",
          "selected_candidate_id",
          "state",
          "admitted_count",
          "refused_count"
        ],
        "title": "SequenceHistoryEntry",
        "type": "object"
      },
      "SequencingCandidate": {
        "additionalProperties": false,
        "description": "One next-item candidate, described only by the attributes a rule reads.",
        "properties": {
          "attempts_used": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Attempts Used",
            "type": "integer"
          },
          "autonomous_advance_steps": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Autonomous Advance Steps",
            "type": "integer"
          },
          "candidate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "content_kind": {
            "enum": ["lesson", "item", "assessment", "practice_set", "media"],
            "title": "Content Kind",
            "type": "string"
          },
          "days_since_last_seen": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Days Since Last Seen",
            "type": "integer"
          },
          "delivery_mode": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Delivery Mode",
            "type": "string"
          },
          "difficulty_band": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Difficulty Band",
            "type": "string"
          },
          "difficulty_centilogits": {
            "maximum": 500.0,
            "minimum": -500.0,
            "title": "Difficulty Centilogits",
            "type": "integer"
          },
          "human_review_recorded": {
            "title": "Human Review Recorded",
            "type": "boolean"
          },
          "integrity_checks_cleared": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Integrity Checks Cleared",
            "type": "array"
          },
          "item_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Item Id",
            "type": "string"
          },
          "items_already_this_session": {
            "maximum": 1000.0,
            "minimum": 0.0,
            "title": "Items Already This Session",
            "type": "integer"
          },
          "learner_mastery_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Learner Mastery Basis Points",
            "type": "integer"
          },
          "licence_class": {
            "maxLength": 80,
            "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
            "title": "Licence Class",
            "type": "string"
          },
          "mastery_evidence_kinds": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Mastery Evidence Kinds",
            "type": "array"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          },
          "observed_exposure_rate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Observed Exposure Rate Basis Points",
            "type": "integer"
          },
          "prerequisite_mastery_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Prerequisite Mastery Basis Points",
            "type": "integer"
          },
          "safety_gates_cleared": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Safety Gates Cleared",
            "type": "array"
          },
          "signal_kinds": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Signal Kinds",
            "type": "array"
          },
          "signal_retention_days": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Signal Retention Days",
            "type": "integer"
          },
          "supports_provided": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 32,
            "title": "Supports Provided",
            "type": "array"
          }
        },
        "required": [
          "candidate_id",
          "item_id",
          "content_kind",
          "objective_id",
          "licence_class",
          "delivery_mode",
          "difficulty_centilogits",
          "difficulty_band",
          "attempts_used",
          "autonomous_advance_steps",
          "observed_exposure_rate_basis_points",
          "days_since_last_seen",
          "learner_mastery_basis_points",
          "prerequisite_mastery_basis_points",
          "signal_retention_days",
          "items_already_this_session",
          "human_review_recorded"
        ],
        "title": "SequencingCandidate",
        "type": "object"
      },
      "SequencingContext": {
        "additionalProperties": false,
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "decided_at": {
            "format": "date-time",
            "title": "Decided At",
            "type": "string"
          },
          "institution_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Id"
          },
          "program_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Program Id"
          },
          "region_code": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Region Code"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "support_profile_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Support Profile Id"
          }
        },
        "required": ["session_id", "decided_at"],
        "title": "SequencingContext",
        "type": "object"
      },
      "SequencingObjective": {
        "additionalProperties": false,
        "properties": {
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          },
          "objective_kind": {
            "enum": ["coverage", "remediation", "fluency", "retention", "assessment_readiness"],
            "title": "Objective Kind",
            "type": "string"
          },
          "target_difficulty_centilogits": {
            "maximum": 500.0,
            "minimum": -500.0,
            "title": "Target Difficulty Centilogits",
            "type": "integer"
          },
          "target_objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Objective Id",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "objective_id",
          "objective_kind",
          "target_objective_id",
          "weight_basis_points",
          "target_difficulty_centilogits"
        ],
        "title": "SequencingObjective",
        "type": "object"
      },
      "SequencingOverlayProjection": {
        "additionalProperties": false,
        "properties": {
          "analysis": {
            "$ref": "#/components/schemas/SequencingOverlayResponse"
          },
          "revision_current": {
            "title": "Revision Current",
            "type": "boolean"
          }
        },
        "required": ["analysis", "revision_current"],
        "title": "SequencingOverlayProjection",
        "type": "object"
      },
      "SequencingOverlayRequest": {
        "additionalProperties": false,
        "properties": {
          "asserted_effective_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Asserted Effective Sha256"
          },
          "baseline_overlay_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 64,
            "title": "Baseline Overlay Ids",
            "type": "array"
          },
          "candidates": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SequencingCandidate"
            },
            "maxItems": 500,
            "title": "Candidates",
            "type": "array"
          },
          "context": {
            "$ref": "#/components/schemas/SequencingContext"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "impact_subjects": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ImpactSubject"
            },
            "maxItems": 5000,
            "title": "Impact Subjects",
            "type": "array"
          },
          "overlays": {
            "items": {
              "$ref": "#/components/schemas/OverlayRevision"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Overlays",
            "type": "array"
          },
          "review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OverlayReview"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "6.2.0",
            "default": "6.2.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject_overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Overlay Id",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "subject_overlay_id", "overlays", "context"],
        "title": "SequencingOverlayRequest",
        "type": "object"
      },
      "SequencingOverlayResponse": {
        "additionalProperties": false,
        "properties": {
          "activatable": {
            "title": "Activatable",
            "type": "boolean"
          },
          "activation": {
            "$ref": "#/components/schemas/ActivationDecision"
          },
          "analysis_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Analysis Id",
            "type": "string"
          },
          "authored_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Authored By",
            "type": "string"
          },
          "blocking_reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Blocking Reason Codes",
            "type": "array"
          },
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/SequencingCandidate"
            },
            "title": "Candidates",
            "type": "array"
          },
          "context": {
            "$ref": "#/components/schemas/SequencingContext"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "$ref": "#/components/schemas/SequenceDecision"
          },
          "effective": {
            "$ref": "#/components/schemas/EffectiveOverlay"
          },
          "engine": {
            "$ref": "#/components/schemas/OverlayEngineWitness"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "impact": {
            "$ref": "#/components/schemas/ImpactPreview"
          },
          "overlays": {
            "items": {
              "$ref": "#/components/schemas/OverlayRevision"
            },
            "title": "Overlays",
            "type": "array"
          },
          "properties": {
            "$ref": "#/components/schemas/PropertySweepReport"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OverlayReview"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "6.2.0",
            "default": "6.2.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "subject_overlay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Overlay Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "analysis_id",
          "idempotency_key",
          "subject_overlay_id",
          "overlays",
          "context",
          "candidates",
          "review",
          "effective",
          "activation",
          "impact",
          "decision",
          "properties",
          "activatable",
          "blocking_reason_codes",
          "engine",
          "request_sha256",
          "authored_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "SequencingOverlayResponse",
        "type": "object"
      },
      "SequencingOverlayWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "analyses": {
            "items": {
              "$ref": "#/components/schemas/SequencingOverlayProjection"
            },
            "title": "Analyses",
            "type": "array"
          },
          "evaluation": {
            "$ref": "#/components/schemas/OverlayEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.2.0",
            "default": "6.2.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/OverlayWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "analyses"],
        "title": "SequencingOverlayWorkspaceResponse",
        "type": "object"
      },
      "ServeCheckRequest": {
        "additionalProperties": false,
        "properties": {
          "admission": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AdmissionRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "candidate": {
            "$ref": "#/components/schemas/ModelCandidate"
          },
          "killed_candidate_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 200,
            "title": "Killed Candidate Ids",
            "type": "array"
          },
          "request": {
            "$ref": "#/components/schemas/ServeRequest"
          }
        },
        "required": ["candidate", "request"],
        "title": "ServeCheckRequest",
        "type": "object"
      },
      "ServeCheckResponse": {
        "additionalProperties": false,
        "properties": {
          "fallback": {
            "const": "not_configured",
            "default": "not_configured",
            "title": "Fallback",
            "type": "string"
          },
          "may_serve": {
            "title": "May Serve",
            "type": "boolean"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ModelAdmissionRefusal"
            },
            "title": "Refusals",
            "type": "array"
          }
        },
        "required": ["may_serve"],
        "title": "ServeCheckResponse",
        "type": "object"
      },
      "ServeRequest": {
        "additionalProperties": false,
        "description": "What is being asked of the model, so admission can be checked against it.",
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "data_class": {
            "enum": ["public_content", "pseudonymous_learner", "identified_learner"],
            "title": "Data Class",
            "type": "string"
          },
          "observed_fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Observed Fingerprint Sha256",
            "type": "string"
          },
          "region": {
            "enum": ["eu", "uk", "us", "unspecified"],
            "title": "Region",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "use": {
            "enum": ["tutoring", "authoring", "assessment_support", "analytics"],
            "title": "Use",
            "type": "string"
          }
        },
        "required": ["tenant_id", "use", "data_class", "region", "observed_fingerprint_sha256"],
        "title": "ServeRequest",
        "type": "object"
      },
      "ServiceStatusResponse": {
        "properties": {
          "error_rate": {
            "minimum": 0.0,
            "title": "Error Rate",
            "type": "number"
          },
          "last_checked": {
            "format": "date-time",
            "title": "Last Checked",
            "type": "string"
          },
          "latency": {
            "minimum": 0.0,
            "title": "Latency",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "status": {
            "enum": ["healthy", "degraded", "down"],
            "title": "Status",
            "type": "string"
          },
          "uptime": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Uptime",
            "type": "number"
          }
        },
        "required": ["name", "status", "latency", "uptime", "error_rate", "last_checked"],
        "title": "ServiceStatusResponse",
        "type": "object"
      },
      "SessionSummary": {
        "additionalProperties": false,
        "description": "What a session cost, drew on, and left behind.\n\nEvery context source is named with the revision it was read at, because a\nsummary saying only which source was used cannot be checked against what\nthat source said at the time.",
        "properties": {
          "config_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Revision Sha256",
            "type": "string"
          },
          "context_sources": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Context Sources",
            "type": "array"
          },
          "cost_minor_units": {
            "maximum": 10000000.0,
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "is_synthetic": {
            "const": true,
            "default": true,
            "title": "Is Synthetic",
            "type": "boolean"
          },
          "model_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model Version",
            "type": "string"
          },
          "persona_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Persona Id",
            "type": "string"
          },
          "persona_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Persona Version",
            "type": "string"
          },
          "redactions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RedactionNote"
            },
            "maxItems": 40,
            "title": "Redactions",
            "type": "array"
          },
          "retention": {
            "$ref": "#/components/schemas/RetentionSettings"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "turn_count": {
            "maximum": 200.0,
            "minimum": 1.0,
            "title": "Turn Count",
            "type": "integer"
          }
        },
        "required": [
          "session_id",
          "persona_id",
          "persona_version",
          "model_id",
          "model_version",
          "config_revision_sha256",
          "context_sources",
          "turn_count",
          "cost_minor_units",
          "retention"
        ],
        "title": "SessionSummary",
        "type": "object"
      },
      "SetValue": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "set",
            "default": "set",
            "title": "Kind",
            "type": "string"
          },
          "values": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Values",
            "type": "array"
          }
        },
        "title": "SetValue",
        "type": "object"
      },
      "SignRequest": {
        "additionalProperties": false,
        "description": "What a signer sends. There is no actor field: the actor is the caller.",
        "properties": {
          "conflict": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConflictDeclarationForGate"
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "gate": {
            "$ref": "#/components/schemas/HumanGate"
          },
          "rationale": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Rationale",
            "type": "string"
          },
          "role": {
            "enum": [
              "assessment_lead",
              "registrar",
              "integrity_lead",
              "data_protection_officer",
              "institution_admin"
            ],
            "title": "Role",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          }
        },
        "required": ["gate", "role", "subject_revision_sha256", "evidence_sha256", "rationale"],
        "title": "SignRequest",
        "type": "object"
      },
      "SignResponse": {
        "additionalProperties": false,
        "properties": {
          "outcome": {
            "$ref": "#/components/schemas/SignoffGateOutcome"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GateRefusal"
            },
            "title": "Refusals",
            "type": "array"
          },
          "signoff": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HumanSignoff"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": ["outcome"],
        "title": "SignResponse",
        "type": "object"
      },
      "SignalIntakeRequest": {
        "additionalProperties": false,
        "properties": {
          "candidate": {
            "$ref": "#/components/schemas/ModelCandidate"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/AbuseSignal"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Signals",
            "type": "array"
          }
        },
        "required": ["candidate", "signals"],
        "title": "SignalIntakeRequest",
        "type": "object"
      },
      "SignalIntakeResponse": {
        "additionalProperties": false,
        "properties": {
          "candidate": {
            "$ref": "#/components/schemas/ModelCandidate"
          },
          "kill_basis": {
            "enum": ["abuse", "drift", "credential", "cost", "operator_request"],
            "title": "Kill Basis",
            "type": "string"
          },
          "suspended_immediately": {
            "items": {
              "$ref": "#/components/schemas/AbuseSignal"
            },
            "title": "Suspended Immediately",
            "type": "array"
          }
        },
        "required": ["candidate", "suspended_immediately", "kill_basis"],
        "title": "SignalIntakeResponse",
        "type": "object"
      },
      "SignalProjection": {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "$ref": "#/components/schemas/Confidence"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/EvidenceLink"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "is_conclusion": {
            "const": false,
            "default": false,
            "title": "Is Conclusion",
            "type": "boolean"
          },
          "kind": {
            "enum": [
              "paste_external",
              "offplatform_search",
              "response_pattern_anomaly",
              "generated_text_classifier",
              "tutor_output_in_submission",
              "pace_anomaly",
              "device_fingerprint_change",
              "proctor_observation",
              "peer_collaboration_breach",
              "teacher_flag"
            ],
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "const": "classifier_indicates",
            "default": "classifier_indicates",
            "title": "Language",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "raw_outputs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RawOutput"
            },
            "maxItems": 20,
            "title": "Raw Outputs",
            "type": "array"
          },
          "refs": {
            "$ref": "#/components/schemas/ExactRefs"
          },
          "schema_version": {
            "const": "7.3.0",
            "default": "7.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "signal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signal Sha256",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/VersionedSource"
          },
          "state": {
            "enum": [
              "new",
              "under_review",
              "evidence_requested",
              "dismissed",
              "escalated",
              "case_opened"
            ],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Summary",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "signal_id",
          "refs",
          "source",
          "kind",
          "severity",
          "confidence",
          "evidence",
          "summary",
          "state",
          "version",
          "observed_at",
          "signal_sha256"
        ],
        "title": "SignalProjection",
        "type": "object"
      },
      "SignalProjectionBody": {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "$ref": "#/components/schemas/Confidence"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/EvidenceLink"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "is_conclusion": {
            "const": false,
            "default": false,
            "title": "Is Conclusion",
            "type": "boolean"
          },
          "kind": {
            "enum": [
              "paste_external",
              "offplatform_search",
              "response_pattern_anomaly",
              "generated_text_classifier",
              "tutor_output_in_submission",
              "pace_anomaly",
              "device_fingerprint_change",
              "proctor_observation",
              "peer_collaboration_breach",
              "teacher_flag"
            ],
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "const": "classifier_indicates",
            "default": "classifier_indicates",
            "title": "Language",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "raw_outputs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RawOutput"
            },
            "maxItems": 20,
            "title": "Raw Outputs",
            "type": "array"
          },
          "refs": {
            "$ref": "#/components/schemas/ExactRefs"
          },
          "schema_version": {
            "const": "7.3.0",
            "default": "7.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/VersionedSource"
          },
          "state": {
            "enum": [
              "new",
              "under_review",
              "evidence_requested",
              "dismissed",
              "escalated",
              "case_opened"
            ],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Summary",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "signal_id",
          "refs",
          "source",
          "kind",
          "severity",
          "confidence",
          "evidence",
          "summary",
          "state",
          "version",
          "observed_at"
        ],
        "title": "SignalProjectionBody",
        "type": "object"
      },
      "SignalQueueItem": {
        "additionalProperties": false,
        "description": "A signal as the queue shows it. Everything here is derived from the projection.",
        "properties": {
          "confidence_point": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence Point",
            "type": "number"
          },
          "confidence_width": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence Width",
            "type": "number"
          },
          "correlated_signal_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Correlated Signal Ids",
            "type": "array"
          },
          "deadline_at": {
            "format": "date-time",
            "title": "Deadline At",
            "type": "string"
          },
          "duplicate_of": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duplicate Of"
          },
          "evidence_freshness": {
            "enum": ["fresh", "aging", "stale"],
            "title": "Evidence Freshness",
            "type": "string"
          },
          "kind": {
            "enum": [
              "paste_external",
              "offplatform_search",
              "response_pattern_anomaly",
              "generated_text_classifier",
              "tutor_output_in_submission",
              "pace_anomaly",
              "device_fingerprint_change",
              "proctor_observation",
              "peer_collaboration_breach",
              "teacher_flag"
            ],
            "title": "Kind",
            "type": "string"
          },
          "language": {
            "const": "classifier_indicates",
            "default": "classifier_indicates",
            "title": "Language",
            "type": "string"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "overdue": {
            "title": "Overdue",
            "type": "boolean"
          },
          "priority_rank": {
            "minimum": 1.0,
            "title": "Priority Rank",
            "type": "integer"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "state": {
            "enum": [
              "new",
              "under_review",
              "evidence_requested",
              "dismissed",
              "escalated",
              "case_opened"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "signal_id",
          "kind",
          "severity",
          "state",
          "priority_rank",
          "deadline_at",
          "overdue",
          "evidence_freshness",
          "confidence_point",
          "confidence_width",
          "learner_digest"
        ],
        "title": "SignalQueueItem",
        "type": "object"
      },
      "SignedLink": {
        "additionalProperties": false,
        "description": "One issued link. Signed, scoped, and expiring.\n\nCarries no grant. Every field here narrows what the link is *for*; none of\nthem says who may follow it, and `authorize` is where that question is\nasked \u2014 of the actor holding it now, not the one it was issued to.",
        "properties": {
          "context": {
            "enum": ["course", "item", "attempt", "grade", "support"],
            "title": "Context",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "intent": {
            "enum": [
              "view_case",
              "view_appeal",
              "view_decision",
              "raise_appeal",
              "contact_support"
            ],
            "title": "Intent",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "nonce": {
            "maxLength": 64,
            "minLength": 16,
            "pattern": "^[a-f0-9]{16,64}$",
            "title": "Nonce",
            "type": "string"
          },
          "schema_version": {
            "const": "9.7.0",
            "default": "9.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/LinkSubject"
          }
        },
        "required": [
          "subject",
          "context",
          "intent",
          "issued_at",
          "expires_at",
          "nonce",
          "signature"
        ],
        "title": "SignedLink",
        "type": "object"
      },
      "SignoffCheckRequest": {
        "additionalProperties": false,
        "properties": {
          "carried": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CarriedSignoff"
            },
            "maxItems": 200,
            "title": "Carried",
            "type": "array"
          },
          "descriptor": {
            "$ref": "#/components/schemas/ContentDescriptor"
          },
          "gate_results": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewGateResult"
            },
            "maxItems": 40,
            "title": "Gate Results",
            "type": "array"
          },
          "overlay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InstitutionOverlay"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviewer": {
            "$ref": "#/components/schemas/ReviewerProfile"
          },
          "reviewers": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewerProfile"
            },
            "maxItems": 200,
            "title": "Reviewers",
            "type": "array"
          },
          "signoff": {
            "$ref": "#/components/schemas/DimensionSignoff"
          },
          "signoffs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DimensionSignoff"
            },
            "maxItems": 200,
            "title": "Signoffs",
            "type": "array"
          }
        },
        "required": ["descriptor", "signoff", "reviewer"],
        "title": "SignoffCheckRequest",
        "type": "object"
      },
      "SignoffCheckResponse": {
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "title": "Accepted",
            "type": "boolean"
          },
          "refusals": {
            "items": {
              "$ref": "#/components/schemas/SignoffRefusal"
            },
            "title": "Refusals",
            "type": "array"
          },
          "status": {
            "$ref": "#/components/schemas/ReviewStatus"
          }
        },
        "required": ["accepted", "refusals", "status"],
        "title": "SignoffCheckResponse",
        "type": "object"
      },
      "SignoffGateOutcome": {
        "additionalProperties": false,
        "description": "Where a gate stands: who has signed, and whether that is enough.",
        "properties": {
          "gate_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Gate Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "publish_high_stakes_assessment",
              "release_learner_grades",
              "issue_credential",
              "admit_provider_model",
              "uphold_integrity_finding",
              "release_learner_data_export"
            ],
            "title": "Kind",
            "type": "string"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          },
          "quorum": {
            "minimum": 1.0,
            "title": "Quorum",
            "type": "integer"
          },
          "refusals": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/GateRefusal"
            },
            "maxItems": 20,
            "title": "Refusals",
            "type": "array"
          },
          "roles_signed": {
            "default": [],
            "items": {
              "enum": [
                "assessment_lead",
                "registrar",
                "integrity_lead",
                "data_protection_officer",
                "institution_admin"
              ],
              "type": "string"
            },
            "maxItems": 10,
            "title": "Roles Signed",
            "type": "array"
          },
          "signatories": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 10,
            "title": "Signatories",
            "type": "array"
          }
        },
        "required": ["gate_id", "kind", "quorum", "passed"],
        "title": "SignoffGateOutcome",
        "type": "object"
      },
      "SignoffInvalidation": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "sme_correctness",
              "pedagogy_alignment",
              "accessibility",
              "fairness_cultural",
              "legal_rights",
              "publisher_target"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "reason": {
            "enum": ["affected_by_change", "expired", "template_superseded"],
            "title": "Reason",
            "type": "string"
          },
          "signoff_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signoff Id",
            "type": "string"
          }
        },
        "required": ["signoff_id", "dimension", "reason", "detail"],
        "title": "SignoffInvalidation",
        "type": "object"
      },
      "SignoffRefusal": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "eligibility": {
            "default": [],
            "items": {
              "enum": [
                "role_missing",
                "qualification_missing",
                "locale_mismatch",
                "is_author",
                "signed_excluded_dimension",
                "already_signed_this_dimension"
              ],
              "type": "string"
            },
            "title": "Eligibility",
            "type": "array"
          },
          "reason": {
            "enum": [
              "not_eligible",
              "wrong_content",
              "revision_mismatch",
              "template_mismatch",
              "gate_results_mismatch",
              "gate_floor_unmet",
              "sequence_not_met"
            ],
            "title": "Reason",
            "type": "string"
          }
        },
        "required": ["reason", "detail"],
        "title": "SignoffRefusal",
        "type": "object"
      },
      "SimulationBudget": {
        "additionalProperties": false,
        "properties": {
          "max_engine_calls": {
            "maximum": 200000.0,
            "minimum": 1.0,
            "title": "Max Engine Calls",
            "type": "integer"
          },
          "max_simulated_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Max Simulated Days",
            "type": "integer"
          },
          "max_steps_per_learner": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Max Steps Per Learner",
            "type": "integer"
          }
        },
        "required": ["max_steps_per_learner", "max_simulated_days", "max_engine_calls"],
        "title": "SimulationBudget",
        "type": "object"
      },
      "SimulationCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "persona_contract",
              "deterministic_generation",
              "bounded_isolated_run",
              "scenario_comparison",
              "isolation_suite"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "SimulationCorpusMetric",
        "type": "object"
      },
      "SimulationEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "allocation_method": {
            "const": "largest-remainder-hare-quota-v1",
            "title": "Allocation Method",
            "type": "string"
          },
          "eligibility_engine_id": {
            "const": "metis-item-pool-eligibility",
            "title": "Eligibility Engine Id",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-learner-simulation",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.5.0",
            "title": "Engine Version",
            "type": "string"
          },
          "isolation_method": {
            "const": "static-import-closure-plus-output-identity-scan-v1",
            "title": "Isolation Method",
            "type": "string"
          },
          "response_method": {
            "const": "seeded-rasch-response-with-declared-gain-v2",
            "title": "Response Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.5.0",
            "default": "6.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/SimulationToolWitness"
            },
            "maxItems": 20,
            "minItems": 3,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "stop_at_the_first_bound_and_name_it",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "allocation_method",
          "response_method",
          "isolation_method",
          "tools",
          "rules_sha256",
          "eligibility_engine_id",
          "unsupported_behavior"
        ],
        "title": "SimulationEngineWitness",
        "type": "object"
      },
      "SimulationEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "SimulationEvaluationCaseResult",
        "type": "object"
      },
      "SimulationEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/SimulationEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.5-learner-simulation-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "isolation": {
            "$ref": "#/components/schemas/IsolationReport"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/SimulationCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "isolation",
          "limitations"
        ],
        "title": "SimulationEvaluationReport",
        "type": "object"
      },
      "SimulationOutcome": {
        "additionalProperties": false,
        "properties": {
          "final_mastery_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Final Mastery Basis Points",
            "type": "integer"
          },
          "learner_ref": {
            "pattern": "^synthetic:[a-f0-9]{16}$",
            "title": "Learner Ref",
            "type": "string"
          },
          "objective_met": {
            "title": "Objective Met",
            "type": "boolean"
          },
          "persona_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Persona Id",
            "type": "string"
          },
          "simulated_days": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Simulated Days",
            "type": "integer"
          },
          "steps_taken": {
            "maximum": 500.0,
            "minimum": 0.0,
            "title": "Steps Taken",
            "type": "integer"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          },
          "terminal_reason": {
            "enum": [
              "objective_met",
              "no_eligible_item",
              "budget_steps_exhausted",
              "budget_days_exhausted",
              "budget_engine_calls_exhausted"
            ],
            "title": "Terminal Reason",
            "type": "string"
          }
        },
        "required": [
          "learner_ref",
          "persona_id",
          "steps_taken",
          "simulated_days",
          "final_mastery_basis_points",
          "objective_met",
          "terminal_reason"
        ],
        "title": "SimulationOutcome",
        "type": "object"
      },
      "SimulationRun": {
        "additionalProperties": false,
        "properties": {
          "budget": {
            "$ref": "#/components/schemas/SimulationBudget"
          },
          "budget_state": {
            "$ref": "#/components/schemas/BudgetState"
          },
          "delivery_side_effects": {
            "const": 0,
            "default": 0,
            "title": "Delivery Side Effects",
            "type": "integer"
          },
          "gradebook_writes": {
            "const": 0,
            "default": 0,
            "title": "Gradebook Writes",
            "type": "integer"
          },
          "outcome_distribution": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "enum": [
                    "objective_met",
                    "no_eligible_item",
                    "budget_steps_exhausted",
                    "budget_days_exhausted",
                    "budget_engine_calls_exhausted"
                  ],
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ],
              "type": "array"
            },
            "maxItems": 8,
            "title": "Outcome Distribution",
            "type": "array"
          },
          "outcomes": {
            "items": {
              "$ref": "#/components/schemas/SimulationOutcome"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Outcomes",
            "type": "array"
          },
          "scenario_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Scenario Id",
            "type": "string"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/SimulationStep"
            },
            "maxItems": 20000,
            "title": "Steps",
            "type": "array"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": [
          "scenario_id",
          "budget",
          "budget_state",
          "steps",
          "outcomes",
          "outcome_distribution"
        ],
        "title": "SimulationRun",
        "type": "object"
      },
      "SimulationScenario": {
        "additionalProperties": false,
        "properties": {
          "eligibility_rule": {
            "$ref": "#/components/schemas/EligibilityRule"
          },
          "objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Objective Id",
            "type": "string"
          },
          "scenario_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Scenario Id",
            "type": "string"
          },
          "selection_rule": {
            "$ref": "#/components/schemas/SelectionRule"
          },
          "target_mastery_basis_points": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Target Mastery Basis Points",
            "type": "integer"
          },
          "title": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "scenario_id",
          "title",
          "eligibility_rule",
          "selection_rule",
          "target_mastery_basis_points",
          "objective_id"
        ],
        "title": "SimulationScenario",
        "type": "object"
      },
      "SimulationStep": {
        "additionalProperties": false,
        "properties": {
          "eligible_count": {
            "minimum": 0.0,
            "title": "Eligible Count",
            "type": "integer"
          },
          "engine_calls_used": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Engine Calls Used",
            "type": "integer"
          },
          "excluded_count": {
            "minimum": 0.0,
            "title": "Excluded Count",
            "type": "integer"
          },
          "learner_ref": {
            "pattern": "^synthetic:[a-f0-9]{16}$",
            "title": "Learner Ref",
            "type": "string"
          },
          "mastery_after_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Mastery After Basis Points",
            "type": "integer"
          },
          "mastery_before_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Mastery Before Basis Points",
            "type": "integer"
          },
          "ordinal": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "responded_correctly": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Responded Correctly"
          },
          "selected_item_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Item Id"
          },
          "simulated_day": {
            "maximum": 3650.0,
            "minimum": 0.0,
            "title": "Simulated Day",
            "type": "integer"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": [
          "ordinal",
          "learner_ref",
          "simulated_day",
          "selected_item_id",
          "eligible_count",
          "excluded_count",
          "responded_correctly",
          "mastery_before_basis_points",
          "mastery_after_basis_points",
          "engine_calls_used"
        ],
        "title": "SimulationStep",
        "type": "object"
      },
      "SimulationToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "SimulationToolWitness",
        "type": "object"
      },
      "SimulationWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "budget_exhausted_runs": {
            "minimum": 0.0,
            "title": "Budget Exhausted Runs",
            "type": "integer"
          },
          "gradebook_writes": {
            "const": 0,
            "default": 0,
            "title": "Gradebook Writes",
            "type": "integer"
          },
          "real_learner_records": {
            "const": 0,
            "default": 0,
            "title": "Real Learner Records",
            "type": "integer"
          },
          "scenarios_run": {
            "minimum": 0.0,
            "title": "Scenarios Run",
            "type": "integer"
          },
          "simulations": {
            "minimum": 0.0,
            "title": "Simulations",
            "type": "integer"
          },
          "synthetic_learners": {
            "minimum": 0.0,
            "title": "Synthetic Learners",
            "type": "integer"
          }
        },
        "required": ["simulations", "synthetic_learners", "scenarios_run", "budget_exhausted_runs"],
        "title": "SimulationWorkspaceSummary",
        "type": "object"
      },
      "SlaPause": {
        "additionalProperties": false,
        "description": "Time the clock was not running, and why. An open pause has no end yet.",
        "properties": {
          "ended_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended At"
          },
          "pause_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pause Id",
            "type": "string"
          },
          "reason": {
            "enum": [
              "awaiting_learner",
              "awaiting_evidence",
              "awaiting_third_party",
              "reviewer_absent"
            ],
            "title": "Reason",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          }
        },
        "required": ["pause_id", "reason", "started_at"],
        "title": "SlaPause",
        "type": "object"
      },
      "SlaPolicy": {
        "additionalProperties": false,
        "description": "One policy: a calendar, the targets, and where an overdue review goes.",
        "properties": {
          "calendar": {
            "$ref": "#/components/schemas/BusinessCalendar"
          },
          "escalation": {
            "items": {
              "$ref": "#/components/schemas/EscalationTier"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Escalation",
            "type": "array"
          },
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          }
        },
        "required": ["policy_id", "calendar", "escalation"],
        "title": "SlaPolicy",
        "type": "object"
      },
      "SlaStatus": {
        "additionalProperties": false,
        "description": "Where a task stands against its clock. Every number is computed, none asserted.",
        "properties": {
          "breach_state": {
            "enum": ["on_track", "warned", "breached"],
            "title": "Breach State",
            "type": "string"
          },
          "due_at": {
            "format": "date-time",
            "title": "Due At",
            "type": "string"
          },
          "elapsed_business_seconds": {
            "minimum": 0.0,
            "title": "Elapsed Business Seconds",
            "type": "integer"
          },
          "escalated_to_tier": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalated To Tier"
          },
          "paused_business_seconds": {
            "minimum": 0.0,
            "title": "Paused Business Seconds",
            "type": "integer"
          },
          "priority": {
            "enum": ["routine", "elevated", "urgent"],
            "title": "Priority",
            "type": "string"
          },
          "target_business_hours": {
            "minimum": 1.0,
            "title": "Target Business Hours",
            "type": "integer"
          },
          "task_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Task Id",
            "type": "string"
          }
        },
        "required": [
          "task_id",
          "priority",
          "target_business_hours",
          "elapsed_business_seconds",
          "paused_business_seconds",
          "due_at",
          "breach_state"
        ],
        "title": "SlaStatus",
        "type": "object"
      },
      "SlaStatusRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "policy": {
            "$ref": "#/components/schemas/SlaPolicy"
          },
          "tasks": {
            "items": {
              "$ref": "#/components/schemas/ReviewTask"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Tasks",
            "type": "array"
          }
        },
        "required": ["policy", "tasks"],
        "title": "SlaStatusRequest",
        "type": "object"
      },
      "SlaStatusResponse": {
        "additionalProperties": false,
        "properties": {
          "statuses": {
            "items": {
              "$ref": "#/components/schemas/SlaStatus"
            },
            "title": "Statuses",
            "type": "array"
          }
        },
        "required": ["statuses"],
        "title": "SlaStatusResponse",
        "type": "object"
      },
      "SolutionProcessAggregateResult": {
        "additionalProperties": false,
        "properties": {
          "all_error_step_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 500,
            "title": "All Error Step Ids",
            "type": "array"
          },
          "correct_steps": {
            "minimum": 0.0,
            "title": "Correct Steps",
            "type": "integer"
          },
          "final_answer_does_not_override_process": {
            "const": true,
            "default": true,
            "title": "Final Answer Does Not Override Process",
            "type": "boolean"
          },
          "final_answer_state": {
            "enum": [
              "correct",
              "incorrect",
              "partially_supported",
              "unknown",
              "unsupported",
              "timeout"
            ],
            "title": "Final Answer State",
            "type": "string"
          },
          "first_error_step_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "First Error Step Id"
          },
          "process_passed": {
            "title": "Process Passed",
            "type": "boolean"
          },
          "state": {
            "enum": [
              "correct",
              "incorrect",
              "partially_supported",
              "unknown",
              "unsupported",
              "timeout"
            ],
            "title": "State",
            "type": "string"
          },
          "total_steps": {
            "minimum": 1.0,
            "title": "Total Steps",
            "type": "integer"
          }
        },
        "required": [
          "state",
          "first_error_step_id",
          "all_error_step_ids",
          "correct_steps",
          "total_steps",
          "process_passed",
          "final_answer_state"
        ],
        "title": "SolutionProcessAggregateResult",
        "type": "object"
      },
      "SolutionProcessAssumption": {
        "additionalProperties": false,
        "properties": {
          "assumption_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Assumption Id",
            "type": "string"
          },
          "expression": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SolutionProcessExpression"
              },
              {
                "type": "null"
              }
            ]
          },
          "justification": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Justification",
            "type": "string"
          },
          "kind": {
            "enum": ["domain", "nonzero", "given", "lemma"],
            "title": "Kind",
            "type": "string"
          },
          "statement": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "claim": "#/components/schemas/SolutionProcessClaimStatement",
                    "quantity": "#/components/schemas/SolutionProcessQuantityStatement",
                    "relation": "#/components/schemas/SolutionProcessRelationStatement"
                  },
                  "propertyName": "statement_kind"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/SolutionProcessRelationStatement"
                  },
                  {
                    "$ref": "#/components/schemas/SolutionProcessClaimStatement"
                  },
                  {
                    "$ref": "#/components/schemas/SolutionProcessQuantityStatement"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Statement"
          }
        },
        "required": ["assumption_id", "kind", "justification"],
        "title": "SolutionProcessAssumption",
        "type": "object"
      },
      "SolutionProcessClaimStatement": {
        "additionalProperties": false,
        "properties": {
          "antecedents": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 50,
            "title": "Antecedents",
            "type": "array"
          },
          "conclusion": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Conclusion",
            "type": "string"
          },
          "display_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Display Text",
            "type": "string"
          },
          "source_span": {
            "$ref": "#/components/schemas/SolutionProcessSourceSpan"
          },
          "statement_kind": {
            "const": "claim",
            "default": "claim",
            "title": "Statement Kind",
            "type": "string"
          }
        },
        "required": ["conclusion", "display_text", "source_span"],
        "title": "SolutionProcessClaimStatement",
        "type": "object"
      },
      "SolutionProcessCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "accuracy": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Accuracy",
            "type": "number"
          },
          "dimension": {
            "enum": [
              "localized_error",
              "assumption_domain",
              "invalid_operation",
              "dependency_reasoning",
              "alternative_path",
              "aggregation",
              "final_answer_separation"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "accuracy", "wilson_low", "wilson_high"],
        "title": "SolutionProcessCorpusMetric",
        "type": "object"
      },
      "SolutionProcessEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "engine_id": {
            "const": "metis-solution-process-verifier",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "5.23.0",
            "title": "Engine Version",
            "type": "string"
          },
          "expression_language": {
            "const": "metis-ascii-math-v1",
            "title": "Expression Language",
            "type": "string"
          },
          "proof_system": {
            "const": "single-variable-algebra-and-horn-claims-v1",
            "title": "Proof System",
            "type": "string"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessRuleWitness"
            },
            "maxItems": 30,
            "minItems": 1,
            "title": "Rules",
            "type": "array"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "5.23.0",
            "default": "5.23.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessToolWitness"
            },
            "maxItems": 20,
            "minItems": 3,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "fail_closed_as_unknown_or_unsupported",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "proof_system",
          "expression_language",
          "tools",
          "rules",
          "unsupported_behavior",
          "rules_sha256"
        ],
        "title": "SolutionProcessEngineWitness",
        "type": "object"
      },
      "SolutionProcessEvaluationCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expected Code",
            "type": "string"
          },
          "expected_state": {
            "enum": [
              "correct",
              "incorrect",
              "partially_supported",
              "unknown",
              "unsupported",
              "timeout"
            ],
            "title": "Expected State",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Observed Code",
            "type": "string"
          },
          "observed_state": {
            "enum": [
              "correct",
              "incorrect",
              "partially_supported",
              "unknown",
              "unsupported",
              "timeout"
            ],
            "title": "Observed State",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_state",
          "observed_state",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "SolutionProcessEvaluationCaseResult",
        "type": "object"
      },
      "SolutionProcessEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "case_count": {
            "minimum": 1.0,
            "title": "Case Count",
            "type": "integer"
          },
          "cases": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessEvaluationCaseResult"
            },
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m5.23-solution-process-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "corpus_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Corpus Sha256",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessCorpusMetric"
            },
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          }
        },
        "required": [
          "corpus_id",
          "corpus_sha256",
          "generated_at",
          "deterministic_seed",
          "case_count",
          "metrics",
          "cases",
          "fixture_families",
          "limitations"
        ],
        "title": "SolutionProcessEvaluationReport",
        "type": "object"
      },
      "SolutionProcessEvidenceBinding": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "$ref": "#/components/schemas/SolutionProcessToolWitness"
          },
          "evidence_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "excerpt": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Excerpt",
            "type": "string"
          },
          "excerpt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Excerpt Sha256",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "source_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Revision Id",
            "type": "string"
          },
          "source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Revision Sha256",
            "type": "string"
          },
          "statement": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SolutionProcessClaimStatement",
                "quantity": "#/components/schemas/SolutionProcessQuantityStatement",
                "relation": "#/components/schemas/SolutionProcessRelationStatement"
              },
              "propertyName": "statement_kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SolutionProcessRelationStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessClaimStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessQuantityStatement"
              }
            ],
            "title": "Statement"
          }
        },
        "required": [
          "evidence_id",
          "source_id",
          "source_revision_id",
          "source_revision_sha256",
          "statement",
          "excerpt",
          "excerpt_sha256",
          "authority"
        ],
        "title": "SolutionProcessEvidenceBinding",
        "type": "object"
      },
      "SolutionProcessExpression": {
        "additionalProperties": false,
        "properties": {
          "expression_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Expression Id",
            "type": "string"
          },
          "language": {
            "const": "metis-ascii-math-v1",
            "default": "metis-ascii-math-v1",
            "title": "Language",
            "type": "string"
          },
          "source_span": {
            "$ref": "#/components/schemas/SolutionProcessSourceSpan"
          },
          "text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["expression_id", "text", "source_span"],
        "title": "SolutionProcessExpression",
        "type": "object"
      },
      "SolutionProcessFinalAnswer": {
        "additionalProperties": false,
        "properties": {
          "candidate": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SolutionProcessClaimStatement",
                "quantity": "#/components/schemas/SolutionProcessQuantityStatement",
                "relation": "#/components/schemas/SolutionProcessRelationStatement"
              },
              "propertyName": "statement_kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SolutionProcessRelationStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessClaimStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessQuantityStatement"
              }
            ],
            "title": "Candidate"
          },
          "expected": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SolutionProcessClaimStatement",
                "quantity": "#/components/schemas/SolutionProcessQuantityStatement",
                "relation": "#/components/schemas/SolutionProcessRelationStatement"
              },
              "propertyName": "statement_kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SolutionProcessRelationStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessClaimStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessQuantityStatement"
              }
            ],
            "title": "Expected"
          },
          "verification_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verification Id",
            "type": "string"
          }
        },
        "required": ["verification_id", "candidate", "expected"],
        "title": "SolutionProcessFinalAnswer",
        "type": "object"
      },
      "SolutionProcessFinalAnswerResult": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "elapsed_millis": {
            "minimum": 0.0,
            "title": "Elapsed Millis",
            "type": "integer"
          },
          "exact_output": {
            "maxLength": 20000,
            "title": "Exact Output",
            "type": "string"
          },
          "expected_output": {
            "maxLength": 20000,
            "title": "Expected Output",
            "type": "string"
          },
          "localized_span": {
            "$ref": "#/components/schemas/SolutionProcessSourceSpan"
          },
          "state": {
            "enum": [
              "correct",
              "incorrect",
              "partially_supported",
              "unknown",
              "unsupported",
              "timeout"
            ],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "trace": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessTraceEntry"
            },
            "maxItems": 1000,
            "title": "Trace",
            "type": "array"
          },
          "verification_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verification Id",
            "type": "string"
          }
        },
        "required": [
          "verification_id",
          "state",
          "code",
          "summary",
          "exact_output",
          "expected_output",
          "localized_span",
          "trace",
          "elapsed_millis"
        ],
        "title": "SolutionProcessFinalAnswerResult",
        "type": "object"
      },
      "SolutionProcessPolicyDimension": {
        "additionalProperties": false,
        "properties": {
          "dimension": {
            "enum": ["process", "final_answer", "domain", "evidence"],
            "title": "Dimension",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          },
          "state": {
            "enum": ["pass", "fail", "manual_review"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["dimension", "state", "reason_codes"],
        "title": "SolutionProcessPolicyDimension",
        "type": "object"
      },
      "SolutionProcessPolicyVerdict": {
        "additionalProperties": false,
        "properties": {
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessPolicyDimension"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Dimensions",
            "type": "array"
          },
          "final_answer_cannot_override_process": {
            "const": true,
            "default": true,
            "title": "Final Answer Cannot Override Process",
            "type": "boolean"
          },
          "human_can_override_raw_result": {
            "const": false,
            "default": false,
            "title": "Human Can Override Raw Result",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["allow", "block", "manual_review"],
            "title": "Outcome",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Reason Codes",
            "type": "array"
          }
        },
        "required": ["outcome", "dimensions", "reason_codes"],
        "title": "SolutionProcessPolicyVerdict",
        "type": "object"
      },
      "SolutionProcessPremise": {
        "additionalProperties": false,
        "properties": {
          "premise_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Premise Id",
            "type": "string"
          },
          "statement": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SolutionProcessClaimStatement",
                "quantity": "#/components/schemas/SolutionProcessQuantityStatement",
                "relation": "#/components/schemas/SolutionProcessRelationStatement"
              },
              "propertyName": "statement_kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SolutionProcessRelationStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessClaimStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessQuantityStatement"
              }
            ],
            "title": "Statement"
          }
        },
        "required": ["premise_id", "statement"],
        "title": "SolutionProcessPremise",
        "type": "object"
      },
      "SolutionProcessProjection": {
        "additionalProperties": false,
        "properties": {
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessReviewDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "run": {
            "$ref": "#/components/schemas/SolutionProcessVerificationRunResponse"
          },
          "target_revision_current": {
            "title": "Target Revision Current",
            "type": "boolean"
          }
        },
        "required": ["run", "target_revision_current", "decisions"],
        "title": "SolutionProcessProjection",
        "type": "object"
      },
      "SolutionProcessQuantityStatement": {
        "additionalProperties": false,
        "properties": {
          "dimensionality": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Dimensionality",
            "type": "string"
          },
          "source_span": {
            "$ref": "#/components/schemas/SolutionProcessSourceSpan"
          },
          "statement_kind": {
            "const": "quantity",
            "default": "quantity",
            "title": "Statement Kind",
            "type": "string"
          },
          "unit": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          },
          "value": {
            "maxLength": 96,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,40})?(?:[eE][+-]?[0-9]{1,4})?$",
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "unit", "dimensionality", "source_span"],
        "title": "SolutionProcessQuantityStatement",
        "type": "object"
      },
      "SolutionProcessRelation": {
        "additionalProperties": false,
        "properties": {
          "left": {
            "$ref": "#/components/schemas/SolutionProcessExpression"
          },
          "relation": {
            "enum": ["eq", "ne", "lt", "le", "gt", "ge"],
            "title": "Relation",
            "type": "string"
          },
          "right": {
            "$ref": "#/components/schemas/SolutionProcessExpression"
          }
        },
        "required": ["left", "relation", "right"],
        "title": "SolutionProcessRelation",
        "type": "object"
      },
      "SolutionProcessRelationStatement": {
        "additionalProperties": false,
        "properties": {
          "relation": {
            "$ref": "#/components/schemas/SolutionProcessRelation"
          },
          "statement_kind": {
            "const": "relation",
            "default": "relation",
            "title": "Statement Kind",
            "type": "string"
          }
        },
        "required": ["relation"],
        "title": "SolutionProcessRelationStatement",
        "type": "object"
      },
      "SolutionProcessResourceLimits": {
        "additionalProperties": false,
        "properties": {
          "capabilities_dropped": {
            "const": true,
            "default": true,
            "title": "Capabilities Dropped",
            "type": "boolean"
          },
          "cpu_seconds": {
            "default": 4,
            "maximum": 15.0,
            "minimum": 1.0,
            "title": "Cpu Seconds",
            "type": "integer"
          },
          "memory_bytes": {
            "default": 805306368,
            "maximum": 1610612736.0,
            "minimum": 268435456.0,
            "title": "Memory Bytes",
            "type": "integer"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "no_new_privileges": {
            "const": true,
            "default": true,
            "title": "No New Privileges",
            "type": "boolean"
          },
          "open_files": {
            "default": 64,
            "maximum": 256.0,
            "minimum": 16.0,
            "title": "Open Files",
            "type": "integer"
          },
          "output_bytes": {
            "default": 1048576,
            "maximum": 4194304.0,
            "minimum": 16384.0,
            "title": "Output Bytes",
            "type": "integer"
          },
          "process_count": {
            "default": 16,
            "maximum": 64.0,
            "minimum": 1.0,
            "title": "Process Count",
            "type": "integer"
          },
          "root_filesystem_read_only": {
            "const": true,
            "default": true,
            "title": "Root Filesystem Read Only",
            "type": "boolean"
          },
          "wall_millis": {
            "default": 8000,
            "maximum": 30000.0,
            "minimum": 500.0,
            "title": "Wall Millis",
            "type": "integer"
          },
          "writable_bytes": {
            "default": 16777216,
            "maximum": 67108864.0,
            "minimum": 1048576.0,
            "title": "Writable Bytes",
            "type": "integer"
          }
        },
        "title": "SolutionProcessResourceLimits",
        "type": "object"
      },
      "SolutionProcessReviewCorrection": {
        "additionalProperties": false,
        "properties": {
          "correction_kind": {
            "enum": [
              "confirm_verifier",
              "request_evidence",
              "propose_rewrite",
              "flag_rule_mapping"
            ],
            "title": "Correction Kind",
            "type": "string"
          },
          "note": {
            "maxLength": 4000,
            "minLength": 10,
            "title": "Note",
            "type": "string"
          },
          "proposed_text": {
            "anyOf": [
              {
                "maxLength": 20000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proposed Text"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          }
        },
        "required": ["step_id", "correction_kind", "note"],
        "title": "SolutionProcessReviewCorrection",
        "type": "object"
      },
      "SolutionProcessReviewDecision": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["acknowledge", "request_correction", "escalate_unknown"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "corrections": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessReviewCorrection"
            },
            "title": "Corrections",
            "type": "array"
          },
          "decision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Decision Id",
            "type": "string"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "raw_result_overridden": {
            "const": false,
            "default": false,
            "title": "Raw Result Overridden",
            "type": "boolean"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "5.23.0",
            "default": "5.23.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "run_id",
          "action",
          "comment",
          "corrections",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "expected_run_sha256",
          "self_sha256"
        ],
        "title": "SolutionProcessReviewDecision",
        "type": "object"
      },
      "SolutionProcessReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["acknowledge", "request_correction", "escalate_unknown"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 20,
            "title": "Comment",
            "type": "string"
          },
          "corrections": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SolutionProcessReviewCorrection"
            },
            "maxItems": 100,
            "title": "Corrections",
            "type": "array"
          },
          "expected_run_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Run Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "expected_run_sha256", "action", "comment"],
        "title": "SolutionProcessReviewRequest",
        "type": "object"
      },
      "SolutionProcessRuleWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["rule_id", "version", "artifact_sha256", "purpose"],
        "title": "SolutionProcessRuleWitness",
        "type": "object"
      },
      "SolutionProcessSandboxReceipt": {
        "additionalProperties": false,
        "properties": {
          "exit_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exit Code"
          },
          "limits": {
            "$ref": "#/components/schemas/SolutionProcessResourceLimits"
          },
          "namespaces_unshared": {
            "items": {
              "enum": ["user", "ipc", "pid", "network", "uts", "cgroup"],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Namespaces Unshared",
            "type": "array"
          },
          "network_probe_blocked": {
            "title": "Network Probe Blocked",
            "type": "boolean"
          },
          "output_truncated": {
            "title": "Output Truncated",
            "type": "boolean"
          },
          "ran_as_uid": {
            "minimum": 0.0,
            "title": "Ran As Uid",
            "type": "integer"
          },
          "root_write_probe_blocked": {
            "title": "Root Write Probe Blocked",
            "type": "boolean"
          },
          "sandbox_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Sandbox Id",
            "type": "string"
          },
          "sandbox_tool": {
            "$ref": "#/components/schemas/SolutionProcessToolWitness"
          },
          "stderr": {
            "maxLength": 4000,
            "title": "Stderr",
            "type": "string"
          },
          "stdout_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Stdout Sha256",
            "type": "string"
          },
          "timed_out": {
            "title": "Timed Out",
            "type": "boolean"
          }
        },
        "required": [
          "sandbox_id",
          "sandbox_tool",
          "namespaces_unshared",
          "network_probe_blocked",
          "root_write_probe_blocked",
          "ran_as_uid",
          "limits",
          "exit_code",
          "timed_out",
          "output_truncated",
          "stdout_sha256",
          "stderr"
        ],
        "title": "SolutionProcessSandboxReceipt",
        "type": "object"
      },
      "SolutionProcessSourceSpan": {
        "additionalProperties": false,
        "properties": {
          "end": {
            "exclusiveMinimum": 0.0,
            "maximum": 200000.0,
            "title": "End",
            "type": "integer"
          },
          "source_kind": {
            "enum": ["target", "reference", "evidence"],
            "title": "Source Kind",
            "type": "string"
          },
          "start": {
            "maximum": 200000.0,
            "minimum": 0.0,
            "title": "Start",
            "type": "integer"
          },
          "text": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": ["source_kind", "start", "end", "text", "text_sha256"],
        "title": "SolutionProcessSourceSpan",
        "type": "object"
      },
      "SolutionProcessStep": {
        "additionalProperties": false,
        "properties": {
          "assumption_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Assumption Ids",
            "type": "array"
          },
          "depends_on": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Depends On",
            "type": "array"
          },
          "evidence_ids": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Evidence Ids",
            "type": "array"
          },
          "intermediate_result": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SolutionProcessClaimStatement",
                "quantity": "#/components/schemas/SolutionProcessQuantityStatement",
                "relation": "#/components/schemas/SolutionProcessRelationStatement"
              },
              "propertyName": "statement_kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SolutionProcessRelationStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessClaimStatement"
              },
              {
                "$ref": "#/components/schemas/SolutionProcessQuantityStatement"
              }
            ],
            "title": "Intermediate Result"
          },
          "justification": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Justification",
            "type": "string"
          },
          "ordinal": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "rule_argument": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SolutionProcessExpression"
              },
              {
                "type": "null"
              }
            ]
          },
          "rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          }
        },
        "required": ["step_id", "ordinal", "rule_id", "justification", "intermediate_result"],
        "title": "SolutionProcessStep",
        "type": "object"
      },
      "SolutionProcessStepResult": {
        "additionalProperties": false,
        "properties": {
          "assumption_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Assumption Ids",
            "type": "array"
          },
          "code": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Code",
            "type": "string"
          },
          "dependency_step_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Dependency Step Ids",
            "type": "array"
          },
          "elapsed_millis": {
            "minimum": 0.0,
            "title": "Elapsed Millis",
            "type": "integer"
          },
          "evidence_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Evidence Ids",
            "type": "array"
          },
          "extraneous_solutions": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Extraneous Solutions",
            "type": "array"
          },
          "localized_span": {
            "$ref": "#/components/schemas/SolutionProcessSourceSpan"
          },
          "lost_solutions": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Lost Solutions",
            "type": "array"
          },
          "missing_assumption_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Missing Assumption Ids",
            "type": "array"
          },
          "missing_evidence_ids": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Missing Evidence Ids",
            "type": "array"
          },
          "ordinal": {
            "maximum": 500.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "state": {
            "enum": [
              "correct",
              "incorrect",
              "partially_supported",
              "unknown",
              "unsupported",
              "timeout"
            ],
            "title": "State",
            "type": "string"
          },
          "step_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Step Id",
            "type": "string"
          },
          "summary": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          },
          "trace": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessTraceEntry"
            },
            "maxItems": 1000,
            "title": "Trace",
            "type": "array"
          },
          "verified_rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verified Rule Id",
            "type": "string"
          }
        },
        "required": [
          "step_id",
          "ordinal",
          "state",
          "code",
          "summary",
          "localized_span",
          "dependency_step_ids",
          "assumption_ids",
          "evidence_ids",
          "verified_rule_id",
          "trace",
          "missing_assumption_ids",
          "missing_evidence_ids",
          "lost_solutions",
          "extraneous_solutions",
          "elapsed_millis"
        ],
        "title": "SolutionProcessStepResult",
        "type": "object"
      },
      "SolutionProcessTarget": {
        "additionalProperties": false,
        "properties": {
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "source_text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Source Text",
            "type": "string"
          },
          "source_text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Text Sha256",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          },
          "target_kind": {
            "const": "worked_solution",
            "default": "worked_solution",
            "title": "Target Kind",
            "type": "string"
          }
        },
        "required": [
          "target_id",
          "revision_id",
          "revision_sha256",
          "locale",
          "source_text",
          "source_text_sha256"
        ],
        "title": "SolutionProcessTarget",
        "type": "object"
      },
      "SolutionProcessToolWitness": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Sha256",
            "type": "string"
          },
          "purpose": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Purpose",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "artifact_sha256", "purpose"],
        "title": "SolutionProcessToolWitness",
        "type": "object"
      },
      "SolutionProcessTraceEntry": {
        "additionalProperties": false,
        "properties": {
          "input": {
            "maxLength": 20000,
            "title": "Input",
            "type": "string"
          },
          "operation": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Operation",
            "type": "string"
          },
          "output": {
            "maxLength": 20000,
            "title": "Output",
            "type": "string"
          },
          "sequence": {
            "maximum": 1000.0,
            "minimum": 1.0,
            "title": "Sequence",
            "type": "integer"
          },
          "state": {
            "enum": [
              "correct",
              "incorrect",
              "partially_supported",
              "unknown",
              "unsupported",
              "timeout"
            ],
            "title": "State",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          }
        },
        "required": ["sequence", "tool_id", "operation", "input", "output", "state"],
        "title": "SolutionProcessTraceEntry",
        "type": "object"
      },
      "SolutionProcessVariable": {
        "additionalProperties": false,
        "properties": {
          "domain": {
            "enum": [
              "real",
              "integer",
              "natural",
              "positive_real",
              "nonnegative_real",
              "nonzero_real"
            ],
            "title": "Domain",
            "type": "string"
          },
          "name": {
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,31}$",
            "title": "Name",
            "type": "string"
          },
          "source_span": {
            "$ref": "#/components/schemas/SolutionProcessSourceSpan"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": ["name", "domain", "source_span"],
        "title": "SolutionProcessVariable",
        "type": "object"
      },
      "SolutionProcessVerificationRunRequest": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SolutionProcessAssumption"
            },
            "maxItems": 100,
            "title": "Assumptions",
            "type": "array"
          },
          "deterministic_seed": {
            "maxLength": 160,
            "minLength": 16,
            "title": "Deterministic Seed",
            "type": "string"
          },
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SolutionProcessEvidenceBinding"
            },
            "maxItems": 100,
            "title": "Evidence",
            "type": "array"
          },
          "final_answer": {
            "$ref": "#/components/schemas/SolutionProcessFinalAnswer"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/SolutionProcessResourceLimits"
          },
          "premises": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SolutionProcessPremise"
            },
            "maxItems": 100,
            "title": "Premises",
            "type": "array"
          },
          "risk": {
            "default": "general",
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "schema_version": {
            "const": "5.23.0",
            "default": "5.23.0",
            "title": "Schema Version",
            "type": "string"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessStep"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Steps",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/SolutionProcessTarget"
          },
          "variables": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/SolutionProcessVariable"
            },
            "maxItems": 100,
            "title": "Variables",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "target",
          "steps",
          "final_answer",
          "deterministic_seed",
          "limits"
        ],
        "title": "SolutionProcessVerificationRunRequest",
        "type": "object"
      },
      "SolutionProcessVerificationRunResponse": {
        "additionalProperties": false,
        "properties": {
          "aggregate": {
            "$ref": "#/components/schemas/SolutionProcessAggregateResult"
          },
          "assumptions": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessAssumption"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "deterministic_seed": {
            "title": "Deterministic Seed",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/SolutionProcessEngineWitness"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessEvidenceBinding"
            },
            "title": "Evidence",
            "type": "array"
          },
          "final_answer": {
            "$ref": "#/components/schemas/SolutionProcessFinalAnswer"
          },
          "final_answer_result": {
            "$ref": "#/components/schemas/SolutionProcessFinalAnswerResult"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/SolutionProcessResourceLimits"
          },
          "policy": {
            "$ref": "#/components/schemas/SolutionProcessPolicyVerdict"
          },
          "premises": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessPremise"
            },
            "title": "Premises",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "risk": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Risk",
            "type": "string"
          },
          "run_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Run Id",
            "type": "string"
          },
          "sandbox": {
            "$ref": "#/components/schemas/SolutionProcessSandboxReceipt"
          },
          "schema_version": {
            "const": "5.23.0",
            "default": "5.23.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "step_results": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessStepResult"
            },
            "title": "Step Results",
            "type": "array"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessStep"
            },
            "title": "Steps",
            "type": "array"
          },
          "target": {
            "$ref": "#/components/schemas/SolutionProcessTarget"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "variables": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessVariable"
            },
            "title": "Variables",
            "type": "array"
          }
        },
        "required": [
          "run_id",
          "idempotency_key",
          "target",
          "variables",
          "premises",
          "assumptions",
          "evidence",
          "steps",
          "final_answer",
          "deterministic_seed",
          "limits",
          "risk",
          "step_results",
          "final_answer_result",
          "aggregate",
          "policy",
          "engine",
          "sandbox",
          "request_sha256",
          "requested_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "SolutionProcessVerificationRunResponse",
        "type": "object"
      },
      "SolutionProcessWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "evaluation": {
            "$ref": "#/components/schemas/SolutionProcessEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/SolutionProcessProjection"
            },
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "5.23.0",
            "default": "5.23.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/SolutionProcessWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "runs"],
        "title": "SolutionProcessWorkspaceResponse",
        "type": "object"
      },
      "SolutionProcessWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "minimum": 0.0,
            "title": "Allowed",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "manual_review": {
            "minimum": 0.0,
            "title": "Manual Review",
            "type": "integer"
          },
          "reviewed": {
            "minimum": 0.0,
            "title": "Reviewed",
            "type": "integer"
          },
          "runs": {
            "minimum": 0.0,
            "title": "Runs",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          }
        },
        "required": ["runs", "allowed", "blocked", "manual_review", "stale", "reviewed"],
        "title": "SolutionProcessWorkspaceSummary",
        "type": "object"
      },
      "SourceAcceptedAnchorMigrationResponse": {
        "additionalProperties": false,
        "description": "Append-only human acceptance evidence for one old-to-new anchor mapping.",
        "properties": {
          "accepted_at": {
            "format": "date-time",
            "title": "Accepted At",
            "type": "string"
          },
          "accepted_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Accepted By",
            "type": "string"
          },
          "current_anchor_id": {
            "pattern": "^anchor_[a-f0-9]{24}$",
            "title": "Current Anchor Id",
            "type": "string"
          },
          "current_selectors": {
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Current Selectors",
            "type": "array"
          },
          "current_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Source Sha256",
            "type": "string"
          },
          "idempotency_key_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Idempotency Key Sha256",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "migration_id": {
            "pattern": "^anchor_migration_[a-f0-9]{24}$",
            "title": "Migration Id",
            "type": "string"
          },
          "migration_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Migration Sha256",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "previous_anchor_id": {
            "pattern": "^anchor_[a-f0-9]{24}$",
            "title": "Previous Anchor Id",
            "type": "string"
          },
          "previous_selectors": {
            "items": {
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Previous Selectors",
            "type": "array"
          },
          "previous_source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Previous Source Sha256",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.4.0",
            "default": "2.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Source Extraction Id",
            "type": "string"
          },
          "target_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Target Extraction Id",
            "type": "string"
          }
        },
        "required": [
          "migration_id",
          "package_id",
          "source_extraction_id",
          "target_extraction_id",
          "ingestion_item_id",
          "previous_source_sha256",
          "current_source_sha256",
          "previous_anchor_id",
          "current_anchor_id",
          "previous_selectors",
          "current_selectors",
          "rationale",
          "accepted_by",
          "accepted_at",
          "idempotency_key_sha256",
          "migration_sha256"
        ],
        "title": "SourceAcceptedAnchorMigrationResponse",
        "type": "object"
      },
      "SourceAdaptiveLearnerProfileResponse": {
        "description": "Cold-start delivery state that cannot fabricate mastery evidence.",
        "properties": {
          "initial_lesson_id": {
            "title": "Initial Lesson Id",
            "type": "string"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "missing_evidence_action": {
            "const": "preserve_and_abstain",
            "title": "Missing Evidence Action",
            "type": "string"
          },
          "state": {
            "const": "awaiting_first_graded_evidence",
            "title": "State",
            "type": "string"
          }
        },
        "required": ["learner_id", "initial_lesson_id", "state", "missing_evidence_action"],
        "title": "SourceAdaptiveLearnerProfileResponse",
        "type": "object"
      },
      "SourceAdaptiveLessonRuleResponse": {
        "description": "Deterministic release-time rule consumed by the graded adaptive runtime.",
        "properties": {
          "advance_when_mastery_at_least": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Advance When Mastery At Least",
            "type": "number"
          },
          "assessment_ids": {
            "items": {
              "type": "string"
            },
            "title": "Assessment Ids",
            "type": "array"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "missing_evidence_action": {
            "const": "preserve_and_abstain",
            "title": "Missing Evidence Action",
            "type": "string"
          },
          "next_lesson_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Lesson Id"
          },
          "prerequisite_lesson_ids": {
            "items": {
              "type": "string"
            },
            "title": "Prerequisite Lesson Ids",
            "type": "array"
          },
          "remediation_lesson_ids": {
            "items": {
              "type": "string"
            },
            "title": "Remediation Lesson Ids",
            "type": "array"
          }
        },
        "required": ["lesson_id", "advance_when_mastery_at_least", "missing_evidence_action"],
        "title": "SourceAdaptiveLessonRuleResponse",
        "type": "object"
      },
      "SourceAdaptivePlanResponse": {
        "description": "Signed adaptive sequencing policy embedded in a publication candidate.",
        "properties": {
          "learner_profiles": {
            "items": {
              "$ref": "#/components/schemas/SourceAdaptiveLearnerProfileResponse"
            },
            "minItems": 1,
            "title": "Learner Profiles",
            "type": "array"
          },
          "lesson_rules": {
            "items": {
              "$ref": "#/components/schemas/SourceAdaptiveLessonRuleResponse"
            },
            "minItems": 1,
            "title": "Lesson Rules",
            "type": "array"
          },
          "mastery_threshold": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Mastery Threshold",
            "type": "number"
          },
          "policy_version": {
            "const": "metis-source-adaptive-plan-v1",
            "title": "Policy Version",
            "type": "string"
          }
        },
        "required": ["policy_version", "mastery_threshold", "lesson_rules", "learner_profiles"],
        "title": "SourceAdaptivePlanResponse",
        "type": "object"
      },
      "SourceAnchorMigrationInput": {
        "additionalProperties": false,
        "description": "One proposed explicit mapping from a historical anchor to a new run anchor.",
        "properties": {
          "current_anchor_id": {
            "pattern": "^anchor_[a-f0-9]{24}$",
            "title": "Current Anchor Id",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "previous_anchor_id": {
            "pattern": "^anchor_[a-f0-9]{24}$",
            "title": "Previous Anchor Id",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["ingestion_item_id", "previous_anchor_id", "current_anchor_id", "rationale"],
        "title": "SourceAnchorMigrationInput",
        "type": "object"
      },
      "SourceAnchorMigrationRequest": {
        "additionalProperties": false,
        "description": "Idempotent acceptance request for reviewed anchor mappings.",
        "properties": {
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "migrations": {
            "items": {
              "$ref": "#/components/schemas/SourceAnchorMigrationInput"
            },
            "maxItems": 100000,
            "minItems": 1,
            "title": "Migrations",
            "type": "array"
          },
          "source_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Source Extraction Id",
            "type": "string"
          }
        },
        "required": ["source_extraction_id", "idempotency_key", "migrations"],
        "title": "SourceAnchorMigrationRequest",
        "type": "object"
      },
      "SourceAttributionRequirement": {
        "additionalProperties": false,
        "properties": {
          "placement": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Placement"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "required_fields": {
            "items": {
              "enum": ["title", "author", "publisher", "license", "source_uri", "changes"],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Required Fields",
            "type": "array"
          },
          "statement": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Statement"
          }
        },
        "required": ["required"],
        "title": "SourceAttributionRequirement",
        "type": "object"
      },
      "SourceAudienceMetadata": {
        "additionalProperties": false,
        "properties": {
          "accessibility_features": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Accessibility Features",
            "type": "array"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "grade_ranges": {
            "items": {
              "$ref": "#/components/schemas/SourceGradeRange"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Grade Ranges",
            "type": "array"
          },
          "languages": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Languages",
            "type": "array"
          },
          "learner_contexts": {
            "items": {
              "enum": [
                "school",
                "higher_education",
                "professional",
                "workforce",
                "independent",
                "other"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Learner Contexts",
            "type": "array"
          },
          "maximum_age": {
            "maximum": 125.0,
            "minimum": 0.0,
            "title": "Maximum Age",
            "type": "integer"
          },
          "minimum_age": {
            "maximum": 125.0,
            "minimum": 0.0,
            "title": "Minimum Age",
            "type": "integer"
          },
          "prerequisites": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Prerequisites",
            "type": "array"
          }
        },
        "required": [
          "minimum_age",
          "maximum_age",
          "grade_ranges",
          "languages",
          "prerequisites",
          "accessibility_features",
          "learner_contexts"
        ],
        "title": "SourceAudienceMetadata",
        "type": "object"
      },
      "SourceAuditEvent": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "upload_quarantined",
              "remote_snapshotted",
              "remote_snapshot_failed",
              "connector_snapshotted",
              "connector_snapshot_failed",
              "doi_metadata_resolved",
              "doi_resolution_failed",
              "manual_record_registered",
              "legacy_upload_registered"
            ],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "event_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Event Id",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          }
        },
        "required": ["event_id", "action", "actor_id", "occurred_at", "evidence_sha256"],
        "title": "SourceAuditEvent",
        "type": "object"
      },
      "SourceAuthorityCredential": {
        "additionalProperties": false,
        "properties": {
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Evidence Ids",
            "type": "array"
          },
          "issuer": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Issuer",
            "type": "string"
          },
          "name": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "subject_or_domain": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Subject Or Domain",
            "type": "string"
          },
          "valid_from": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid From"
          },
          "valid_until": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid Until"
          }
        },
        "required": ["name", "issuer", "subject_or_domain", "evidence_ids"],
        "title": "SourceAuthorityCredential",
        "type": "object"
      },
      "SourceAuthorityIdentifier": {
        "additionalProperties": false,
        "properties": {
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence Ids",
            "type": "array"
          },
          "scheme": {
            "enum": ["ror", "orcid", "isni", "viaf", "doi", "uri", "local", "other"],
            "title": "Scheme",
            "type": "string"
          },
          "value": {
            "maxLength": 1024,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["scheme", "value"],
        "title": "SourceAuthorityIdentifier",
        "type": "object"
      },
      "SourceAuthorityIdentity": {
        "additionalProperties": false,
        "properties": {
          "authority_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Authority Id",
            "type": "string"
          },
          "credentials": {
            "items": {
              "$ref": "#/components/schemas/SourceAuthorityCredential"
            },
            "maxItems": 32,
            "title": "Credentials",
            "type": "array"
          },
          "display_name": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "identifiers": {
            "items": {
              "$ref": "#/components/schemas/SourceAuthorityIdentifier"
            },
            "maxItems": 32,
            "title": "Identifiers",
            "type": "array"
          },
          "identity_type": {
            "enum": ["person", "organization", "institution", "government", "unknown"],
            "title": "Identity Type",
            "type": "string"
          },
          "reputation_limits": {
            "$ref": "#/components/schemas/SourceAuthorityReputationLimits"
          },
          "roles": {
            "items": {
              "enum": ["publisher", "author", "institution", "issuer"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Roles",
            "type": "array"
          },
          "verification_state": {
            "enum": ["unverified", "declared", "evidence_present", "verified", "disputed"],
            "title": "Verification State",
            "type": "string"
          },
          "verified_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified At"
          },
          "verified_by": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verified By"
          }
        },
        "required": [
          "authority_id",
          "identity_type",
          "display_name",
          "roles",
          "reputation_limits",
          "verification_state"
        ],
        "title": "SourceAuthorityIdentity",
        "type": "object"
      },
      "SourceAuthorityRecord": {
        "additionalProperties": false,
        "properties": {
          "authority_type": {
            "enum": [
              "content_owner",
              "origin_server",
              "lms",
              "repository",
              "crossref",
              "datacite",
              "manual_declaration",
              "unknown"
            ],
            "title": "Authority Type",
            "type": "string"
          },
          "evidence_locator": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Locator"
          },
          "identifier": {
            "maxLength": 1024,
            "minLength": 1,
            "title": "Identifier",
            "type": "string"
          },
          "status": {
            "enum": ["authoritative", "origin_asserted", "declared", "unverified"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["authority_type", "identifier", "status"],
        "title": "SourceAuthorityRecord",
        "type": "object"
      },
      "SourceAuthorityReputationLimits": {
        "additionalProperties": false,
        "properties": {
          "applicable_jurisdictions": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Applicable Jurisdictions",
            "type": "array"
          },
          "applicable_roles": {
            "items": {
              "enum": ["publisher", "author", "institution", "issuer"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Applicable Roles",
            "type": "array"
          },
          "applicable_subjects": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Applicable Subjects",
            "type": "array"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "valid_through": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid Through"
          }
        },
        "required": ["applicable_subjects", "applicable_roles", "limitations"],
        "title": "SourceAuthorityReputationLimits",
        "type": "object"
      },
      "SourceBlastRadiusResponse": {
        "additionalProperties": false,
        "properties": {
          "blocked_count": {
            "minimum": 0.0,
            "title": "Blocked Count",
            "type": "integer"
          },
          "change": {
            "$ref": "#/components/schemas/SourceChangeEventResponse"
          },
          "graph_id": {
            "pattern": "^depgraph_[a-f0-9]{40}$",
            "title": "Graph Id",
            "type": "string"
          },
          "graph_revision": {
            "minimum": 1.0,
            "title": "Graph Revision",
            "type": "integer"
          },
          "graph_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Graph Sha256",
            "type": "string"
          },
          "impact_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Impact Snapshot Sha256",
            "type": "string"
          },
          "impacts": {
            "items": {
              "$ref": "#/components/schemas/SourceImpactRecord"
            },
            "title": "Impacts",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "property_scope": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Property Scope",
            "type": "string"
          },
          "schema_version": {
            "const": "2.9.0",
            "default": "2.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stale_count": {
            "minimum": 0.0,
            "title": "Stale Count",
            "type": "integer"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "total_impacts": {
            "minimum": 0.0,
            "title": "Total Impacts",
            "type": "integer"
          },
          "unknown_count": {
            "minimum": 0.0,
            "title": "Unknown Count",
            "type": "integer"
          }
        },
        "required": [
          "package_id",
          "tenant_id",
          "property_scope",
          "change",
          "graph_id",
          "graph_revision",
          "graph_sha256",
          "impact_snapshot_sha256",
          "total_impacts",
          "stale_count",
          "blocked_count",
          "unknown_count",
          "impacts"
        ],
        "title": "SourceBlastRadiusResponse",
        "type": "object"
      },
      "SourceCanonicalClaimCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "claims": {
            "items": {
              "$ref": "#/components/schemas/SourceCanonicalClaimResponse"
            },
            "maxItems": 16384,
            "title": "Claims",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          }
        },
        "required": ["package_id", "generated_at"],
        "title": "SourceCanonicalClaimCollectionResponse",
        "type": "object"
      },
      "SourceCanonicalClaimResponse": {
        "additionalProperties": false,
        "properties": {
          "authority_status": {
            "enum": ["proposed", "accepted", "edited", "rejected", "deferred", "stale"],
            "title": "Authority Status",
            "type": "string"
          },
          "authorized_revision_id": {
            "anyOf": [
              {
                "pattern": "^claimrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Authorized Revision Id"
          },
          "claim_id": {
            "pattern": "^claim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "latest_revision_id": {
            "pattern": "^claimrev_[a-f0-9]{40}$",
            "title": "Latest Revision Id",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/SourceCanonicalClaimRevisionResponse"
            },
            "maxItems": 1024,
            "minItems": 1,
            "title": "Revisions",
            "type": "array"
          },
          "source_proposal_id": {
            "pattern": "^claimprop_[a-f0-9]{40}$",
            "title": "Source Proposal Id",
            "type": "string"
          }
        },
        "required": [
          "claim_id",
          "package_id",
          "source_proposal_id",
          "authority_status",
          "latest_revision_id",
          "revisions"
        ],
        "title": "SourceCanonicalClaimResponse",
        "type": "object"
      },
      "SourceCanonicalClaimRevisionResponse": {
        "additionalProperties": false,
        "description": "One immutable claim revision authorized by one exact human decision.",
        "properties": {
          "authority_action": {
            "enum": ["accept", "edit"],
            "title": "Authority Action",
            "type": "string"
          },
          "claim_id": {
            "pattern": "^claim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "claim_type": {
            "enum": [
              "factual",
              "definition",
              "causal",
              "quantitative",
              "procedural",
              "comparative",
              "normative"
            ],
            "title": "Claim Type",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "locator": {
            "$ref": "#/components/schemas/SourceClaimLocatorResponse"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "previous_revision_id": {
            "anyOf": [
              {
                "pattern": "^claimrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Id"
          },
          "proposition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Proposition",
            "type": "string"
          },
          "qualifiers": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimQualifier"
            },
            "maxItems": 64,
            "title": "Qualifiers",
            "type": "array"
          },
          "revision_id": {
            "pattern": "^claimrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "schema_version": {
            "const": "2.6.1",
            "default": "2.6.1",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/SourceClaimScope"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_decision": {
            "$ref": "#/components/schemas/SourceClaimReviewDecisionResponse"
          },
          "source_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Source Extraction Id",
            "type": "string"
          },
          "source_extraction_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Extraction Output Sha256",
            "type": "string"
          },
          "source_invocation": {
            "$ref": "#/components/schemas/SourceClaimProviderInvocationResponse"
          },
          "source_invocation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Invocation Sha256",
            "type": "string"
          },
          "source_proposal": {
            "$ref": "#/components/schemas/SourceClaimProposalResponse"
          },
          "source_proposal_id": {
            "pattern": "^claimprop_[a-f0-9]{40}$",
            "title": "Source Proposal Id",
            "type": "string"
          },
          "source_proposal_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Proposal Sha256",
            "type": "string"
          },
          "source_run_id": {
            "pattern": "^claimrun_[a-f0-9]{40}$",
            "title": "Source Run Id",
            "type": "string"
          },
          "source_run_self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Run Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "claim_id",
          "revision_id",
          "revision_number",
          "package_id",
          "proposition",
          "claim_type",
          "scope",
          "locator",
          "authority_action",
          "source_extraction_id",
          "source_extraction_output_sha256",
          "source_run_id",
          "source_run_self_sha256",
          "source_proposal_id",
          "source_proposal_sha256",
          "source_proposal",
          "source_invocation_sha256",
          "source_invocation",
          "source_decision",
          "created_at",
          "self_sha256"
        ],
        "title": "SourceCanonicalClaimRevisionResponse",
        "type": "object"
      },
      "SourceChangeAuthority": {
        "additionalProperties": false,
        "properties": {
          "authority_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Authority Id",
            "type": "string"
          },
          "authority_type": {
            "enum": ["publisher", "author", "institution", "issuer", "registry", "content_owner"],
            "title": "Authority Type",
            "type": "string"
          },
          "display_name": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence Ids",
            "type": "array"
          },
          "verification_state": {
            "const": "verified",
            "title": "Verification State",
            "type": "string"
          },
          "verified_at": {
            "format": "date-time",
            "title": "Verified At",
            "type": "string"
          }
        },
        "required": [
          "authority_id",
          "display_name",
          "authority_type",
          "verification_state",
          "evidence_ids",
          "verified_at"
        ],
        "title": "SourceChangeAuthority",
        "type": "object"
      },
      "SourceChangeEventResponse": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "$ref": "#/components/schemas/SourceChangeAuthority"
          },
          "change_event_id": {
            "pattern": "^sourcechange_[a-f0-9]{40}$",
            "title": "Change Event Id",
            "type": "string"
          },
          "change_type": {
            "enum": ["updated", "superseded", "retracted", "rights_changed"],
            "title": "Change Type",
            "type": "string"
          },
          "effective_at": {
            "format": "date-time",
            "title": "Effective At",
            "type": "string"
          },
          "graph_id": {
            "pattern": "^depgraph_[a-f0-9]{40}$",
            "title": "Graph Id",
            "type": "string"
          },
          "graph_revision": {
            "minimum": 1.0,
            "title": "Graph Revision",
            "type": "integer"
          },
          "graph_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Graph Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "identity": {
            "$ref": "#/components/schemas/SourceChangeIdentity"
          },
          "ingested_at": {
            "format": "date-time",
            "title": "Ingested At",
            "type": "string"
          },
          "ingested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingested By",
            "type": "string"
          },
          "ingested_by_role": {
            "const": "admin",
            "title": "Ingested By Role",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "previous_change_event_id": {
            "anyOf": [
              {
                "pattern": "^sourcechange_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Change Event Id"
          },
          "property_scope": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Property Scope",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "replacement_source_version_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Source Version Id"
          },
          "rights_use_allowed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rights Use Allowed"
          },
          "schema_version": {
            "const": "2.9.0",
            "default": "2.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/SourceChangeScope"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "change_event_id",
          "package_id",
          "tenant_id",
          "property_scope",
          "graph_id",
          "graph_revision",
          "graph_sha256",
          "identity",
          "change_type",
          "effective_at",
          "reason",
          "authority",
          "scope",
          "idempotency_key",
          "ingested_by",
          "ingested_by_role",
          "ingested_at",
          "self_sha256"
        ],
        "title": "SourceChangeEventResponse",
        "type": "object"
      },
      "SourceChangeIdentity": {
        "additionalProperties": false,
        "properties": {
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_version_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Version Id",
            "type": "string"
          },
          "source_version_record_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Version Record Id",
            "type": "string"
          },
          "source_version_record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Version Record Sha256",
            "type": "string"
          }
        },
        "required": [
          "ingestion_item_id",
          "source_id",
          "source_version_id",
          "source_version_record_id",
          "source_version_record_sha256"
        ],
        "title": "SourceChangeIdentity",
        "type": "object"
      },
      "SourceChangeIntakeRequest": {
        "additionalProperties": false,
        "properties": {
          "authority": {
            "$ref": "#/components/schemas/SourceChangeAuthority"
          },
          "change_type": {
            "enum": ["updated", "superseded", "retracted", "rights_changed"],
            "title": "Change Type",
            "type": "string"
          },
          "effective_at": {
            "format": "date-time",
            "title": "Effective At",
            "type": "string"
          },
          "expected_graph_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Graph Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "identity": {
            "$ref": "#/components/schemas/SourceChangeIdentity"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "replacement_source_version_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Source Version Id"
          },
          "rights_use_allowed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rights Use Allowed"
          },
          "schema_version": {
            "const": "2.9.0",
            "default": "2.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/SourceChangeScope"
          }
        },
        "required": [
          "idempotency_key",
          "expected_graph_sha256",
          "identity",
          "change_type",
          "effective_at",
          "reason",
          "authority",
          "scope"
        ],
        "title": "SourceChangeIntakeRequest",
        "type": "object"
      },
      "SourceChangeScope": {
        "additionalProperties": false,
        "properties": {
          "scope_type": {
            "enum": ["whole_source", "claims", "citations", "rights_territory"],
            "title": "Scope Type",
            "type": "string"
          },
          "target_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 4096,
            "title": "Target Ids",
            "type": "array"
          },
          "territory_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Territory Codes",
            "type": "array"
          }
        },
        "required": ["scope_type"],
        "title": "SourceChangeScope",
        "type": "object"
      },
      "SourceChecksumRecord": {
        "additionalProperties": false,
        "properties": {
          "algorithm": {
            "const": "sha256",
            "default": "sha256",
            "title": "Algorithm",
            "type": "string"
          },
          "basis": {
            "enum": [
              "content_bytes",
              "canonical_metadata",
              "connector_snapshot",
              "locator_metadata"
            ],
            "title": "Basis",
            "type": "string"
          },
          "byte_count": {
            "minimum": 0.0,
            "title": "Byte Count",
            "type": "integer"
          },
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "upstream_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upstream Digest"
          },
          "verification": {
            "enum": ["computed", "upstream_unverified"],
            "title": "Verification",
            "type": "string"
          }
        },
        "required": ["digest", "basis", "byte_count", "verification"],
        "title": "SourceChecksumRecord",
        "type": "object"
      },
      "SourceCitationAttachmentRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_quote": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Quote"
          },
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "locator": {
            "discriminator": {
              "mapping": {
                "dataset_slice": "#/components/schemas/SourceCitationDatasetSliceLocator",
                "media_time": "#/components/schemas/SourceCitationMediaTimeLocator",
                "page_region": "#/components/schemas/SourceCitationPageRegionLocator",
                "paragraph_character": "#/components/schemas/SourceCitationParagraphCharacterLocator",
                "section": "#/components/schemas/SourceCitationSectionLocator",
                "uri_fragment": "#/components/schemas/SourceCitationUriFragmentLocator"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SourceCitationPageRegionLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationSectionLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationParagraphCharacterLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationMediaTimeLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationDatasetSliceLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationUriFragmentLocator"
              }
            ],
            "title": "Locator"
          },
          "role": {
            "enum": ["supporting", "defining", "context", "contrasting", "method", "data"],
            "title": "Role",
            "type": "string"
          },
          "target": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SourceCitationClaimTarget",
                "content": "#/components/schemas/SourceCitationContentTarget"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SourceCitationClaimTarget"
              },
              {
                "$ref": "#/components/schemas/SourceCitationContentTarget"
              }
            ],
            "title": "Target"
          }
        },
        "required": [
          "extraction_id",
          "ingestion_item_id",
          "target",
          "locator",
          "role",
          "idempotency_key"
        ],
        "title": "SourceCitationAttachmentRequest",
        "type": "object"
      },
      "SourceCitationClaimTarget": {
        "additionalProperties": false,
        "properties": {
          "claim_id": {
            "pattern": "^claim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "kind": {
            "const": "claim",
            "default": "claim",
            "title": "Kind",
            "type": "string"
          },
          "revision_id": {
            "pattern": "^claimrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          }
        },
        "required": ["claim_id", "revision_id"],
        "title": "SourceCitationClaimTarget",
        "type": "object"
      },
      "SourceCitationContentTarget": {
        "additionalProperties": false,
        "properties": {
          "content_id": {
            "pattern": "^(?:node|table|media|equation)_[a-f0-9]{24}$",
            "title": "Content Id",
            "type": "string"
          },
          "content_kind": {
            "enum": ["source_node", "source_table", "source_media", "source_equation"],
            "title": "Content Kind",
            "type": "string"
          },
          "content_version_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Version Sha256",
            "type": "string"
          },
          "kind": {
            "const": "content",
            "default": "content",
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["content_kind", "content_id", "content_version_sha256"],
        "title": "SourceCitationContentTarget",
        "type": "object"
      },
      "SourceCitationCurrentAssessmentResponse": {
        "additionalProperties": false,
        "properties": {
          "citation_id": {
            "pattern": "^citation_[a-f0-9]{40}$",
            "title": "Citation Id",
            "type": "string"
          },
          "citation_version_id": {
            "pattern": "^citationver_[a-f0-9]{40}$",
            "title": "Citation Version Id",
            "type": "string"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evaluated_extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluated Extraction Id"
          },
          "exact_match_count": {
            "minimum": 0.0,
            "title": "Exact Match Count",
            "type": "integer"
          },
          "locator_state": {
            "enum": ["exact", "shifted", "ambiguous", "orphaned", "invalid"],
            "title": "Locator State",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "resolved_anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Resolved Anchor Ids",
            "type": "array"
          },
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "verification_state": {
            "enum": ["verified", "review_required"],
            "title": "Verification State",
            "type": "string"
          }
        },
        "required": [
          "citation_id",
          "citation_version_id",
          "locator_state",
          "verification_state",
          "review_required",
          "exact_match_count",
          "reason",
          "evaluated_at"
        ],
        "title": "SourceCitationCurrentAssessmentResponse",
        "type": "object"
      },
      "SourceCitationDatasetSliceLocator": {
        "additionalProperties": false,
        "description": "A version-bound table slice with non-executable filter evidence.",
        "properties": {
          "column_indices": {
            "items": {
              "type": "integer"
            },
            "maxItems": 1024,
            "minItems": 1,
            "title": "Column Indices",
            "type": "array"
          },
          "dataset_version_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dataset Version Sha256",
            "type": "string"
          },
          "filter_expression": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter Expression"
          },
          "filter_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter Sha256"
          },
          "kind": {
            "const": "dataset_slice",
            "default": "dataset_slice",
            "title": "Kind",
            "type": "string"
          },
          "row_end": {
            "exclusiveMinimum": 0.0,
            "title": "Row End",
            "type": "integer"
          },
          "row_start": {
            "minimum": 0.0,
            "title": "Row Start",
            "type": "integer"
          },
          "table_id": {
            "pattern": "^table_[a-f0-9]{24}$",
            "title": "Table Id",
            "type": "string"
          }
        },
        "required": [
          "table_id",
          "dataset_version_sha256",
          "row_start",
          "row_end",
          "column_indices"
        ],
        "title": "SourceCitationDatasetSliceLocator",
        "type": "object"
      },
      "SourceCitationExportResponse": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "attribution_statement": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attribution Statement"
          },
          "citation_id": {
            "pattern": "^citation_[a-f0-9]{40}$",
            "title": "Citation Id",
            "type": "string"
          },
          "citation_version_id": {
            "pattern": "^citationver_[a-f0-9]{40}$",
            "title": "Citation Version Id",
            "type": "string"
          },
          "context_redacted": {
            "title": "Context Redacted",
            "type": "boolean"
          },
          "excerpt": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excerpt"
          },
          "excerpt_character_count": {
            "maximum": 500.0,
            "minimum": 0.0,
            "title": "Excerpt Character Count",
            "type": "integer"
          },
          "excerpt_truncated": {
            "title": "Excerpt Truncated",
            "type": "boolean"
          },
          "locator_label": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Locator Label",
            "type": "string"
          },
          "protected_source": {
            "title": "Protected Source",
            "type": "boolean"
          },
          "redaction_reason": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Redaction Reason"
          },
          "rights_revalidation_required": {
            "title": "Rights Revalidation Required",
            "type": "boolean"
          },
          "role": {
            "enum": ["supporting", "defining", "context", "contrasting", "method", "data"],
            "title": "Role",
            "type": "string"
          },
          "schema_version": {
            "const": "2.7.0",
            "default": "2.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_label": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Source Label",
            "type": "string"
          },
          "target": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SourceCitationClaimTarget",
                "content": "#/components/schemas/SourceCitationContentTarget"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SourceCitationClaimTarget"
              },
              {
                "$ref": "#/components/schemas/SourceCitationContentTarget"
              }
            ],
            "title": "Target"
          }
        },
        "required": [
          "citation_id",
          "citation_version_id",
          "target",
          "role",
          "source_label",
          "locator_label",
          "excerpt_character_count",
          "excerpt_truncated",
          "protected_source",
          "context_redacted",
          "rights_revalidation_required",
          "accessible_text"
        ],
        "title": "SourceCitationExportResponse",
        "type": "object"
      },
      "SourceCitationMediaTimeLocator": {
        "additionalProperties": false,
        "description": "A half-open normal-play-time range inside one exact extracted media object.",
        "properties": {
          "end_ms": {
            "exclusiveMinimum": 0.0,
            "title": "End Ms",
            "type": "integer"
          },
          "kind": {
            "const": "media_time",
            "default": "media_time",
            "title": "Kind",
            "type": "string"
          },
          "media_id": {
            "pattern": "^media_[a-f0-9]{24}$",
            "title": "Media Id",
            "type": "string"
          },
          "start_ms": {
            "minimum": 0.0,
            "title": "Start Ms",
            "type": "integer"
          },
          "track": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Track"
          }
        },
        "required": ["media_id", "start_ms", "end_ms"],
        "title": "SourceCitationMediaTimeLocator",
        "type": "object"
      },
      "SourceCitationPageRegionLocator": {
        "additionalProperties": false,
        "description": "One normalized page region, never a mutable page URL.",
        "properties": {
          "kind": {
            "const": "page_region",
            "default": "page_region",
            "title": "Kind",
            "type": "string"
          },
          "page_number": {
            "minimum": 1.0,
            "title": "Page Number",
            "type": "integer"
          },
          "region": {
            "$ref": "#/components/schemas/ExtractionRegionResponse"
          }
        },
        "required": ["page_number", "region"],
        "title": "SourceCitationPageRegionLocator",
        "type": "object"
      },
      "SourceCitationParagraphCharacterLocator": {
        "additionalProperties": false,
        "description": "A half-open Unicode-code-point range inside one extracted text node.",
        "properties": {
          "end_char": {
            "exclusiveMinimum": 0.0,
            "title": "End Char",
            "type": "integer"
          },
          "exact_quote_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exact Quote Sha256",
            "type": "string"
          },
          "kind": {
            "const": "paragraph_character",
            "default": "paragraph_character",
            "title": "Kind",
            "type": "string"
          },
          "node_id": {
            "pattern": "^node_[a-f0-9]{24}$",
            "title": "Node Id",
            "type": "string"
          },
          "start_char": {
            "minimum": 0.0,
            "title": "Start Char",
            "type": "integer"
          }
        },
        "required": ["node_id", "start_char", "end_char", "exact_quote_sha256"],
        "title": "SourceCitationParagraphCharacterLocator",
        "type": "object"
      },
      "SourceCitationReattachmentRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_quote": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Quote"
          },
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "locator": {
            "discriminator": {
              "mapping": {
                "dataset_slice": "#/components/schemas/SourceCitationDatasetSliceLocator",
                "media_time": "#/components/schemas/SourceCitationMediaTimeLocator",
                "page_region": "#/components/schemas/SourceCitationPageRegionLocator",
                "paragraph_character": "#/components/schemas/SourceCitationParagraphCharacterLocator",
                "section": "#/components/schemas/SourceCitationSectionLocator",
                "uri_fragment": "#/components/schemas/SourceCitationUriFragmentLocator"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SourceCitationPageRegionLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationSectionLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationParagraphCharacterLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationMediaTimeLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationDatasetSliceLocator"
              },
              {
                "$ref": "#/components/schemas/SourceCitationUriFragmentLocator"
              }
            ],
            "title": "Locator"
          },
          "review_comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Review Comment",
            "type": "string"
          }
        },
        "required": [
          "extraction_id",
          "ingestion_item_id",
          "locator",
          "review_comment",
          "idempotency_key"
        ],
        "title": "SourceCitationReattachmentRequest",
        "type": "object"
      },
      "SourceCitationSafeCollectionResponse": {
        "additionalProperties": false,
        "description": "Rights-safe package projection for every caller-facing citation API.",
        "properties": {
          "citations": {
            "items": {
              "$ref": "#/components/schemas/SourceCitationSafeHistoryResponse"
            },
            "maxItems": 16384,
            "title": "Citations",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.7.0",
            "default": "2.7.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["package_id", "generated_at"],
        "title": "SourceCitationSafeCollectionResponse",
        "type": "object"
      },
      "SourceCitationSafeHistoryResponse": {
        "additionalProperties": false,
        "description": "Admin/UI projection that exposes only bounded export context.",
        "properties": {
          "citation_id": {
            "pattern": "^citation_[a-f0-9]{40}$",
            "title": "Citation Id",
            "type": "string"
          },
          "current_assessment": {
            "$ref": "#/components/schemas/SourceCitationCurrentAssessmentResponse"
          },
          "export": {
            "$ref": "#/components/schemas/SourceCitationExportResponse"
          },
          "latest_version_id": {
            "pattern": "^citationver_[a-f0-9]{40}$",
            "title": "Latest Version Id",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "versions": {
            "items": {
              "$ref": "#/components/schemas/SourceCitationVersionSummaryResponse"
            },
            "maxItems": 1024,
            "minItems": 1,
            "title": "Versions",
            "type": "array"
          }
        },
        "required": [
          "citation_id",
          "package_id",
          "latest_version_id",
          "versions",
          "current_assessment",
          "export"
        ],
        "title": "SourceCitationSafeHistoryResponse",
        "type": "object"
      },
      "SourceCitationSectionLocator": {
        "additionalProperties": false,
        "description": "One exact extracted heading/section identity and path.",
        "properties": {
          "heading": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Heading",
            "type": "string"
          },
          "kind": {
            "const": "section",
            "default": "section",
            "title": "Kind",
            "type": "string"
          },
          "section_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Section Id",
            "type": "string"
          },
          "section_path": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Section Path",
            "type": "array"
          }
        },
        "required": ["section_id", "heading"],
        "title": "SourceCitationSectionLocator",
        "type": "object"
      },
      "SourceCitationUriFragmentLocator": {
        "additionalProperties": false,
        "description": "A fragment bound to a snapshotted original locator and extracted identity.",
        "properties": {
          "fragment": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Fragment",
            "type": "string"
          },
          "kind": {
            "const": "uri_fragment",
            "default": "uri_fragment",
            "title": "Kind",
            "type": "string"
          },
          "original_locator_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Original Locator Sha256",
            "type": "string"
          }
        },
        "required": ["fragment", "original_locator_sha256"],
        "title": "SourceCitationUriFragmentLocator",
        "type": "object"
      },
      "SourceCitationVersionSummaryResponse": {
        "additionalProperties": false,
        "description": "Rights-safe citation version metadata with no stored quote or context.",
        "properties": {
          "attachment_reason": {
            "enum": ["initial_attachment", "locator_re_review"],
            "title": "Attachment Reason",
            "type": "string"
          },
          "author_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Author Name",
            "type": "string"
          },
          "authored_at": {
            "format": "date-time",
            "title": "Authored At",
            "type": "string"
          },
          "citation_version_id": {
            "pattern": "^citationver_[a-f0-9]{40}$",
            "title": "Citation Version Id",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "role": {
            "enum": ["supporting", "defining", "context", "contrasting", "method", "data"],
            "title": "Role",
            "type": "string"
          },
          "source_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Source Extraction Id",
            "type": "string"
          },
          "source_extraction_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Extraction Output Sha256",
            "type": "string"
          },
          "source_kind": {
            "enum": ["file", "url", "feed", "package", "lms", "repository", "doi", "manual_record"],
            "title": "Source Kind",
            "type": "string"
          },
          "target": {
            "discriminator": {
              "mapping": {
                "claim": "#/components/schemas/SourceCitationClaimTarget",
                "content": "#/components/schemas/SourceCitationContentTarget"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/SourceCitationClaimTarget"
              },
              {
                "$ref": "#/components/schemas/SourceCitationContentTarget"
              }
            ],
            "title": "Target"
          },
          "version_number": {
            "minimum": 1.0,
            "title": "Version Number",
            "type": "integer"
          }
        },
        "required": [
          "citation_version_id",
          "version_number",
          "target",
          "source_extraction_id",
          "source_extraction_output_sha256",
          "ingestion_item_id",
          "source_kind",
          "role",
          "author_name",
          "authored_at",
          "attachment_reason"
        ],
        "title": "SourceCitationVersionSummaryResponse",
        "type": "object"
      },
      "SourceCitationWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "citations": {
            "items": {
              "$ref": "#/components/schemas/SourceCitationSafeHistoryResponse"
            },
            "maxItems": 16384,
            "title": "Citations",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.7.0",
            "default": "2.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceCitationWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary"],
        "title": "SourceCitationWorkspaceResponse",
        "type": "object"
      },
      "SourceCitationWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "protected_sources": {
            "minimum": 0.0,
            "title": "Protected Sources",
            "type": "integer"
          },
          "review_required": {
            "minimum": 0.0,
            "title": "Review Required",
            "type": "integer"
          },
          "total_citations": {
            "minimum": 0.0,
            "title": "Total Citations",
            "type": "integer"
          },
          "total_versions": {
            "minimum": 0.0,
            "title": "Total Versions",
            "type": "integer"
          },
          "verified": {
            "minimum": 0.0,
            "title": "Verified",
            "type": "integer"
          }
        },
        "required": [
          "total_citations",
          "verified",
          "review_required",
          "protected_sources",
          "total_versions"
        ],
        "title": "SourceCitationWorkspaceSummary",
        "type": "object"
      },
      "SourceClaimConfidence": {
        "additionalProperties": false,
        "properties": {
          "basis": {
            "const": "provider_assessed",
            "default": "provider_assessed",
            "title": "Basis",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["score", "rationale"],
        "title": "SourceClaimConfidence",
        "type": "object"
      },
      "SourceClaimExtractionRequest": {
        "additionalProperties": false,
        "properties": {
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "review_instructions": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Instructions"
          },
          "schema_version": {
            "const": "2.6.0",
            "default": "2.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selections": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimPassageSelection"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Selections",
            "type": "array"
          }
        },
        "required": ["idempotency_key", "extraction_id", "selections"],
        "title": "SourceClaimExtractionRequest",
        "type": "object"
      },
      "SourceClaimExtractionRunResponse": {
        "additionalProperties": false,
        "properties": {
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "extraction_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Extraction Output Sha256",
            "type": "string"
          },
          "invocation": {
            "$ref": "#/components/schemas/SourceClaimProviderInvocationResponse"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "passages": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimPassageResponse"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Passages",
            "type": "array"
          },
          "previous_run_id": {
            "anyOf": [
              {
                "pattern": "^claimrun_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Run Id"
          },
          "proposals": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimProposalResponse"
            },
            "maxItems": 128,
            "title": "Proposals",
            "type": "array"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "requested_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Requested By",
            "type": "string"
          },
          "review_instructions_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Instructions Sha256"
          },
          "run_id": {
            "pattern": "^claimrun_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.6.0",
            "default": "2.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "run_id",
          "package_id",
          "extraction_id",
          "extraction_output_sha256",
          "requested_by",
          "requested_at",
          "request_sha256",
          "passages",
          "invocation",
          "self_sha256"
        ],
        "title": "SourceClaimExtractionRunResponse",
        "type": "object"
      },
      "SourceClaimLocatorResponse": {
        "additionalProperties": false,
        "properties": {
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Anchor Ids",
            "type": "array"
          },
          "exact_quote_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exact Quote Sha256",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "node_end_char": {
            "exclusiveMinimum": 0.0,
            "title": "Node End Char",
            "type": "integer"
          },
          "node_id": {
            "pattern": "^node_[a-f0-9]{24}$",
            "title": "Node Id",
            "type": "string"
          },
          "node_start_char": {
            "minimum": 0.0,
            "title": "Node Start Char",
            "type": "integer"
          },
          "passage_id": {
            "pattern": "^claimpass_[a-f0-9]{24}$",
            "title": "Passage Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "passage_id",
          "ingestion_item_id",
          "source_sha256",
          "node_id",
          "anchor_ids",
          "node_start_char",
          "node_end_char",
          "exact_quote_sha256"
        ],
        "title": "SourceClaimLocatorResponse",
        "type": "object"
      },
      "SourceClaimModelEvidence": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "config_sha256",
          "prompt_sha256"
        ],
        "title": "SourceClaimModelEvidence",
        "type": "object"
      },
      "SourceClaimPassageResponse": {
        "additionalProperties": false,
        "properties": {
          "anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Anchor Ids",
            "type": "array"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "item_label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Item Label",
            "type": "string"
          },
          "node_end_char": {
            "exclusiveMinimum": 0.0,
            "title": "Node End Char",
            "type": "integer"
          },
          "node_id": {
            "pattern": "^node_[a-f0-9]{24}$",
            "title": "Node Id",
            "type": "string"
          },
          "node_start_char": {
            "minimum": 0.0,
            "title": "Node Start Char",
            "type": "integer"
          },
          "passage_id": {
            "pattern": "^claimpass_[a-f0-9]{24}$",
            "title": "Passage Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          },
          "text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Text Sha256",
            "type": "string"
          }
        },
        "required": [
          "passage_id",
          "ingestion_item_id",
          "item_label",
          "source_sha256",
          "node_id",
          "anchor_ids",
          "node_start_char",
          "node_end_char",
          "text",
          "text_sha256"
        ],
        "title": "SourceClaimPassageResponse",
        "type": "object"
      },
      "SourceClaimPassageSelection": {
        "additionalProperties": false,
        "properties": {
          "end_char": {
            "exclusiveMinimum": 0.0,
            "title": "End Char",
            "type": "integer"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "node_id": {
            "pattern": "^node_[a-f0-9]{24}$",
            "title": "Node Id",
            "type": "string"
          },
          "start_char": {
            "minimum": 0.0,
            "title": "Start Char",
            "type": "integer"
          }
        },
        "required": ["ingestion_item_id", "node_id", "start_char", "end_char"],
        "title": "SourceClaimPassageSelection",
        "type": "object"
      },
      "SourceClaimProposalResponse": {
        "additionalProperties": false,
        "properties": {
          "candidate_index": {
            "maximum": 127.0,
            "minimum": 0.0,
            "title": "Candidate Index",
            "type": "integer"
          },
          "claim_type": {
            "enum": [
              "factual",
              "definition",
              "causal",
              "quantitative",
              "procedural",
              "comparative",
              "normative"
            ],
            "title": "Claim Type",
            "type": "string"
          },
          "confidence": {
            "$ref": "#/components/schemas/SourceClaimConfidence"
          },
          "exact_source_text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Exact Source Text",
            "type": "string"
          },
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "extraction_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Extraction Output Sha256",
            "type": "string"
          },
          "locator": {
            "$ref": "#/components/schemas/SourceClaimLocatorResponse"
          },
          "model_evidence": {
            "$ref": "#/components/schemas/SourceClaimModelEvidence"
          },
          "normalized_proposition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Normalized Proposition",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "proposal_id": {
            "pattern": "^claimprop_[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "qualifiers": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimQualifier"
            },
            "maxItems": 64,
            "title": "Qualifiers",
            "type": "array"
          },
          "relationships": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimRelationshipResponse"
            },
            "maxItems": 128,
            "title": "Relationships",
            "type": "array"
          },
          "schema_version": {
            "const": "2.6.0",
            "default": "2.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/SourceClaimScope"
          },
          "status": {
            "const": "proposed",
            "default": "proposed",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "proposal_id",
          "candidate_index",
          "package_id",
          "extraction_id",
          "extraction_output_sha256",
          "exact_source_text",
          "normalized_proposition",
          "claim_type",
          "scope",
          "locator",
          "confidence",
          "model_evidence"
        ],
        "title": "SourceClaimProposalResponse",
        "type": "object"
      },
      "SourceClaimProposalReviewResponse": {
        "additionalProperties": false,
        "properties": {
          "canonical_claim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceCanonicalClaimResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimReviewDecisionResponse"
            },
            "maxItems": 1024,
            "title": "Decisions",
            "type": "array"
          },
          "effective_proposition": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Effective Proposition",
            "type": "string"
          },
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "extraction_is_current": {
            "title": "Extraction Is Current",
            "type": "boolean"
          },
          "extraction_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Extraction Output Sha256",
            "type": "string"
          },
          "item_label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Item Label",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "package_title": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Title",
            "type": "string"
          },
          "passage": {
            "$ref": "#/components/schemas/SourceClaimPassageResponse"
          },
          "proposal": {
            "$ref": "#/components/schemas/SourceClaimProposalResponse"
          },
          "review_status": {
            "enum": ["proposed", "accepted", "edited", "rejected", "deferred", "stale"],
            "title": "Review Status",
            "type": "string"
          },
          "run_id": {
            "pattern": "^claimrun_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "package_title",
          "run_id",
          "extraction_id",
          "extraction_output_sha256",
          "extraction_is_current",
          "item_label",
          "passage",
          "proposal",
          "review_status",
          "effective_proposition"
        ],
        "title": "SourceClaimProposalReviewResponse",
        "type": "object"
      },
      "SourceClaimProviderInvocationResponse": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "outcome": {
            "enum": ["completed", "refused", "malformed", "unavailable"],
            "title": "Outcome",
            "type": "string"
          },
          "outcome_message": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome Message"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "passage_count": {
            "maximum": 16.0,
            "minimum": 1.0,
            "title": "Passage Count",
            "type": "integer"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "response_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response Sha256"
          },
          "served_model": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Model"
          },
          "served_provider": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Served Provider"
          },
          "tool_access": {
            "const": false,
            "default": false,
            "title": "Tool Access",
            "type": "boolean"
          },
          "transmitted_char_count": {
            "maximum": 24000.0,
            "minimum": 1.0,
            "title": "Transmitted Char Count",
            "type": "integer"
          },
          "transmitted_passages_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Transmitted Passages Sha256",
            "type": "string"
          },
          "trust_labels": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimTrustLabel"
            },
            "maxItems": 17,
            "minItems": 1,
            "title": "Trust Labels",
            "type": "array"
          },
          "trust_renderer_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Trust Renderer Version",
            "type": "string"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "config_version",
          "config_sha256",
          "trust_renderer_version",
          "prompt_sha256",
          "request_sha256",
          "transmitted_passages_sha256",
          "passage_count",
          "transmitted_char_count",
          "outcome",
          "trust_labels"
        ],
        "title": "SourceClaimProviderInvocationResponse",
        "type": "object"
      },
      "SourceClaimQualifier": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": [
              "uncertainty",
              "condition",
              "exception",
              "comparison",
              "quantity",
              "attribution",
              "other"
            ],
            "title": "Kind",
            "type": "string"
          },
          "text": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["kind", "text"],
        "title": "SourceClaimQualifier",
        "type": "object"
      },
      "SourceClaimRelationshipResponse": {
        "additionalProperties": false,
        "properties": {
          "basis": {
            "enum": ["deterministic_normalization", "provider_suggested"],
            "title": "Basis",
            "type": "string"
          },
          "rationale": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "relation": {
            "enum": ["duplicate", "conflicts"],
            "title": "Relation",
            "type": "string"
          },
          "target_proposal_id": {
            "pattern": "^claimprop_[a-f0-9]{40}$",
            "title": "Target Proposal Id",
            "type": "string"
          }
        },
        "required": ["target_proposal_id", "relation", "basis", "rationale"],
        "title": "SourceClaimRelationshipResponse",
        "type": "object"
      },
      "SourceClaimReviewDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "edit", "reject", "defer"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^claimdec_[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "edited_proposition": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Proposition"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "proposal_id": {
            "pattern": "^claimprop_[a-f0-9]{40}$",
            "title": "Proposal Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "run_id": {
            "pattern": "^claimrun_[a-f0-9]{40}$",
            "title": "Run Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.6.0",
            "default": "2.6.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "package_id",
          "run_id",
          "proposal_id",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "SourceClaimReviewDecisionResponse",
        "type": "object"
      },
      "SourceClaimReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept", "edit", "reject", "defer"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "edited_proposition": {
            "anyOf": [
              {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edited Proposition"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["action", "comment", "idempotency_key"],
        "title": "SourceClaimReviewRequest",
        "type": "object"
      },
      "SourceClaimRunHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimExtractionRunResponse"
            },
            "maxItems": 4096,
            "title": "Runs",
            "type": "array"
          }
        },
        "required": ["package_id", "generated_at"],
        "title": "SourceClaimRunHistoryResponse",
        "type": "object"
      },
      "SourceClaimScope": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "items": {
              "maxLength": 500,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 32,
            "title": "Applicability",
            "type": "array"
          },
          "geographic": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Geographic"
          },
          "population": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Population"
          },
          "subject": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Subject",
            "type": "string"
          },
          "temporal": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Temporal"
          }
        },
        "required": ["subject"],
        "title": "SourceClaimScope",
        "type": "object"
      },
      "SourceClaimTrustLabel": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "instruction_semantics": {
            "const": "non-instruction",
            "default": "non-instruction",
            "title": "Instruction Semantics",
            "type": "string"
          },
          "origin": {
            "enum": ["instructor", "source_extraction"],
            "title": "Origin",
            "type": "string"
          },
          "original_chars": {
            "minimum": 0.0,
            "title": "Original Chars",
            "type": "integer"
          },
          "rendered_chars": {
            "minimum": 0.0,
            "title": "Rendered Chars",
            "type": "integer"
          },
          "rendered_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendered Content Sha256",
            "type": "string"
          },
          "truncated": {
            "const": false,
            "default": false,
            "title": "Truncated",
            "type": "boolean"
          },
          "trust": {
            "const": "untrusted",
            "default": "untrusted",
            "title": "Trust",
            "type": "string"
          }
        },
        "required": [
          "id",
          "origin",
          "content_sha256",
          "rendered_content_sha256",
          "original_chars",
          "rendered_chars"
        ],
        "title": "SourceClaimTrustLabel",
        "type": "object"
      },
      "SourceClaimWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "canonical_claims": {
            "items": {
              "$ref": "#/components/schemas/SourceCanonicalClaimResponse"
            },
            "maxItems": 16384,
            "title": "Canonical Claims",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "proposals": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimProposalReviewResponse"
            },
            "maxItems": 16384,
            "title": "Proposals",
            "type": "array"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/SourceClaimExtractionRunResponse"
            },
            "maxItems": 4096,
            "title": "Runs",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceClaimWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary"],
        "title": "SourceClaimWorkspaceResponse",
        "type": "object"
      },
      "SourceClaimWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "accepted": {
            "minimum": 0.0,
            "title": "Accepted",
            "type": "integer"
          },
          "canonical_claims": {
            "minimum": 0.0,
            "title": "Canonical Claims",
            "type": "integer"
          },
          "canonical_revisions": {
            "minimum": 0.0,
            "title": "Canonical Revisions",
            "type": "integer"
          },
          "deferred": {
            "minimum": 0.0,
            "title": "Deferred",
            "type": "integer"
          },
          "edited": {
            "minimum": 0.0,
            "title": "Edited",
            "type": "integer"
          },
          "failed_runs": {
            "minimum": 0.0,
            "title": "Failed Runs",
            "type": "integer"
          },
          "proposed": {
            "minimum": 0.0,
            "title": "Proposed",
            "type": "integer"
          },
          "rejected": {
            "minimum": 0.0,
            "title": "Rejected",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          },
          "total_proposals": {
            "minimum": 0.0,
            "title": "Total Proposals",
            "type": "integer"
          }
        },
        "required": [
          "total_proposals",
          "proposed",
          "accepted",
          "edited",
          "rejected",
          "deferred",
          "stale",
          "failed_runs",
          "canonical_claims",
          "canonical_revisions"
        ],
        "title": "SourceClaimWorkspaceSummary",
        "type": "object"
      },
      "SourceClassificationRecord": {
        "additionalProperties": false,
        "properties": {
          "contains_personal_data": {
            "default": "unknown",
            "enum": ["yes", "no", "unknown"],
            "title": "Contains Personal Data",
            "type": "string"
          },
          "data_class": {
            "default": "unknown",
            "enum": ["public", "institution_internal", "confidential", "restricted", "unknown"],
            "title": "Data Class",
            "type": "string"
          },
          "review_status": {
            "default": "unchecked",
            "enum": ["unchecked", "pending", "reviewed"],
            "title": "Review Status",
            "type": "string"
          }
        },
        "title": "SourceClassificationRecord",
        "type": "object"
      },
      "SourceConceptExplorationGraphResponse": {
        "description": "Limited subgraph around the exploration focus.",
        "properties": {
          "edges": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptGraphEdgeResponse"
            },
            "title": "Edges",
            "type": "array"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptGraphNodeResponse"
            },
            "title": "Nodes",
            "type": "array"
          }
        },
        "title": "SourceConceptExplorationGraphResponse",
        "type": "object"
      },
      "SourceConceptExplorationRequest": {
        "description": "Graph-aware concept exploration request.",
        "properties": {
          "focus_concept_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Focus Concept Id"
          },
          "force_graph_rebuild": {
            "default": false,
            "title": "Force Graph Rebuild",
            "type": "boolean"
          },
          "include_prerequisites": {
            "default": true,
            "title": "Include Prerequisites",
            "type": "boolean"
          },
          "include_related": {
            "default": true,
            "title": "Include Related",
            "type": "boolean"
          },
          "query": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Query",
            "type": "string"
          },
          "retrieval_strategy": {
            "default": "hybrid",
            "enum": ["dense", "sparse", "hybrid", "rerank", "multi-query"],
            "title": "Retrieval Strategy",
            "type": "string"
          },
          "top_k": {
            "default": 5,
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Top K",
            "type": "integer"
          }
        },
        "required": ["query"],
        "title": "SourceConceptExplorationRequest",
        "type": "object"
      },
      "SourceConceptExplorationResponse": {
        "description": "Graph-aware exploration result for prerequisite and concept flows.",
        "properties": {
          "explored_at": {
            "format": "date-time",
            "title": "Explored At",
            "type": "string"
          },
          "focus_concept_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Focus Concept Id"
          },
          "focus_concept_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Focus Concept Label"
          },
          "graph": {
            "$ref": "#/components/schemas/SourceConceptExplorationGraphResponse"
          },
          "matched_concepts": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptMatchResponse"
            },
            "title": "Matched Concepts",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "prerequisite_chain": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptPrerequisiteStepResponse"
            },
            "title": "Prerequisite Chain",
            "type": "array"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "related_concepts": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptMatchResponse"
            },
            "title": "Related Concepts",
            "type": "array"
          },
          "retrieval": {
            "$ref": "#/components/schemas/SourceRetrievalResponse"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          }
        },
        "required": ["package_id", "scope", "query", "graph", "retrieval", "explored_at"],
        "title": "SourceConceptExplorationResponse",
        "type": "object"
      },
      "SourceConceptGraphEdgeResponse": {
        "description": "Relationship edge between concept nodes.",
        "properties": {
          "confidence": {
            "default": 1,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "source_concept_id": {
            "title": "Source Concept Id",
            "type": "string"
          },
          "target_concept_id": {
            "title": "Target Concept Id",
            "type": "string"
          },
          "type": {
            "enum": [
              "prerequisite",
              "related",
              "part_of",
              "generalizes",
              "specializes",
              "enables",
              "conflicts",
              "complements"
            ],
            "title": "Type",
            "type": "string"
          },
          "weight": {
            "default": 1,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Weight",
            "type": "number"
          }
        },
        "required": ["id", "source_concept_id", "target_concept_id", "type", "rationale"],
        "title": "SourceConceptGraphEdgeResponse",
        "type": "object"
      },
      "SourceConceptGraphNodeResponse": {
        "description": "Concept node derived from approved source material.",
        "properties": {
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "difficulty": {
            "default": 0.5,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Difficulty",
            "type": "number"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "importance": {
            "default": 0.5,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Importance",
            "type": "number"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "related_terms": {
            "items": {
              "type": "string"
            },
            "title": "Related Terms",
            "type": "array"
          },
          "source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Item Ids",
            "type": "array"
          },
          "type": {
            "enum": ["topic", "skill", "fact", "procedure", "principle"],
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["id", "label", "type"],
        "title": "SourceConceptGraphNodeResponse",
        "type": "object"
      },
      "SourceConceptGraphRepairOperationRequest": {
        "description": "Single operator repair operation for a concept graph.",
        "properties": {
          "confidence": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "edge_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edge Id"
          },
          "edge_type": {
            "anyOf": [
              {
                "enum": [
                  "prerequisite",
                  "related",
                  "part_of",
                  "generalizes",
                  "specializes",
                  "enables",
                  "conflicts",
                  "complements"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Edge Type"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "label": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "node_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Node Id"
          },
          "operation": {
            "enum": [
              "delete_node",
              "delete_edge",
              "update_node_label",
              "update_edge_type",
              "update_edge_confidence",
              "add_edge"
            ],
            "title": "Operation",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "source_concept_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Concept Id"
          },
          "target_concept_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Concept Id"
          }
        },
        "required": ["operation"],
        "title": "SourceConceptGraphRepairOperationRequest",
        "type": "object"
      },
      "SourceConceptGraphRepairRequest": {
        "description": "Operator repair request for a persisted concept graph.",
        "properties": {
          "comment": {
            "default": "",
            "maxLength": 2000,
            "title": "Comment",
            "type": "string"
          },
          "operations": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptGraphRepairOperationRequest"
            },
            "maxItems": 25,
            "minItems": 1,
            "title": "Operations",
            "type": "array"
          }
        },
        "required": ["operations"],
        "title": "SourceConceptGraphRepairRequest",
        "type": "object"
      },
      "SourceConceptGraphRepairResponse": {
        "description": "Updated concept graph and validation report after repair.",
        "properties": {
          "graph": {
            "$ref": "#/components/schemas/SourceConceptGraphResponse"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "repaired_at": {
            "format": "date-time",
            "title": "Repaired At",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "validation": {
            "$ref": "#/components/schemas/SourceConceptGraphValidationResponse"
          }
        },
        "required": ["package_id", "scope", "graph", "validation", "repaired_at"],
        "title": "SourceConceptGraphRepairResponse",
        "type": "object"
      },
      "SourceConceptGraphRequest": {
        "description": "Request to build or refresh a concept graph.",
        "properties": {
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          }
        },
        "title": "SourceConceptGraphRequest",
        "type": "object"
      },
      "SourceConceptGraphResponse": {
        "description": "Persisted concept graph for a source package.",
        "properties": {
          "edges": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptGraphEdgeResponse"
            },
            "title": "Edges",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptGraphNodeResponse"
            },
            "title": "Nodes",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          }
        },
        "required": ["package_id", "scope", "generated_at"],
        "title": "SourceConceptGraphResponse",
        "type": "object"
      },
      "SourceConceptGraphValidationIssueResponse": {
        "description": "Validation issue found in a persisted concept graph.",
        "properties": {
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "edge_ids": {
            "items": {
              "type": "string"
            },
            "title": "Edge Ids",
            "type": "array"
          },
          "issue_id": {
            "title": "Issue Id",
            "type": "string"
          },
          "issue_type": {
            "enum": [
              "cycle",
              "orphan_node",
              "dangling_edge",
              "low_confidence_edge",
              "evidence_gap"
            ],
            "title": "Issue Type",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "severity": {
            "enum": ["warning", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "suggested_repair": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested Repair"
          }
        },
        "required": ["issue_id", "severity", "issue_type", "message"],
        "title": "SourceConceptGraphValidationIssueResponse",
        "type": "object"
      },
      "SourceConceptGraphValidationRequest": {
        "description": "Request to validate an existing concept graph.",
        "properties": {
          "force_graph_rebuild": {
            "default": false,
            "title": "Force Graph Rebuild",
            "type": "boolean"
          }
        },
        "title": "SourceConceptGraphValidationRequest",
        "type": "object"
      },
      "SourceConceptGraphValidationResponse": {
        "description": "Validation report for a persisted concept graph.",
        "properties": {
          "graph_generated_at": {
            "format": "date-time",
            "title": "Graph Generated At",
            "type": "string"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/SourceConceptGraphValidationIssueResponse"
            },
            "title": "Issues",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceConceptGraphValidationSummaryResponse"
          },
          "validated_at": {
            "format": "date-time",
            "title": "Validated At",
            "type": "string"
          }
        },
        "required": ["package_id", "scope", "graph_generated_at", "summary", "validated_at"],
        "title": "SourceConceptGraphValidationResponse",
        "type": "object"
      },
      "SourceConceptGraphValidationSummaryResponse": {
        "description": "Aggregate validation counts.",
        "properties": {
          "critical_issues": {
            "default": 0,
            "minimum": 0.0,
            "title": "Critical Issues",
            "type": "integer"
          },
          "cycle_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Cycle Count",
            "type": "integer"
          },
          "orphan_node_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Orphan Node Count",
            "type": "integer"
          },
          "total_issues": {
            "default": 0,
            "minimum": 0.0,
            "title": "Total Issues",
            "type": "integer"
          },
          "warning_issues": {
            "default": 0,
            "minimum": 0.0,
            "title": "Warning Issues",
            "type": "integer"
          }
        },
        "title": "SourceConceptGraphValidationSummaryResponse",
        "type": "object"
      },
      "SourceConceptMatchResponse": {
        "description": "Ranked concept match for an exploration query.",
        "properties": {
          "concept_id": {
            "title": "Concept Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "match_reason": {
            "title": "Match Reason",
            "type": "string"
          },
          "score": {
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["concept_id", "label", "score", "match_reason"],
        "title": "SourceConceptMatchResponse",
        "type": "object"
      },
      "SourceConceptPrerequisiteStepResponse": {
        "description": "Ordered prerequisite step for a focus concept.",
        "properties": {
          "concept_id": {
            "title": "Concept Id",
            "type": "string"
          },
          "depth": {
            "minimum": 0.0,
            "title": "Depth",
            "type": "integer"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "relation_type": {
            "const": "prerequisite",
            "default": "prerequisite",
            "title": "Relation Type",
            "type": "string"
          }
        },
        "required": ["concept_id", "label", "depth"],
        "title": "SourceConceptPrerequisiteStepResponse",
        "type": "object"
      },
      "SourceConflict": {
        "additionalProperties": false,
        "description": "Two claims that cannot both be relied on without a decision.",
        "properties": {
          "claim_ids": {
            "items": {
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Claim Ids",
            "type": "array"
          },
          "conflict_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Conflict Id",
            "type": "string"
          },
          "description": {
            "maxLength": 1000,
            "minLength": 8,
            "title": "Description",
            "type": "string"
          },
          "detected_at": {
            "format": "date-time",
            "title": "Detected At",
            "type": "string"
          },
          "kind": {
            "enum": ["within_source", "cross_source", "version", "jurisdiction", "perspective"],
            "title": "Kind",
            "type": "string"
          },
          "relation": {
            "enum": ["compatible", "contradiction", "difference", "unclear"],
            "title": "Relation",
            "type": "string"
          },
          "resolution": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution"
          },
          "resolved_by": {
            "anyOf": [
              {
                "maxLength": 200,
                "minLength": 2,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved By"
          }
        },
        "required": ["conflict_id", "kind", "relation", "claim_ids", "description", "detected_at"],
        "title": "SourceConflict",
        "type": "object"
      },
      "SourceConnectorPreviewItemResponse": {
        "properties": {
          "connector_type": {
            "enum": [
              "scorm_manifest",
              "imscc_manifest",
              "lti_export_bundle",
              "institutional_archive_bundle",
              "generic_zip_bundle"
            ],
            "title": "Connector Type",
            "type": "string"
          },
          "institution_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Institution Name"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "module_titles": {
            "items": {
              "type": "string"
            },
            "title": "Module Titles",
            "type": "array"
          },
          "package_type": {
            "enum": ["scorm", "imscc", "lti_export", "institutional_archive", "zip_bundle"],
            "title": "Package Type",
            "type": "string"
          },
          "resource_count": {
            "minimum": 0.0,
            "title": "Resource Count",
            "type": "integer"
          },
          "status": {
            "enum": ["ready", "partial", "unsupported"],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "item_id",
          "label",
          "package_type",
          "connector_type",
          "status",
          "title",
          "resource_count"
        ],
        "title": "SourceConnectorPreviewItemResponse",
        "type": "object"
      },
      "SourceConnectorPreviewResponse": {
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceConnectorPreviewItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "status": {
            "enum": ["ready", "partial", "unsupported"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["package_id", "status", "generated_at"],
        "title": "SourceConnectorPreviewResponse",
        "type": "object"
      },
      "SourceConnectorRecord": {
        "additionalProperties": false,
        "properties": {
          "change_semantics": {
            "default": "unknown",
            "enum": ["immutable", "upsert", "deleted", "unknown"],
            "title": "Change Semantics",
            "type": "string"
          },
          "connector_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Connector Id",
            "type": "string"
          },
          "connector_type": {
            "enum": [
              "multipart_upload",
              "presigned_upload",
              "http_url",
              "http_feed",
              "lms_api",
              "repository_api",
              "doi_registry",
              "manual_entry"
            ],
            "title": "Connector Type",
            "type": "string"
          },
          "connector_version": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Connector Version",
            "type": "string"
          },
          "credential_ref": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Credential Ref"
          },
          "external_id": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Id"
          },
          "external_version": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "External Version"
          },
          "granted_scopes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Granted Scopes",
            "type": "array"
          },
          "item_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Count"
          },
          "page_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Page Count"
          },
          "provider": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "rate_limit_remaining": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate Limit Remaining"
          },
          "retrieval_receipt_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "title": "Retrieval Receipt Sha256S",
            "type": "array"
          }
        },
        "required": ["connector_type", "connector_id", "connector_version", "provider"],
        "title": "SourceConnectorRecord",
        "type": "object"
      },
      "SourceContinuousRecertificationAdmission": {
        "description": "Authenticated allow decision issued by the canonical REL-003 evaluator.",
        "properties": {
          "artifactSha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifactsha256",
            "type": "string"
          },
          "decisionId": {
            "pattern": "^recert_decision_[a-f0-9]{40}$",
            "title": "Decisionid",
            "type": "string"
          },
          "evaluatedAt": {
            "format": "date-time",
            "title": "Evaluatedat",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "title": "Expiresat",
            "type": "string"
          },
          "graphId": {
            "maxLength": 240,
            "minLength": 3,
            "pattern": "^[a-z][a-z0-9]*(?:[._:/-][a-z0-9]+)*$",
            "title": "Graphid",
            "type": "string"
          },
          "graphRevision": {
            "minimum": 1.0,
            "title": "Graphrevision",
            "type": "integer"
          },
          "inputFingerprintSha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Inputfingerprintsha256",
            "type": "string"
          },
          "planId": {
            "pattern": "^recert_plan_[a-f0-9]{40}$",
            "title": "Planid",
            "type": "string"
          },
          "policyRef": {
            "maxLength": 240,
            "minLength": 3,
            "pattern": "^[a-z][a-z0-9]*(?:[._:/-][a-z0-9]+)*$",
            "title": "Policyref",
            "type": "string"
          },
          "receiptSha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receiptsha256",
            "type": "string"
          },
          "releaseRef": {
            "maxLength": 240,
            "minLength": 3,
            "pattern": "^[a-z][a-z0-9]*(?:[._:/-][a-z0-9]+)*$",
            "title": "Releaseref",
            "type": "string"
          },
          "schemaVersion": {
            "const": 1,
            "title": "Schemaversion",
            "type": "integer"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          },
          "slotIds": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Slotids",
            "type": "array"
          }
        },
        "required": [
          "schemaVersion",
          "decisionId",
          "planId",
          "releaseRef",
          "policyRef",
          "graphId",
          "graphRevision",
          "inputFingerprintSha256",
          "slotIds",
          "artifactSha256",
          "evaluatedAt",
          "expiresAt",
          "receiptSha256",
          "signature"
        ],
        "title": "SourceContinuousRecertificationAdmission",
        "type": "object"
      },
      "SourceCredibilityEvaluationResponse": {
        "description": "Credibility scoring for source material used in a Metis build.",
        "properties": {
          "authority_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Authority Score",
            "type": "number"
          },
          "coverage_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Coverage Score",
            "type": "number"
          },
          "currency_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Currency Score",
            "type": "number"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "high_credibility_source_count": {
            "minimum": 0.0,
            "title": "High Credibility Source Count",
            "type": "integer"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "review_required_source_count": {
            "minimum": 0.0,
            "title": "Review Required Source Count",
            "type": "integer"
          },
          "source_count": {
            "minimum": 0.0,
            "title": "Source Count",
            "type": "integer"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "overall_score",
          "authority_score",
          "currency_score",
          "coverage_score",
          "source_count",
          "high_credibility_source_count",
          "review_required_source_count",
          "status"
        ],
        "title": "SourceCredibilityEvaluationResponse",
        "type": "object"
      },
      "SourceCurrencyMetadata": {
        "additionalProperties": false,
        "properties": {
          "effective_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective At"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "published_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Published At"
          },
          "retraction": {
            "$ref": "#/components/schemas/SourceRetractionMetadata"
          },
          "retrieved_at": {
            "format": "date-time",
            "title": "Retrieved At",
            "type": "string"
          },
          "review_interval_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Review Interval Days",
            "type": "integer"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "subject_volatility": {
            "enum": ["low", "moderate", "high", "critical"],
            "title": "Subject Volatility",
            "type": "string"
          },
          "superseded_by_source_version_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Superseded By Source Version Id"
          },
          "supersedes_source_version_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Source Version Id"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          }
        },
        "required": ["retrieved_at", "subject_volatility", "review_interval_days"],
        "title": "SourceCurrencyMetadata",
        "type": "object"
      },
      "SourceDependencyEdge": {
        "additionalProperties": false,
        "properties": {
          "edge_id": {
            "pattern": "^depedge_[a-f0-9]{40}$",
            "title": "Edge Id",
            "type": "string"
          },
          "evidence_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Evidence Refs",
            "type": "array"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "relationship": {
            "enum": [
              "was_derived_from",
              "was_revision_of",
              "cites",
              "renders",
              "explains",
              "constrains",
              "bundles",
              "reviews",
              "releases",
              "delivers"
            ],
            "title": "Relationship",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_node_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Source Node Id",
            "type": "string"
          },
          "source_revision_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Source Revision Id",
            "type": "string"
          },
          "target_node_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Target Node Id",
            "type": "string"
          },
          "target_revision_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Target Revision Id",
            "type": "string"
          }
        },
        "required": [
          "edge_id",
          "relationship",
          "source_node_id",
          "target_node_id",
          "source_revision_id",
          "target_revision_id",
          "recorded_at",
          "self_sha256"
        ],
        "title": "SourceDependencyEdge",
        "type": "object"
      },
      "SourceDependencyGraphResponse": {
        "additionalProperties": false,
        "properties": {
          "artifact_fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Artifact Fingerprint Sha256",
            "type": "string"
          },
          "edges": {
            "items": {
              "$ref": "#/components/schemas/SourceDependencyEdge"
            },
            "title": "Edges",
            "type": "array"
          },
          "forward_edge_ids": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Forward Edge Ids",
            "type": "object"
          },
          "graph_id": {
            "pattern": "^depgraph_[a-f0-9]{40}$",
            "title": "Graph Id",
            "type": "string"
          },
          "graph_revision": {
            "minimum": 1.0,
            "title": "Graph Revision",
            "type": "integer"
          },
          "graph_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Graph Sha256",
            "type": "string"
          },
          "materialized_at": {
            "format": "date-time",
            "title": "Materialized At",
            "type": "string"
          },
          "nodes": {
            "items": {
              "$ref": "#/components/schemas/SourceDependencyNode"
            },
            "title": "Nodes",
            "type": "array"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "property_scope": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Property Scope",
            "type": "string"
          },
          "reverse_edge_ids": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Reverse Edge Ids",
            "type": "object"
          },
          "schema_version": {
            "const": "2.9.0",
            "default": "2.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "unknown_dependency_count": {
            "minimum": 0.0,
            "title": "Unknown Dependency Count",
            "type": "integer"
          }
        },
        "required": [
          "graph_id",
          "graph_revision",
          "package_id",
          "tenant_id",
          "property_scope",
          "artifact_fingerprint_sha256",
          "materialized_at",
          "nodes",
          "edges",
          "forward_edge_ids",
          "reverse_edge_ids",
          "unknown_dependency_count",
          "graph_sha256"
        ],
        "title": "SourceDependencyGraphResponse",
        "type": "object"
      },
      "SourceDependencyNode": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "current_revision": {
            "title": "Current Revision",
            "type": "boolean"
          },
          "details": {
            "additionalProperties": true,
            "title": "Details",
            "type": "object"
          },
          "entity_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Entity Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "source_version",
              "extraction",
              "claim_revision",
              "citation_version",
              "outline",
              "lesson",
              "assessment_item",
              "feedback",
              "study_artifact",
              "tutor_prompt",
              "promotion_bundle",
              "publication_candidate",
              "publication_review",
              "publication_release",
              "learner_delivery",
              "unknown_dependency"
            ],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "lifecycle": {
            "enum": [
              "active",
              "draft",
              "review",
              "published",
              "delivered",
              "stale",
              "blocked",
              "unknown"
            ],
            "title": "Lifecycle",
            "type": "string"
          },
          "node_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Node Id",
            "type": "string"
          },
          "property_scope": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Property Scope",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "node_id",
          "kind",
          "entity_id",
          "revision_id",
          "label",
          "tenant_id",
          "property_scope",
          "lifecycle",
          "current_revision",
          "content_sha256"
        ],
        "title": "SourceDependencyNode",
        "type": "object"
      },
      "SourceDiversityEvaluationResponse": {
        "description": "Source-diversity checks for a Metis build.",
        "properties": {
          "citation_kind_count": {
            "minimum": 0.0,
            "title": "Citation Kind Count",
            "type": "integer"
          },
          "dominant_source_ratio": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Dominant Source Ratio",
            "type": "number"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "source_kind_count": {
            "minimum": 0.0,
            "title": "Source Kind Count",
            "type": "integer"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "unique_author_count": {
            "minimum": 0.0,
            "title": "Unique Author Count",
            "type": "integer"
          },
          "unique_publisher_count": {
            "minimum": 0.0,
            "title": "Unique Publisher Count",
            "type": "integer"
          },
          "unique_source_count": {
            "minimum": 0.0,
            "title": "Unique Source Count",
            "type": "integer"
          },
          "used_source_count": {
            "minimum": 0.0,
            "title": "Used Source Count",
            "type": "integer"
          }
        },
        "required": [
          "overall_score",
          "unique_source_count",
          "used_source_count",
          "unique_author_count",
          "unique_publisher_count",
          "citation_kind_count",
          "source_kind_count",
          "dominant_source_ratio",
          "status"
        ],
        "title": "SourceDiversityEvaluationResponse",
        "type": "object"
      },
      "SourceEntityExtractionEvaluationResponse": {
        "description": "Concept-entity extraction quality for graph-backed Metis sources.",
        "properties": {
          "citation_backed_node_count": {
            "minimum": 0.0,
            "title": "Citation Backed Node Count",
            "type": "integer"
          },
          "covered_source_count": {
            "minimum": 0.0,
            "title": "Covered Source Count",
            "type": "integer"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "graph_node_count": {
            "minimum": 0.0,
            "title": "Graph Node Count",
            "type": "integer"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "source_backed_node_count": {
            "minimum": 0.0,
            "title": "Source Backed Node Count",
            "type": "integer"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "uncovered_source_count": {
            "minimum": 0.0,
            "title": "Uncovered Source Count",
            "type": "integer"
          }
        },
        "required": [
          "overall_score",
          "graph_node_count",
          "source_backed_node_count",
          "citation_backed_node_count",
          "covered_source_count",
          "uncovered_source_count",
          "status"
        ],
        "title": "SourceEntityExtractionEvaluationResponse",
        "type": "object"
      },
      "SourceEvaluationRequest": {
        "description": "Request a grounded build evaluation run for a source package.",
        "properties": {
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          }
        },
        "title": "SourceEvaluationRequest",
        "type": "object"
      },
      "SourceEvaluationResponse": {
        "description": "Persisted grounded build evaluation for a generated source package.",
        "properties": {
          "citation_drift_unit_count": {
            "minimum": 0.0,
            "title": "Citation Drift Unit Count",
            "type": "integer"
          },
          "citation_integrity_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Citation Integrity Score",
            "type": "number"
          },
          "correctness_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Correctness Score",
            "type": "number"
          },
          "credibility": {
            "$ref": "#/components/schemas/SourceCredibilityEvaluationResponse"
          },
          "entity_extraction": {
            "$ref": "#/components/schemas/SourceEntityExtractionEvaluationResponse"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "graph_answer_quality": {
            "$ref": "#/components/schemas/SourceGraphAnswerQualityEvaluationResponse"
          },
          "grounded_unit_count": {
            "minimum": 0.0,
            "title": "Grounded Unit Count",
            "type": "integer"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "relation_accuracy": {
            "$ref": "#/components/schemas/SourceRelationAccuracyEvaluationResponse"
          },
          "retrieval_quality": {
            "$ref": "#/components/schemas/SourceRetrievalQualityEvaluationResponse"
          },
          "scope_title": {
            "title": "Scope Title",
            "type": "string"
          },
          "source_diversity": {
            "$ref": "#/components/schemas/SourceDiversityEvaluationResponse"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "total_claim_count": {
            "minimum": 0.0,
            "title": "Total Claim Count",
            "type": "integer"
          },
          "total_unit_count": {
            "minimum": 0.0,
            "title": "Total Unit Count",
            "type": "integer"
          },
          "unknown_citation_ref_count": {
            "minimum": 0.0,
            "title": "Unknown Citation Ref Count",
            "type": "integer"
          },
          "unsupported_claim_count": {
            "minimum": 0.0,
            "title": "Unsupported Claim Count",
            "type": "integer"
          },
          "unsupported_claim_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Unsupported Claim Score",
            "type": "number"
          }
        },
        "required": [
          "package_id",
          "title",
          "scope_title",
          "overall_score",
          "correctness_score",
          "citation_integrity_score",
          "unsupported_claim_score",
          "total_unit_count",
          "grounded_unit_count",
          "total_claim_count",
          "unsupported_claim_count",
          "unknown_citation_ref_count",
          "citation_drift_unit_count",
          "credibility",
          "source_diversity",
          "entity_extraction",
          "relation_accuracy",
          "retrieval_quality",
          "graph_answer_quality",
          "status",
          "generated_at",
          "evaluated_at"
        ],
        "title": "SourceEvaluationResponse",
        "type": "object"
      },
      "SourceEvidenceRetentionResponse": {
        "additionalProperties": false,
        "description": "Retention, legal-hold, and access metadata attached to immutable evidence.",
        "properties": {
          "access_roles": {
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "maxItems": 2,
            "minItems": 1,
            "title": "Access Roles",
            "type": "array"
          },
          "disposition_receipt_required": {
            "const": true,
            "default": true,
            "title": "Disposition Receipt Required",
            "type": "boolean"
          },
          "legal_hold": {
            "default": false,
            "title": "Legal Hold",
            "type": "boolean"
          },
          "mode": {
            "const": "governance",
            "default": "governance",
            "title": "Mode",
            "type": "string"
          },
          "policy_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Policy Id",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "retain_until": {
            "format": "date-time",
            "title": "Retain Until",
            "type": "string"
          },
          "retained_at": {
            "format": "date-time",
            "title": "Retained At",
            "type": "string"
          }
        },
        "required": ["policy_id", "policy_version", "retained_at", "retain_until", "access_roles"],
        "title": "SourceEvidenceRetentionResponse",
        "type": "object"
      },
      "SourceExtractionCorruptionHistoryResponse": {
        "additionalProperties": false,
        "description": "Access-controlled corruption receipts retained separately from immutable history.",
        "properties": {
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "receipts": {
            "items": {
              "$ref": "#/components/schemas/SourceExtractionCorruptionReceiptResponse"
            },
            "title": "Receipts",
            "type": "array"
          },
          "schema_version": {
            "const": "2.4.0",
            "default": "2.4.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["package_id", "receipts"],
        "title": "SourceExtractionCorruptionHistoryResponse",
        "type": "object"
      },
      "SourceExtractionCorruptionReceiptResponse": {
        "additionalProperties": false,
        "description": "Append-only evidence that corrupt history was quarantined from reuse.",
        "properties": {
          "artifact_kind": {
            "enum": [
              "run_manifest",
              "run_response",
              "output_binding",
              "encrypted_original",
              "source_version_manifest",
              "selection_transition",
              "anchor_migration"
            ],
            "title": "Artifact Kind",
            "type": "string"
          },
          "artifact_ref": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Artifact Ref",
            "type": "string"
          },
          "detected_at": {
            "format": "date-time",
            "title": "Detected At",
            "type": "string"
          },
          "disposition": {
            "const": "quarantined_from_reuse",
            "default": "quarantined_from_reuse",
            "title": "Disposition",
            "type": "string"
          },
          "expected_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Sha256"
          },
          "extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extraction Id"
          },
          "history_rewritten": {
            "const": false,
            "default": false,
            "title": "History Rewritten",
            "type": "boolean"
          },
          "observed_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed Sha256"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "receipt_id": {
            "pattern": "^extraction_corruption_[a-f0-9]{24}$",
            "title": "Receipt Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "2.4.0",
            "default": "2.4.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "receipt_id",
          "package_id",
          "artifact_kind",
          "artifact_ref",
          "detected_at",
          "receipt_sha256"
        ],
        "title": "SourceExtractionCorruptionReceiptResponse",
        "type": "object"
      },
      "SourceExtractionHistoryResponse": {
        "additionalProperties": false,
        "description": "Access-controlled immutable extraction history for one source package.",
        "properties": {
          "accepted_anchor_migrations": {
            "items": {
              "$ref": "#/components/schemas/SourceAcceptedAnchorMigrationResponse"
            },
            "title": "Accepted Anchor Migrations",
            "type": "array"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "runs": {
            "items": {
              "$ref": "#/components/schemas/SourceExtractionRunManifestResponse"
            },
            "title": "Runs",
            "type": "array"
          },
          "schema_version": {
            "const": "2.4.0",
            "default": "2.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selected_extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Extraction Id"
          },
          "transitions": {
            "items": {
              "$ref": "#/components/schemas/SourceExtractionSelectionTransitionResponse"
            },
            "title": "Transitions",
            "type": "array"
          }
        },
        "required": ["package_id", "runs", "transitions"],
        "title": "SourceExtractionHistoryResponse",
        "type": "object"
      },
      "SourceExtractionItemDiffResponse": {
        "additionalProperties": false,
        "description": "Hash-level output and anchor differences for one ingestion item.",
        "properties": {
          "added_anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100000,
            "title": "Added Anchor Ids",
            "type": "array"
          },
          "current_item_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Item Sha256"
          },
          "disposition": {
            "enum": ["added", "removed", "changed", "unchanged"],
            "title": "Disposition",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "previous_item_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Item Sha256"
          },
          "removed_anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100000,
            "title": "Removed Anchor Ids",
            "type": "array"
          },
          "retained_anchor_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100000,
            "title": "Retained Anchor Ids",
            "type": "array"
          }
        },
        "required": ["ingestion_item_id", "disposition"],
        "title": "SourceExtractionItemDiffResponse",
        "type": "object"
      },
      "SourceExtractionItemResponse": {
        "additionalProperties": false,
        "description": "Extracted representation of a single ingestion item.",
        "properties": {
          "citations": {
            "items": {
              "$ref": "#/components/schemas/ExtractedCitationResponse"
            },
            "title": "Citations",
            "type": "array"
          },
          "diagnostics": {
            "$ref": "#/components/schemas/ExtractedDiagnosticsResponse"
          },
          "document": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ExtractedDocumentResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/ExtractionErrorResponse"
            },
            "title": "Errors",
            "type": "array"
          },
          "extractor": {
            "$ref": "#/components/schemas/SourceExtractorIdentityResponse"
          },
          "format": {
            "title": "Format",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "ingestion_item_id": {
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "kind": {
            "enum": ["file", "url", "feed", "package", "lms", "repository", "doi", "manual_record"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/ExtractedMetadataResponse"
          },
          "processing": {
            "$ref": "#/components/schemas/ExtractedProcessingResponse"
          },
          "rights": {
            "$ref": "#/components/schemas/ExtractedRightsRecordResponse"
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/ExtractedSectionResponse"
            },
            "title": "Sections",
            "type": "array"
          },
          "source_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Sha256"
          },
          "status": {
            "enum": ["complete", "partial", "failed"],
            "title": "Status",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          },
          "text_preview": {
            "title": "Text Preview",
            "type": "string"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": [
          "id",
          "ingestion_item_id",
          "kind",
          "label",
          "status",
          "format",
          "extractor",
          "text",
          "text_preview",
          "metadata",
          "processing",
          "diagnostics",
          "rights"
        ],
        "title": "SourceExtractionItemResponse",
        "type": "object"
      },
      "SourceExtractionModelUsageResponse": {
        "additionalProperties": false,
        "description": "Explicitly record that deterministic source extraction does not invoke a model.",
        "properties": {
          "config_sha256": {
            "title": "Config Sha256",
            "type": "null"
          },
          "model": {
            "title": "Model",
            "type": "null"
          },
          "provider": {
            "title": "Provider",
            "type": "null"
          },
          "rationale": {
            "const": "Source extraction is parser/OCR only; no model semantics are generated.",
            "default": "Source extraction is parser/OCR only; no model semantics are generated.",
            "title": "Rationale",
            "type": "string"
          },
          "used": {
            "const": false,
            "default": false,
            "title": "Used",
            "type": "boolean"
          },
          "version": {
            "title": "Version",
            "type": "null"
          }
        },
        "title": "SourceExtractionModelUsageResponse",
        "type": "object"
      },
      "SourceExtractionOutputBindingResponse": {
        "additionalProperties": false,
        "description": "Hash and provenance binding for one extraction item output.",
        "properties": {
          "anchor_basis": {
            "items": {
              "enum": [
                "text_position",
                "page_region",
                "section_path",
                "temporal_fragment",
                "media_fragment",
                "archive_member"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "title": "Anchor Basis",
            "type": "array"
          },
          "binding_id": {
            "pattern": "^output_binding_[a-f0-9]{24}$",
            "title": "Binding Id",
            "type": "string"
          },
          "confidence_count": {
            "minimum": 0.0,
            "title": "Confidence Count",
            "type": "integer"
          },
          "confidence_evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Confidence Evidence Sha256",
            "type": "string"
          },
          "document_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Sha256"
          },
          "error_evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Error Evidence Sha256",
            "type": "string"
          },
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "item_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Item Sha256",
            "type": "string"
          },
          "maximum_confidence": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Confidence"
          },
          "minimum_confidence": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Confidence"
          },
          "normalized_text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Normalized Text Sha256",
            "type": "string"
          },
          "output_schema_version": {
            "const": "2.3.0",
            "default": "2.3.0",
            "title": "Output Schema Version",
            "type": "string"
          },
          "provenance_kinds": {
            "items": {
              "enum": ["source_declared", "source_embedded", "derived", "ocr"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Provenance Kinds",
            "type": "array"
          },
          "source_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Sha256"
          }
        },
        "required": [
          "binding_id",
          "extraction_id",
          "ingestion_item_id",
          "item_sha256",
          "normalized_text_sha256",
          "confidence_count",
          "confidence_evidence_sha256",
          "error_evidence_sha256"
        ],
        "title": "SourceExtractionOutputBindingResponse",
        "type": "object"
      },
      "SourceExtractionRequest": {
        "additionalProperties": false,
        "description": "Trigger extraction over an ingestion package.",
        "properties": {
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          },
          "parent_extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Extraction Id"
          },
          "retry_key": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9._:-]+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retry Key"
          }
        },
        "title": "SourceExtractionRequest",
        "type": "object"
      },
      "SourceExtractionResponse": {
        "additionalProperties": false,
        "description": "Persisted extraction package response.",
        "properties": {
          "extracted_at": {
            "format": "date-time",
            "title": "Extracted At",
            "type": "string"
          },
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "extractor": {
            "$ref": "#/components/schemas/SourceExtractorIdentityResponse"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceExtractionItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "review_status": {
            "enum": ["pending", "approved", "changes_requested", "rejected"],
            "title": "Review Status",
            "type": "string"
          },
          "schema_version": {
            "const": "2.3.0",
            "default": "2.3.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "status": {
            "enum": ["complete", "partial", "failed"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceExtractionSummaryResponse"
          }
        },
        "required": [
          "extraction_id",
          "package_id",
          "scope",
          "extractor",
          "review_status",
          "status",
          "items",
          "summary",
          "extracted_at"
        ],
        "title": "SourceExtractionResponse",
        "type": "object"
      },
      "SourceExtractionRunComparisonResponse": {
        "additionalProperties": false,
        "description": "Immutable hash and anchor diff from an explicit parent run.",
        "properties": {
          "added_items": {
            "minimum": 0.0,
            "title": "Added Items",
            "type": "integer"
          },
          "changed_items": {
            "minimum": 0.0,
            "title": "Changed Items",
            "type": "integer"
          },
          "comparison_id": {
            "pattern": "^extraction_comparison_[a-f0-9]{24}$",
            "title": "Comparison Id",
            "type": "string"
          },
          "comparison_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Comparison Sha256",
            "type": "string"
          },
          "current_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Current Extraction Id",
            "type": "string"
          },
          "current_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Current Output Sha256",
            "type": "string"
          },
          "item_diffs": {
            "items": {
              "$ref": "#/components/schemas/SourceExtractionItemDiffResponse"
            },
            "maxItems": 100000,
            "title": "Item Diffs",
            "type": "array"
          },
          "output_changed": {
            "title": "Output Changed",
            "type": "boolean"
          },
          "parent_extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Parent Extraction Id",
            "type": "string"
          },
          "parent_output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Parent Output Sha256",
            "type": "string"
          },
          "removed_items": {
            "minimum": 0.0,
            "title": "Removed Items",
            "type": "integer"
          },
          "unchanged_items": {
            "minimum": 0.0,
            "title": "Unchanged Items",
            "type": "integer"
          }
        },
        "required": [
          "comparison_id",
          "parent_extraction_id",
          "current_extraction_id",
          "parent_output_sha256",
          "current_output_sha256",
          "output_changed",
          "added_items",
          "removed_items",
          "changed_items",
          "unchanged_items",
          "item_diffs",
          "comparison_sha256"
        ],
        "title": "SourceExtractionRunComparisonResponse",
        "type": "object"
      },
      "SourceExtractionRunManifestResponse": {
        "additionalProperties": false,
        "description": "Append-only run manifest binding one invocation to exact inputs and outputs.",
        "properties": {
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceExtractionRunComparisonResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "error_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 100000,
            "title": "Error Codes",
            "type": "array"
          },
          "extraction_id": {
            "pattern": "^extraction_[a-f0-9]{24}$",
            "title": "Extraction Id",
            "type": "string"
          },
          "extractor": {
            "$ref": "#/components/schemas/SourceExtractorIdentityResponse"
          },
          "input_fingerprint_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Fingerprint Sha256",
            "type": "string"
          },
          "manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          },
          "model_usage": {
            "$ref": "#/components/schemas/SourceExtractionModelUsageResponse"
          },
          "originals": {
            "items": {
              "$ref": "#/components/schemas/SourceOriginalArtifactResponse"
            },
            "title": "Originals",
            "type": "array"
          },
          "output_bindings": {
            "items": {
              "$ref": "#/components/schemas/SourceExtractionOutputBindingResponse"
            },
            "title": "Output Bindings",
            "type": "array"
          },
          "output_ref": {
            "pattern": "^metis-extraction://[A-Za-z0-9._/-]+$",
            "title": "Output Ref",
            "type": "string"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "parent_extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parent Extraction Id"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "retention": {
            "$ref": "#/components/schemas/SourceEvidenceRetentionResponse"
          },
          "retry_key_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retry Key Sha256"
          },
          "schema_version": {
            "const": "2.4.0",
            "default": "2.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_package_version": {
            "minimum": 1.0,
            "title": "Source Package Version",
            "type": "integer"
          },
          "status": {
            "enum": ["complete", "partial", "failed"],
            "title": "Status",
            "type": "string"
          },
          "supersedes_extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Supersedes Extraction Id"
          }
        },
        "required": [
          "extraction_id",
          "package_id",
          "source_package_version",
          "input_fingerprint_sha256",
          "extractor",
          "model_usage",
          "status",
          "originals",
          "output_bindings",
          "output_ref",
          "output_sha256",
          "recorded_at",
          "retention",
          "manifest_sha256"
        ],
        "title": "SourceExtractionRunManifestResponse",
        "type": "object"
      },
      "SourceExtractionSelectionTransitionResponse": {
        "additionalProperties": false,
        "description": "Append-only evidence for activation or explicit invalidation of a current projection.",
        "properties": {
          "occurred_at": {
            "format": "date-time",
            "title": "Occurred At",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "previous_extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Extraction Id"
          },
          "previous_output_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Output Sha256"
          },
          "reason": {
            "enum": ["initial", "reextract", "retry", "source_refresh"],
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "2.4.0",
            "default": "2.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "selected_extraction_id": {
            "anyOf": [
              {
                "pattern": "^extraction_[a-f0-9]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Extraction Id"
          },
          "selected_output_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Output Sha256"
          },
          "transition_id": {
            "pattern": "^extraction_transition_[a-f0-9]{24}$",
            "title": "Transition Id",
            "type": "string"
          },
          "transition_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Transition Sha256",
            "type": "string"
          }
        },
        "required": ["transition_id", "package_id", "reason", "occurred_at", "transition_sha256"],
        "title": "SourceExtractionSelectionTransitionResponse",
        "type": "object"
      },
      "SourceExtractionSummaryResponse": {
        "additionalProperties": false,
        "description": "Aggregate counts for extraction.",
        "properties": {
          "citation_count": {
            "minimum": 0.0,
            "title": "Citation Count",
            "type": "integer"
          },
          "complete_items": {
            "minimum": 0.0,
            "title": "Complete Items",
            "type": "integer"
          },
          "equation_count": {
            "minimum": 0.0,
            "title": "Equation Count",
            "type": "integer"
          },
          "error_count": {
            "minimum": 0.0,
            "title": "Error Count",
            "type": "integer"
          },
          "failed_items": {
            "minimum": 0.0,
            "title": "Failed Items",
            "type": "integer"
          },
          "media_count": {
            "minimum": 0.0,
            "title": "Media Count",
            "type": "integer"
          },
          "node_count": {
            "minimum": 0.0,
            "title": "Node Count",
            "type": "integer"
          },
          "ocr_failure_count": {
            "minimum": 0.0,
            "title": "Ocr Failure Count",
            "type": "integer"
          },
          "parser_failure_count": {
            "minimum": 0.0,
            "title": "Parser Failure Count",
            "type": "integer"
          },
          "partial_items": {
            "minimum": 0.0,
            "title": "Partial Items",
            "type": "integer"
          },
          "section_count": {
            "minimum": 0.0,
            "title": "Section Count",
            "type": "integer"
          },
          "table_count": {
            "minimum": 0.0,
            "title": "Table Count",
            "type": "integer"
          },
          "total_items": {
            "minimum": 0.0,
            "title": "Total Items",
            "type": "integer"
          }
        },
        "required": [
          "total_items",
          "complete_items",
          "partial_items",
          "failed_items",
          "citation_count",
          "section_count",
          "node_count",
          "table_count",
          "equation_count",
          "media_count",
          "error_count",
          "parser_failure_count",
          "ocr_failure_count"
        ],
        "title": "SourceExtractionSummaryResponse",
        "type": "object"
      },
      "SourceExtractorIdentityResponse": {
        "additionalProperties": false,
        "description": "Hash-bound extractor, configuration, and runtime identity.",
        "properties": {
          "components": {
            "items": {
              "$ref": "#/components/schemas/ExtractionRuntimeComponentResponse"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Components",
            "type": "array"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "config_version": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Config Version",
            "type": "string"
          },
          "name": {
            "const": "metis-source-document-extractor",
            "title": "Name",
            "type": "string"
          },
          "runtime_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Runtime Sha256",
            "type": "string"
          },
          "runtime_version": {
            "maxLength": 128,
            "minLength": 1,
            "title": "Runtime Version",
            "type": "string"
          },
          "version": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "name",
          "version",
          "config_version",
          "config_sha256",
          "runtime_version",
          "runtime_sha256",
          "components"
        ],
        "title": "SourceExtractorIdentityResponse",
        "type": "object"
      },
      "SourceGovernanceEvidence": {
        "additionalProperties": false,
        "properties": {
          "content_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Sha256"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "evidence_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Evidence Id",
            "type": "string"
          },
          "issuer": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issuer"
          },
          "kind": {
            "enum": [
              "publisher_record",
              "author_record",
              "institution_record",
              "issuer_record",
              "credential",
              "license_text",
              "registry_record",
              "source_statement",
              "retrieval_receipt",
              "review_record",
              "other"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locator": {
            "maxLength": 4096,
            "minLength": 1,
            "title": "Locator",
            "type": "string"
          },
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          }
        },
        "required": ["evidence_id", "kind", "locator", "description", "observed_at"],
        "title": "SourceGovernanceEvidence",
        "type": "object"
      },
      "SourceGovernanceItemResponse": {
        "additionalProperties": false,
        "properties": {
          "current_validation": {
            "$ref": "#/components/schemas/SourceGovernanceValidationResponse"
          },
          "decisions": {
            "items": {
              "$ref": "#/components/schemas/SourceGovernanceReviewDecisionResponse"
            },
            "maxItems": 1024,
            "title": "Decisions",
            "type": "array"
          },
          "item_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "item_kind": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Item Kind",
            "type": "string"
          },
          "item_label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Item Label",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "package_title": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Title",
            "type": "string"
          },
          "review_status": {
            "enum": ["pending", "approved", "changes_requested", "rejected", "deferred", "stale"],
            "title": "Review Status",
            "type": "string"
          },
          "revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceGovernanceRevisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_version_record_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Version Record Id"
          },
          "source_version_record_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Version Record Sha256"
          }
        },
        "required": [
          "package_id",
          "package_title",
          "item_id",
          "item_label",
          "item_kind",
          "current_validation",
          "review_status"
        ],
        "title": "SourceGovernanceItemResponse",
        "type": "object"
      },
      "SourceGovernancePackageResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceGovernanceItemResponse"
            },
            "maxItems": 4096,
            "title": "Items",
            "type": "array"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "package_title": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Title",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["package_id", "package_title", "tenant_id", "generated_at"],
        "title": "SourceGovernancePackageResponse",
        "type": "object"
      },
      "SourceGovernanceReviewDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject", "defer"],
            "title": "Action",
            "type": "string"
          },
          "blocker_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 512,
            "title": "Blocker Codes",
            "type": "array"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^govdec_[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "item_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "revision_id": {
            "pattern": "^govrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.5.0",
            "default": "2.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "package_id",
          "item_id",
          "revision_id",
          "validation_sha256",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "SourceGovernanceReviewDecisionResponse",
        "type": "object"
      },
      "SourceGovernanceReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject", "defer"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 255,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["action", "comment", "idempotency_key"],
        "title": "SourceGovernanceReviewRequest",
        "type": "object"
      },
      "SourceGovernanceRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/SourceMetadataConflict"
            },
            "maxItems": 128,
            "title": "Conflicts",
            "type": "array"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/SourceGovernanceEvidence"
            },
            "maxItems": 256,
            "title": "Evidence",
            "type": "array"
          },
          "item_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "normalized": {
            "$ref": "#/components/schemas/SourceNormalizedGovernanceMetadata"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "previous_revision_id": {
            "anyOf": [
              {
                "pattern": "^govrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Id"
          },
          "raw_metadata": {
            "additionalProperties": true,
            "title": "Raw Metadata",
            "type": "object"
          },
          "revision_id": {
            "pattern": "^govrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_number": {
            "minimum": 1.0,
            "title": "Revision Number",
            "type": "integer"
          },
          "schema_version": {
            "const": "2.5.0",
            "default": "2.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_version_record_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Version Record Id",
            "type": "string"
          },
          "source_version_record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Version Record Sha256",
            "type": "string"
          },
          "stored_validation": {
            "$ref": "#/components/schemas/SourceGovernanceValidationResponse"
          },
          "submission_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Submission Sha256",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "submitted_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Submitted By",
            "type": "string"
          }
        },
        "required": [
          "revision_id",
          "revision_number",
          "package_id",
          "item_id",
          "source_version_record_id",
          "source_version_record_sha256",
          "submitted_by",
          "submitted_at",
          "normalized",
          "submission_sha256",
          "stored_validation",
          "self_sha256"
        ],
        "title": "SourceGovernanceRevisionResponse",
        "type": "object"
      },
      "SourceGovernanceSubmissionRequest": {
        "additionalProperties": false,
        "properties": {
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/SourceMetadataConflict"
            },
            "maxItems": 128,
            "title": "Conflicts",
            "type": "array"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/SourceGovernanceEvidence"
            },
            "maxItems": 256,
            "title": "Evidence",
            "type": "array"
          },
          "idempotency_key": {
            "maxLength": 255,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "normalized": {
            "$ref": "#/components/schemas/SourceNormalizedGovernanceMetadata"
          },
          "raw_metadata": {
            "additionalProperties": true,
            "title": "Raw Metadata",
            "type": "object"
          },
          "schema_version": {
            "const": "2.5.0",
            "default": "2.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["idempotency_key", "normalized"],
        "title": "SourceGovernanceSubmissionRequest",
        "type": "object"
      },
      "SourceGovernanceValidationIssue": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": ["completeness", "compatibility", "freshness", "conflict", "evidence"],
            "title": "Category",
            "type": "string"
          },
          "code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "field_path": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "message": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "severity": {
            "enum": ["blocker", "warning", "notice"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "category", "severity", "field_path", "message"],
        "title": "SourceGovernanceValidationIssue",
        "type": "object"
      },
      "SourceGovernanceValidationResponse": {
        "additionalProperties": false,
        "properties": {
          "approval_eligible": {
            "title": "Approval Eligible",
            "type": "boolean"
          },
          "compatible": {
            "title": "Compatible",
            "type": "boolean"
          },
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "fresh": {
            "title": "Fresh",
            "type": "boolean"
          },
          "freshness_status": {
            "enum": [
              "unknown",
              "current",
              "review_due",
              "expired",
              "future_effective",
              "superseded",
              "retracted"
            ],
            "title": "Freshness Status",
            "type": "string"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/SourceGovernanceValidationIssue"
            },
            "maxItems": 512,
            "title": "Issues",
            "type": "array"
          },
          "next_review_due_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Review Due At"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          }
        },
        "required": [
          "evaluated_at",
          "complete",
          "compatible",
          "fresh",
          "approval_eligible",
          "freshness_status",
          "validation_sha256"
        ],
        "title": "SourceGovernanceValidationResponse",
        "type": "object"
      },
      "SourceGovernanceWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceGovernanceItemResponse"
            },
            "maxItems": 16384,
            "title": "Items",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceGovernanceWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary"],
        "title": "SourceGovernanceWorkspaceResponse",
        "type": "object"
      },
      "SourceGovernanceWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "approval_eligible": {
            "minimum": 0.0,
            "title": "Approval Eligible",
            "type": "integer"
          },
          "approved": {
            "minimum": 0.0,
            "title": "Approved",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "missing_metadata": {
            "minimum": 0.0,
            "title": "Missing Metadata",
            "type": "integer"
          },
          "stale": {
            "minimum": 0.0,
            "title": "Stale",
            "type": "integer"
          },
          "total_items": {
            "minimum": 0.0,
            "title": "Total Items",
            "type": "integer"
          }
        },
        "required": [
          "total_items",
          "missing_metadata",
          "approval_eligible",
          "blocked",
          "stale",
          "approved"
        ],
        "title": "SourceGovernanceWorkspaceSummary",
        "type": "object"
      },
      "SourceGradeRange": {
        "additionalProperties": false,
        "properties": {
          "maximum": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Maximum",
            "type": "string"
          },
          "minimum": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Minimum",
            "type": "string"
          },
          "system": {
            "maxLength": 255,
            "minLength": 1,
            "title": "System",
            "type": "string"
          }
        },
        "required": ["system", "minimum", "maximum"],
        "title": "SourceGradeRange",
        "type": "object"
      },
      "SourceGraphAnswerQualityEvaluationResponse": {
        "description": "Graph-linked answer quality for grounded Metis build artifacts.",
        "properties": {
          "evaluated_unit_count": {
            "minimum": 0.0,
            "title": "Evaluated Unit Count",
            "type": "integer"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "graph_applied_unit_count": {
            "minimum": 0.0,
            "title": "Graph Applied Unit Count",
            "type": "integer"
          },
          "graph_supported_unit_count": {
            "minimum": 0.0,
            "title": "Graph Supported Unit Count",
            "type": "integer"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "unsupported_unit_count": {
            "minimum": 0.0,
            "title": "Unsupported Unit Count",
            "type": "integer"
          }
        },
        "required": [
          "overall_score",
          "evaluated_unit_count",
          "graph_supported_unit_count",
          "graph_applied_unit_count",
          "unsupported_unit_count",
          "status"
        ],
        "title": "SourceGraphAnswerQualityEvaluationResponse",
        "type": "object"
      },
      "SourceImpactRecord": {
        "additionalProperties": false,
        "properties": {
          "change_event_id": {
            "pattern": "^sourcechange_[a-f0-9]{40}$",
            "title": "Change Event Id",
            "type": "string"
          },
          "current_revision": {
            "title": "Current Revision",
            "type": "boolean"
          },
          "current_revision_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Current Revision Id",
            "type": "string"
          },
          "depth": {
            "maximum": 255.0,
            "minimum": 0.0,
            "title": "Depth",
            "type": "integer"
          },
          "entity_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Entity Id",
            "type": "string"
          },
          "impact_id": {
            "pattern": "^impact_[a-f0-9]{40}$",
            "title": "Impact Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "source_version",
              "extraction",
              "claim_revision",
              "citation_version",
              "outline",
              "lesson",
              "assessment_item",
              "feedback",
              "study_artifact",
              "tutor_prompt",
              "promotion_bundle",
              "publication_candidate",
              "publication_review",
              "publication_release",
              "learner_delivery",
              "unknown_dependency"
            ],
            "title": "Kind",
            "type": "string"
          },
          "node_id": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Node Id",
            "type": "string"
          },
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Name",
            "type": "string"
          },
          "path_edge_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 255,
            "title": "Path Edge Ids",
            "type": "array"
          },
          "path_node_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Path Node Ids",
            "type": "array"
          },
          "prior_lifecycle": {
            "enum": [
              "active",
              "draft",
              "review",
              "published",
              "delivered",
              "stale",
              "blocked",
              "unknown"
            ],
            "title": "Prior Lifecycle",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "required_actions": {
            "items": {
              "enum": ["re_source", "revise", "review", "rebuild", "unpublish"],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Required Actions",
            "type": "array"
          },
          "status": {
            "enum": ["current", "stale", "blocked", "unknown"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "impact_id",
          "change_event_id",
          "node_id",
          "kind",
          "entity_id",
          "current_revision_id",
          "current_revision",
          "prior_lifecycle",
          "status",
          "reason",
          "path_node_ids",
          "depth",
          "owner_id",
          "owner_name"
        ],
        "title": "SourceImpactRecord",
        "type": "object"
      },
      "SourceImpactWorkspaceItem": {
        "additionalProperties": false,
        "properties": {
          "authority_name": {
            "title": "Authority Name",
            "type": "string"
          },
          "blocked_count": {
            "title": "Blocked Count",
            "type": "integer"
          },
          "change_event_id": {
            "title": "Change Event Id",
            "type": "string"
          },
          "change_type": {
            "enum": ["updated", "superseded", "retracted", "rights_changed"],
            "title": "Change Type",
            "type": "string"
          },
          "effective_at": {
            "format": "date-time",
            "title": "Effective At",
            "type": "string"
          },
          "graph_revision": {
            "title": "Graph Revision",
            "type": "integer"
          },
          "impact_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Impact Snapshot Sha256",
            "type": "string"
          },
          "owner_name": {
            "title": "Owner Name",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "package_title": {
            "title": "Package Title",
            "type": "string"
          },
          "property_scope": {
            "title": "Property Scope",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "stale_count": {
            "title": "Stale Count",
            "type": "integer"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "total_impacts": {
            "title": "Total Impacts",
            "type": "integer"
          },
          "unknown_count": {
            "title": "Unknown Count",
            "type": "integer"
          }
        },
        "required": [
          "package_id",
          "package_title",
          "tenant_id",
          "property_scope",
          "change_event_id",
          "change_type",
          "effective_at",
          "reason",
          "authority_name",
          "graph_revision",
          "impact_snapshot_sha256",
          "total_impacts",
          "stale_count",
          "blocked_count",
          "unknown_count",
          "owner_name"
        ],
        "title": "SourceImpactWorkspaceItem",
        "type": "object"
      },
      "SourceImpactWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceImpactWorkspaceItem"
            },
            "title": "Items",
            "type": "array"
          },
          "schema_version": {
            "const": "2.9.0",
            "default": "2.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceImpactWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "items"],
        "title": "SourceImpactWorkspaceResponse",
        "type": "object"
      },
      "SourceImpactWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "change_events": {
            "minimum": 0.0,
            "title": "Change Events",
            "type": "integer"
          },
          "open_impacts": {
            "minimum": 0.0,
            "title": "Open Impacts",
            "type": "integer"
          },
          "packages": {
            "minimum": 0.0,
            "title": "Packages",
            "type": "integer"
          },
          "routed_remediations": {
            "minimum": 0.0,
            "title": "Routed Remediations",
            "type": "integer"
          },
          "unknown_dependencies": {
            "minimum": 0.0,
            "title": "Unknown Dependencies",
            "type": "integer"
          }
        },
        "required": [
          "packages",
          "change_events",
          "open_impacts",
          "blocked",
          "unknown_dependencies",
          "routed_remediations"
        ],
        "title": "SourceImpactWorkspaceSummary",
        "type": "object"
      },
      "SourceIngestionCreateRequest": {
        "description": "Create an ingestion package from raw source inputs.",
        "properties": {
          "connectors": {
            "items": {
              "$ref": "#/components/schemas/ConnectorIngestionInput"
            },
            "title": "Connectors",
            "type": "array"
          },
          "dois": {
            "items": {
              "$ref": "#/components/schemas/DoiIngestionInput"
            },
            "title": "Dois",
            "type": "array"
          },
          "feeds": {
            "items": {
              "$ref": "#/components/schemas/FeedIngestionInput"
            },
            "title": "Feeds",
            "type": "array"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/FileIngestionInput"
            },
            "title": "Files",
            "type": "array"
          },
          "manual_records": {
            "items": {
              "$ref": "#/components/schemas/ManualRecordIngestionInput"
            },
            "title": "Manual Records",
            "type": "array"
          },
          "packages": {
            "items": {
              "$ref": "#/components/schemas/PackageIngestionInput"
            },
            "title": "Packages",
            "type": "array"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "summary": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "title": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "urls": {
            "items": {
              "$ref": "#/components/schemas/UrlIngestionInput"
            },
            "title": "Urls",
            "type": "array"
          }
        },
        "required": ["title", "scope"],
        "title": "SourceIngestionCreateRequest",
        "type": "object"
      },
      "SourceIngestionItemResponse": {
        "description": "Normalized state for an ingested item.",
        "properties": {
          "content_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Type"
          },
          "durable_source": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DurableSourceResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "enum": ["file", "url", "feed", "package", "lms", "repository", "doi", "manual_record"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sha256"
          },
          "size_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Size Bytes"
          },
          "source_uri": {
            "title": "Source Uri",
            "type": "string"
          },
          "source_version_record": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceVersionRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "staging_uri": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Staging Uri"
          },
          "status": {
            "enum": ["registered", "snapshotted", "partial", "failed"],
            "title": "Status",
            "type": "string"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": ["id", "kind", "label", "status", "source_uri"],
        "title": "SourceIngestionItemResponse",
        "type": "object"
      },
      "SourceIngestionResponse": {
        "description": "Top-level ingestion package response.",
        "properties": {
          "counts": {
            "$ref": "#/components/schemas/SourceIngestionSummaryResponse"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceIngestionItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "last_refreshed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Refreshed At"
          },
          "requested_by": {
            "title": "Requested By",
            "type": "string"
          },
          "requested_by_name": {
            "title": "Requested By Name",
            "type": "string"
          },
          "review": {
            "$ref": "#/components/schemas/SourcePackageReviewStateResponse"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "source_version": {
            "default": 1,
            "minimum": 1.0,
            "title": "Source Version",
            "type": "integer"
          },
          "status": {
            "enum": ["registered", "partial", "complete"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "tenant_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tenant Id"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "usage_policy": {
            "$ref": "#/components/schemas/SourcePackageUsagePolicyResponse"
          }
        },
        "required": [
          "id",
          "title",
          "scope",
          "requested_by",
          "requested_by_name",
          "status",
          "review",
          "usage_policy",
          "items",
          "counts",
          "created_at",
          "updated_at"
        ],
        "title": "SourceIngestionResponse",
        "type": "object"
      },
      "SourceIngestionSummaryResponse": {
        "description": "Aggregate counts for an ingestion package.",
        "properties": {
          "failed_items": {
            "title": "Failed Items",
            "type": "integer"
          },
          "registered_items": {
            "title": "Registered Items",
            "type": "integer"
          },
          "snapshotted_items": {
            "title": "Snapshotted Items",
            "type": "integer"
          },
          "total_items": {
            "title": "Total Items",
            "type": "integer"
          }
        },
        "required": ["total_items", "registered_items", "snapshotted_items", "failed_items"],
        "title": "SourceIngestionSummaryResponse",
        "type": "object"
      },
      "SourceInterpretationArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_kind": {
            "const": "source_interpretation",
            "default": "source_interpretation",
            "title": "Artifact Kind",
            "type": "string"
          },
          "claim": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Claim",
            "type": "string"
          },
          "context": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Context",
            "type": "string"
          },
          "corroboration": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Corroboration",
            "type": "array"
          },
          "counterevidence": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Counterevidence",
            "type": "array"
          },
          "primary_sources": {
            "items": {
              "$ref": "#/components/schemas/InterpretationSource"
            },
            "minItems": 1,
            "title": "Primary Sources",
            "type": "array"
          },
          "secondary_sources": {
            "items": {
              "$ref": "#/components/schemas/InterpretationSource"
            },
            "minItems": 1,
            "title": "Secondary Sources",
            "type": "array"
          }
        },
        "required": [
          "context",
          "primary_sources",
          "secondary_sources",
          "claim",
          "corroboration",
          "counterevidence"
        ],
        "title": "SourceInterpretationArtifact",
        "type": "object"
      },
      "SourceInvalidationResult": {
        "additionalProperties": false,
        "description": "What a source change did to a job.",
        "properties": {
          "dropped_unit_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Dropped Unit Ids",
            "type": "array"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "revision": {
            "title": "Revision",
            "type": "string"
          },
          "stale_unit_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Stale Unit Ids",
            "type": "array"
          }
        },
        "required": ["job_id", "revision"],
        "title": "SourceInvalidationResult",
        "type": "object"
      },
      "SourceJurisdictionConflict": {
        "additionalProperties": false,
        "properties": {
          "conflict_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Conflict Id",
            "type": "string"
          },
          "description": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Evidence Ids",
            "type": "array"
          },
          "jurisdiction_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 2,
            "title": "Jurisdiction Codes",
            "type": "array"
          },
          "resolution": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution"
          },
          "status": {
            "enum": ["unresolved", "resolved", "accepted_limitation"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["conflict_id", "jurisdiction_codes", "description", "status", "evidence_ids"],
        "title": "SourceJurisdictionConflict",
        "type": "object"
      },
      "SourceJurisdictionMetadata": {
        "additionalProperties": false,
        "properties": {
          "applicability": {
            "enum": ["applies", "conditional", "informational", "not_applicable"],
            "title": "Applicability",
            "type": "string"
          },
          "applicability_conditions": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Applicability Conditions",
            "type": "array"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/SourceJurisdictionConflict"
            },
            "maxItems": 64,
            "title": "Conflicts",
            "type": "array"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "excluded_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Excluded Codes",
            "type": "array"
          },
          "geographic_scope": {
            "enum": [
              "global",
              "country",
              "subdivision",
              "locality",
              "institution",
              "multi_jurisdiction"
            ],
            "title": "Geographic Scope",
            "type": "string"
          },
          "included_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Included Codes",
            "type": "array"
          }
        },
        "required": ["geographic_scope", "included_codes", "applicability"],
        "title": "SourceJurisdictionMetadata",
        "type": "object"
      },
      "SourceLearnerDeliveryResponse": {
        "description": "Signed, archived publication payload returned to an authorized learner.",
        "properties": {
          "adaptive_plan": {
            "$ref": "#/components/schemas/SourceAdaptivePlanResponse"
          },
          "delivered_at": {
            "format": "date-time",
            "title": "Delivered At",
            "type": "string"
          },
          "delivery_id": {
            "pattern": "^delivery_[a-f0-9]{40}$",
            "title": "Delivery Id",
            "type": "string"
          },
          "experience": {
            "$ref": "#/components/schemas/SourceRenderedExperienceResponse"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "release": {
            "$ref": "#/components/schemas/SourcePublicationReleaseResponse"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          }
        },
        "required": [
          "delivery_id",
          "learner_id",
          "delivered_at",
          "release",
          "adaptive_plan",
          "experience",
          "receipt_sha256",
          "signature"
        ],
        "title": "SourceLearnerDeliveryResponse",
        "type": "object"
      },
      "SourceLessonModelEvidenceResponse": {
        "properties": {
          "input_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Input Tokens",
            "type": "integer"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "output_tokens": {
            "default": 0,
            "minimum": 0.0,
            "title": "Output Tokens",
            "type": "integer"
          },
          "prompt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Prompt Sha256",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "response_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Sha256",
            "type": "string"
          },
          "retrieved_result_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Retrieved Result Ids",
            "type": "array"
          },
          "used_citation_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Used Citation Ids",
            "type": "array"
          }
        },
        "required": [
          "provider",
          "model",
          "prompt_version",
          "prompt_sha256",
          "request_sha256",
          "response_sha256",
          "retrieved_result_ids",
          "used_citation_ids"
        ],
        "title": "SourceLessonModelEvidenceResponse",
        "type": "object"
      },
      "SourceLessonPromotionReceipt": {
        "description": "Signed P0 verification receipt for one exact generated lesson.",
        "properties": {
          "evidence": {
            "$ref": "#/components/schemas/TypeScriptEvidenceRecord"
          },
          "gateProfile": {
            "const": "metis-p0-v1",
            "title": "Gateprofile",
            "type": "string"
          },
          "lessonId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Lessonid",
            "type": "string"
          },
          "receiptSha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receiptsha256",
            "type": "string"
          },
          "schemaVersion": {
            "const": "1.0.0",
            "title": "Schemaversion",
            "type": "string"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          }
        },
        "required": [
          "schemaVersion",
          "gateProfile",
          "lessonId",
          "evidence",
          "receiptSha256",
          "signature"
        ],
        "title": "SourceLessonPromotionReceipt",
        "type": "object"
      },
      "SourceLicenseMetadata": {
        "additionalProperties": false,
        "properties": {
          "attribution": {
            "$ref": "#/components/schemas/SourceAttributionRequirement"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "license_identifier": {
            "anyOf": [
              {
                "maxLength": 512,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Identifier"
          },
          "license_name": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Name"
          },
          "license_status": {
            "enum": [
              "unknown",
              "declared",
              "registry_reported",
              "verified",
              "public_domain",
              "restricted"
            ],
            "title": "License Status",
            "type": "string"
          },
          "license_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Uri"
          },
          "license_version": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Version"
          },
          "owner_authority_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Owner Authority Ids",
            "type": "array"
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/SourceLicensePermission"
            },
            "maxItems": 7,
            "title": "Permissions",
            "type": "array"
          },
          "source_identity": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Source Identity",
            "type": "string"
          },
          "source_version": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Source Version",
            "type": "string"
          },
          "term": {
            "$ref": "#/components/schemas/SourceLicenseTerm"
          },
          "territory_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Territory Codes",
            "type": "array"
          }
        },
        "required": [
          "source_identity",
          "source_version",
          "owner_authority_ids",
          "license_status",
          "attribution",
          "term"
        ],
        "title": "SourceLicenseMetadata",
        "type": "object"
      },
      "SourceLicensePermission": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["access", "use", "reproduce", "adapt", "teach", "train", "distribute"],
            "title": "Action",
            "type": "string"
          },
          "conditions": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Conditions",
            "type": "array"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence Ids",
            "type": "array"
          },
          "state": {
            "enum": ["allowed", "prohibited", "conditional", "unknown"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["action", "state"],
        "title": "SourceLicensePermission",
        "type": "object"
      },
      "SourceLicenseTerm": {
        "additionalProperties": false,
        "properties": {
          "ends_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ends On"
          },
          "perpetual": {
            "default": false,
            "title": "Perpetual",
            "type": "boolean"
          },
          "starts_on": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Starts On"
          },
          "termination_conditions": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Termination Conditions",
            "type": "array"
          }
        },
        "title": "SourceLicenseTerm",
        "type": "object"
      },
      "SourceLifecycleRecord": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "deleted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deleted At"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "quarantine_status": {
            "enum": ["pending_scan", "not_applicable", "legacy_unverified"],
            "title": "Quarantine Status",
            "type": "string"
          },
          "state": {
            "enum": [
              "quarantined",
              "registered",
              "snapshotted",
              "metadata_only",
              "tombstoned",
              "failed"
            ],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["state", "quarantine_status", "created_at"],
        "title": "SourceLifecycleRecord",
        "type": "object"
      },
      "SourceMetadataConflict": {
        "additionalProperties": false,
        "properties": {
          "conflict_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Conflict Id",
            "type": "string"
          },
          "field_path": {
            "maxLength": 512,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "resolution": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolution"
          },
          "resolved_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          },
          "resolved_by": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved By"
          },
          "status": {
            "enum": ["unresolved", "resolved", "accepted_limitation"],
            "title": "Status",
            "type": "string"
          },
          "values": {
            "items": {
              "$ref": "#/components/schemas/SourceMetadataConflictValue"
            },
            "maxItems": 32,
            "minItems": 2,
            "title": "Values",
            "type": "array"
          }
        },
        "required": ["conflict_id", "field_path", "values", "status"],
        "title": "SourceMetadataConflict",
        "type": "object"
      },
      "SourceMetadataConflictValue": {
        "additionalProperties": false,
        "properties": {
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Evidence Ids",
            "type": "array"
          },
          "value": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value"],
        "title": "SourceMetadataConflictValue",
        "type": "object"
      },
      "SourceMultipartUploadResponse": {
        "additionalProperties": false,
        "properties": {
          "declared_content_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Declared Content Type",
            "type": "string"
          },
          "detected_content_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Detected Content Type",
            "type": "string"
          },
          "encrypted_artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Encrypted Artifact Sha256",
            "type": "string"
          },
          "encryption_algorithm": {
            "const": "AES-256-GCM",
            "default": "AES-256-GCM",
            "title": "Encryption Algorithm",
            "type": "string"
          },
          "encryption_envelope_version": {
            "const": "metis-aes-gcm-envelope/1",
            "default": "metis-aes-gcm-envelope/1",
            "title": "Encryption Envelope Version",
            "type": "string"
          },
          "encryption_key_id": {
            "maxLength": 128,
            "minLength": 1,
            "title": "Encryption Key Id",
            "type": "string"
          },
          "file_name": {
            "maxLength": 512,
            "minLength": 1,
            "title": "File Name",
            "type": "string"
          },
          "quarantine_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Quarantine Id",
            "type": "string"
          },
          "sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Sha256",
            "type": "string"
          },
          "size_bytes": {
            "minimum": 1.0,
            "title": "Size Bytes",
            "type": "integer"
          },
          "source_version": {
            "$ref": "#/components/schemas/SourceVersionRecord"
          }
        },
        "required": [
          "quarantine_id",
          "file_name",
          "declared_content_type",
          "detected_content_type",
          "size_bytes",
          "sha256",
          "encrypted_artifact_sha256",
          "encryption_key_id",
          "source_version"
        ],
        "title": "SourceMultipartUploadResponse",
        "type": "object"
      },
      "SourceNormalizedGovernanceMetadata": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceAudienceMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "authorities": {
            "items": {
              "$ref": "#/components/schemas/SourceAuthorityIdentity"
            },
            "maxItems": 128,
            "title": "Authorities",
            "type": "array"
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceCurrencyMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "jurisdiction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceJurisdictionMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "license": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceLicenseMetadata"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "SourceNormalizedGovernanceMetadata",
        "type": "object"
      },
      "SourceOriginalArtifactResponse": {
        "additionalProperties": false,
        "description": "Content-addressed encrypted original or a typed unavailable receipt.",
        "properties": {
          "byte_count": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Byte Count"
          },
          "checksum_basis": {
            "anyOf": [
              {
                "enum": [
                  "content_bytes",
                  "canonical_metadata",
                  "connector_snapshot",
                  "locator_metadata"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Checksum Basis"
          },
          "content_type": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Type"
          },
          "encrypted_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Encrypted Sha256"
          },
          "encryption_algorithm": {
            "anyOf": [
              {
                "const": "AES-256-GCM",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Encryption Algorithm"
          },
          "encryption_envelope_version": {
            "anyOf": [
              {
                "const": "metis-source-evidence-envelope/1",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Encryption Envelope Version"
          },
          "encryption_key_id": {
            "anyOf": [
              {
                "maxLength": 128,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Encryption Key Id"
          },
          "ingestion_item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ingestion Item Id",
            "type": "string"
          },
          "manifest_id": {
            "pattern": "^original_manifest_[a-f0-9]{24}$",
            "title": "Manifest Id",
            "type": "string"
          },
          "manifest_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Manifest Sha256",
            "type": "string"
          },
          "retention": {
            "$ref": "#/components/schemas/SourceEvidenceRetentionResponse"
          },
          "schema_version": {
            "const": "2.4.0",
            "default": "2.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Sha256"
          },
          "source_version_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Version Id"
          },
          "source_version_record_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Version Record Sha256"
          },
          "status": {
            "enum": ["retained", "unavailable"],
            "title": "Status",
            "type": "string"
          },
          "storage_ref": {
            "anyOf": [
              {
                "pattern": "^metis-original://[a-z0-9/]+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Storage Ref"
          },
          "unavailable_reason": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unavailable Reason"
          }
        },
        "required": ["manifest_id", "status", "ingestion_item_id", "retention", "manifest_sha256"],
        "title": "SourceOriginalArtifactResponse",
        "type": "object"
      },
      "SourcePackageReviewDecisionResponse": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer": {
            "title": "Reviewer",
            "type": "string"
          }
        },
        "required": ["action", "reviewer", "comment", "reviewed_at"],
        "title": "SourcePackageReviewDecisionResponse",
        "type": "object"
      },
      "SourcePackageReviewRequest": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "default": "",
            "maxLength": 4000,
            "title": "Comment",
            "type": "string"
          }
        },
        "required": ["action"],
        "title": "SourcePackageReviewRequest",
        "type": "object"
      },
      "SourcePackageReviewStateResponse": {
        "properties": {
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/SourcePackageReviewDecisionResponse"
            },
            "title": "History",
            "type": "array"
          },
          "latest_decision_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Decision At"
          },
          "latest_decision_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Decision By"
          },
          "review_focus": {
            "items": {
              "type": "string"
            },
            "title": "Review Focus",
            "type": "array"
          },
          "risk_level": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Risk Level",
            "type": "string"
          },
          "status": {
            "enum": ["pending", "approved", "changes_requested", "rejected"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "risk_level"],
        "title": "SourcePackageReviewStateResponse",
        "type": "object"
      },
      "SourcePackageUsagePolicyResponse": {
        "properties": {
          "high_stakes_allowed": {
            "title": "High Stakes Allowed",
            "type": "boolean"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "usage": {
            "enum": ["approved", "review_only", "blocked"],
            "title": "Usage",
            "type": "string"
          }
        },
        "required": ["high_stakes_allowed", "usage", "reason"],
        "title": "SourcePackageUsagePolicyResponse",
        "type": "object"
      },
      "SourcePromotionRequest": {
        "description": "Promote the exact persisted generation authorized by signed TS receipts.",
        "properties": {
          "expected_source_version": {
            "minimum": 1.0,
            "title": "Expected Source Version",
            "type": "integer"
          },
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "lesson_receipts": {
            "items": {
              "$ref": "#/components/schemas/SourceLessonPromotionReceipt"
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Lesson Receipts",
            "type": "array"
          }
        },
        "required": ["expected_source_version", "generation_sha256", "lesson_receipts"],
        "title": "SourcePromotionRequest",
        "type": "object"
      },
      "SourcePromotionResponse": {
        "description": "Durable, atomic source-generation promotion decision.",
        "properties": {
          "evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evaluation Sha256",
            "type": "string"
          },
          "gate_profile": {
            "const": "metis-p0-v1",
            "title": "Gate Profile",
            "type": "string"
          },
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "lesson_receipts": {
            "items": {
              "$ref": "#/components/schemas/SourceLessonPromotionReceipt"
            },
            "minItems": 1,
            "title": "Lesson Receipts",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "promoted_at": {
            "format": "date-time",
            "title": "Promoted At",
            "type": "string"
          },
          "promotion_id": {
            "title": "Promotion Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          },
          "source_version": {
            "minimum": 1.0,
            "title": "Source Version",
            "type": "integer"
          },
          "stage_evidence": {
            "items": {
              "$ref": "#/components/schemas/SourcePromotionStageEvidenceResponse"
            },
            "minItems": 6,
            "title": "Stage Evidence",
            "type": "array"
          },
          "status": {
            "const": "promoted",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "promotion_id",
          "package_id",
          "source_version",
          "status",
          "gate_profile",
          "generation_sha256",
          "evaluation_sha256",
          "stage_evidence",
          "lesson_receipts",
          "promoted_at",
          "receipt_sha256",
          "signature"
        ],
        "title": "SourcePromotionResponse",
        "type": "object"
      },
      "SourcePromotionStageEvidenceResponse": {
        "description": "Hash-bound evidence for one node in the promotion transaction.",
        "properties": {
          "artifact_kind": {
            "enum": [
              "approved_source_package",
              "source_extraction",
              "grounded_outline",
              "model_generation",
              "grounded_evaluation",
              "typescript_p0_verification"
            ],
            "title": "Artifact Kind",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "dependency_node_ids": {
            "items": {
              "type": "string"
            },
            "title": "Dependency Node Ids",
            "type": "array"
          },
          "node_id": {
            "title": "Node Id",
            "type": "string"
          },
          "stage": {
            "minimum": 1.0,
            "title": "Stage",
            "type": "integer"
          },
          "storage_ref": {
            "title": "Storage Ref",
            "type": "string"
          },
          "verification_receipt_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Receipt Sha256"
          },
          "verification_run_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Run Id"
          }
        },
        "required": ["node_id", "stage", "artifact_kind", "content_sha256", "storage_ref"],
        "title": "SourcePromotionStageEvidenceResponse",
        "type": "object"
      },
      "SourceProvenanceRecord": {
        "additionalProperties": false,
        "properties": {
          "activity_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Activity Id",
            "type": "string"
          },
          "activity_role": {
            "const": "prov:Activity",
            "default": "prov:Activity",
            "title": "Activity Role",
            "type": "string"
          },
          "actor_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Actor Id",
            "type": "string"
          },
          "agent_role": {
            "const": "prov:Agent",
            "default": "prov:Agent",
            "title": "Agent Role",
            "type": "string"
          },
          "entity_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Entity Locator",
            "type": "string"
          },
          "entity_role": {
            "const": "prov:Entity",
            "default": "prov:Entity",
            "title": "Entity Role",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "model": {
            "const": "w3c-prov-inspired",
            "default": "w3c-prov-inspired",
            "title": "Model",
            "type": "string"
          }
        },
        "required": ["activity_id", "entity_locator", "actor_id", "generated_at"],
        "title": "SourceProvenanceRecord",
        "type": "object"
      },
      "SourcePublicationCandidateRequest": {
        "description": "Materialize one promoted generation for an explicit learner audience.",
        "properties": {
          "expected_promotion_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Promotion Receipt Sha256",
            "type": "string"
          },
          "learner_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Learner Ids",
            "type": "array"
          },
          "locale": {
            "default": "en-US",
            "maxLength": 35,
            "minLength": 2,
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "mastery_threshold": {
            "default": 0.7,
            "maximum": 0.95,
            "minimum": 0.5,
            "title": "Mastery Threshold",
            "type": "number"
          },
          "risk_assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Risk Assessment Id",
            "type": "string"
          }
        },
        "required": ["expected_promotion_receipt_sha256", "risk_assessment_id", "learner_ids"],
        "title": "SourcePublicationCandidateRequest",
        "type": "object"
      },
      "SourcePublicationCandidateResponse": {
        "description": "Content-addressed adaptive experience awaiting human release review.",
        "properties": {
          "adaptive_plan": {
            "$ref": "#/components/schemas/SourceAdaptivePlanResponse"
          },
          "adaptive_policy_version": {
            "const": "metis-source-adaptive-plan-v1",
            "title": "Adaptive Policy Version",
            "type": "string"
          },
          "candidate_id": {
            "pattern": "^candidate_[a-f0-9]{40}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Created By",
            "type": "string"
          },
          "created_by_role": {
            "enum": ["instructor", "admin"],
            "title": "Created By Role",
            "type": "string"
          },
          "experience": {
            "$ref": "#/components/schemas/SourceRenderedExperienceResponse"
          },
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "learner_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Learner Ids",
            "type": "array"
          },
          "locale": {
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "package_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "promotion_id": {
            "title": "Promotion Id",
            "type": "string"
          },
          "promotion_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Promotion Receipt Sha256",
            "type": "string"
          },
          "renderer_version": {
            "const": "metis-source-experience-renderer-v1",
            "title": "Renderer Version",
            "type": "string"
          },
          "risk_assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Risk Assessment Id",
            "type": "string"
          },
          "risk_evidence_evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Risk Evidence Evaluation Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_version": {
            "minimum": 1.0,
            "title": "Source Version",
            "type": "integer"
          },
          "status": {
            "const": "awaiting_review",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "candidate_id",
          "package_id",
          "source_version",
          "promotion_id",
          "promotion_receipt_sha256",
          "generation_sha256",
          "risk_assessment_id",
          "risk_evidence_evaluation_sha256",
          "renderer_version",
          "adaptive_policy_version",
          "learner_ids",
          "locale",
          "adaptive_plan",
          "experience",
          "status",
          "created_by",
          "created_by_role",
          "created_at",
          "candidate_sha256"
        ],
        "title": "SourcePublicationCandidateResponse",
        "type": "object"
      },
      "SourcePublicationReleaseRequest": {
        "properties": {
          "expected_candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Candidate Sha256",
            "type": "string"
          },
          "expected_review_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Review Receipt Sha256",
            "type": "string"
          },
          "recertification_admission": {
            "$ref": "#/components/schemas/SourceContinuousRecertificationAdmission"
          }
        },
        "required": [
          "expected_candidate_sha256",
          "expected_review_receipt_sha256",
          "recertification_admission"
        ],
        "title": "SourcePublicationReleaseRequest",
        "type": "object"
      },
      "SourcePublicationReleaseResponse": {
        "description": "Signed publication record that authorizes learner delivery.",
        "properties": {
          "candidate_id": {
            "pattern": "^candidate_[a-f0-9]{40}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Sha256",
            "type": "string"
          },
          "learner_delivery_path": {
            "maxLength": 1024,
            "minLength": 1,
            "title": "Learner Delivery Path",
            "type": "string"
          },
          "learner_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Learner Ids",
            "type": "array"
          },
          "package_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "promotion_id": {
            "title": "Promotion Id",
            "type": "string"
          },
          "promotion_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Promotion Receipt Sha256",
            "type": "string"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "published_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Published By",
            "type": "string"
          },
          "published_by_role": {
            "const": "admin",
            "title": "Published By Role",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "recertification_admission": {
            "$ref": "#/components/schemas/SourceContinuousRecertificationAdmission"
          },
          "release_id": {
            "pattern": "^release_[a-f0-9]{40}$",
            "title": "Release Id",
            "type": "string"
          },
          "review_id": {
            "pattern": "^review_[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "review_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Review Receipt Sha256",
            "type": "string"
          },
          "risk_assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Risk Assessment Id",
            "type": "string"
          },
          "risk_evidence_evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Risk Evidence Evaluation Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.1.0",
            "default": "1.1.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          },
          "source_version": {
            "minimum": 1.0,
            "title": "Source Version",
            "type": "integer"
          },
          "status": {
            "const": "published",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "release_id",
          "package_id",
          "source_version",
          "promotion_id",
          "promotion_receipt_sha256",
          "risk_assessment_id",
          "risk_evidence_evaluation_sha256",
          "candidate_id",
          "candidate_sha256",
          "review_id",
          "review_receipt_sha256",
          "recertification_admission",
          "learner_ids",
          "status",
          "learner_delivery_path",
          "published_by",
          "published_by_role",
          "published_at",
          "receipt_sha256",
          "signature"
        ],
        "title": "SourcePublicationReleaseResponse",
        "type": "object"
      },
      "SourcePublicationReviewRequest": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "expected_candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Candidate Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 255,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["expected_candidate_sha256", "action", "comment", "idempotency_key"],
        "title": "SourcePublicationReviewRequest",
        "type": "object"
      },
      "SourcePublicationReviewResponse": {
        "description": "Server-authenticated receipt for an authenticated administrator decision.",
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "candidate_id": {
            "pattern": "^candidate_[a-f0-9]{40}$",
            "title": "Candidate Id",
            "type": "string"
          },
          "candidate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Candidate Sha256",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 255,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "package_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "review_id": {
            "pattern": "^review_[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signature": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Signature",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "package_id",
          "candidate_id",
          "candidate_sha256",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewer_role",
          "idempotency_key",
          "reviewed_at",
          "receipt_sha256",
          "signature"
        ],
        "title": "SourcePublicationReviewResponse",
        "type": "object"
      },
      "SourceQuarantineAdmission": {
        "additionalProperties": false,
        "properties": {
          "admission_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Admission Id",
            "type": "string"
          },
          "admitted_at": {
            "format": "date-time",
            "title": "Admitted At",
            "type": "string"
          },
          "admitted_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Admitted By",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "decision": {
            "const": "admitted",
            "title": "Decision",
            "type": "string"
          },
          "encrypted_artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Encrypted Artifact Sha256",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "prior_scan_receipt_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "title": "Prior Scan Receipt Sha256S",
            "type": "array"
          },
          "quarantine_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Quarantine Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "scan_classification": {
            "enum": ["clean", "quarantined", "rejected", "manual", "unavailable"],
            "title": "Scan Classification",
            "type": "string"
          },
          "scan_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scan Receipt Sha256",
            "type": "string"
          },
          "scanner_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scanner Set Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "admission_id",
          "quarantine_id",
          "tenant_id",
          "admitted_by",
          "content_sha256",
          "encrypted_artifact_sha256",
          "scan_receipt_sha256",
          "scan_classification",
          "policy_sha256",
          "scanner_set_sha256",
          "decision",
          "admitted_at",
          "expires_at",
          "receipt_sha256"
        ],
        "title": "SourceQuarantineAdmission",
        "type": "object"
      },
      "SourceQuarantineScanHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "admissions": {
            "items": {
              "$ref": "#/components/schemas/SourceQuarantineAdmission"
            },
            "title": "Admissions",
            "type": "array"
          },
          "quarantine_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Quarantine Id",
            "type": "string"
          },
          "receipts": {
            "items": {
              "$ref": "#/components/schemas/SourceQuarantineScanReceipt"
            },
            "title": "Receipts",
            "type": "array"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["quarantine_id", "tenant_id", "receipts", "admissions"],
        "title": "SourceQuarantineScanHistoryResponse",
        "type": "object"
      },
      "SourceQuarantineScanReceipt": {
        "additionalProperties": false,
        "properties": {
          "all_required_scans_completed": {
            "title": "All Required Scans Completed",
            "type": "boolean"
          },
          "classification": {
            "enum": ["clean", "quarantined", "rejected", "manual", "unavailable"],
            "title": "Classification",
            "type": "string"
          },
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "content_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Content Type",
            "type": "string"
          },
          "encrypted_artifact_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Encrypted Artifact Sha256",
            "type": "string"
          },
          "findings": {
            "items": {
              "$ref": "#/components/schemas/SourceScanFinding"
            },
            "title": "Findings",
            "type": "array"
          },
          "fresh_until": {
            "format": "date-time",
            "title": "Fresh Until",
            "type": "string"
          },
          "limits": {
            "$ref": "#/components/schemas/SourceScanLimits"
          },
          "observed": {
            "$ref": "#/components/schemas/SourceScanObserved"
          },
          "policy_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Policy Id",
            "type": "string"
          },
          "policy_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Sha256",
            "type": "string"
          },
          "policy_version": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Policy Version",
            "type": "string"
          },
          "prior_receipt_sha256s": {
            "default": [],
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "title": "Prior Receipt Sha256S",
            "type": "array"
          },
          "quarantine_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Quarantine Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "scan_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Scan Id",
            "type": "string"
          },
          "scanned_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scanned By",
            "type": "string"
          },
          "scanner_set_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Scanner Set Sha256",
            "type": "string"
          },
          "scanners": {
            "items": {
              "$ref": "#/components/schemas/SourceScannerEvidence"
            },
            "title": "Scanners",
            "type": "array"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "size_bytes": {
            "minimum": 1.0,
            "title": "Size Bytes",
            "type": "integer"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "scan_id",
          "quarantine_id",
          "tenant_id",
          "scanned_by",
          "content_sha256",
          "encrypted_artifact_sha256",
          "content_type",
          "size_bytes",
          "policy_id",
          "policy_version",
          "policy_sha256",
          "scanner_set_sha256",
          "limits",
          "observed",
          "scanners",
          "findings",
          "classification",
          "all_required_scans_completed",
          "started_at",
          "completed_at",
          "fresh_until",
          "receipt_sha256"
        ],
        "title": "SourceQuarantineScanReceipt",
        "type": "object"
      },
      "SourceQuarantineScanResponse": {
        "additionalProperties": false,
        "properties": {
          "admission": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceQuarantineAdmission"
              },
              {
                "type": "null"
              }
            ]
          },
          "receipt": {
            "$ref": "#/components/schemas/SourceQuarantineScanReceipt"
          }
        },
        "required": ["receipt"],
        "title": "SourceQuarantineScanResponse",
        "type": "object"
      },
      "SourceRefreshFreshnessArtifactResponse": {
        "description": "Freshness state for one derived artifact.",
        "properties": {
          "age_days": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Age Days"
          },
          "artifact_path": {
            "title": "Artifact Path",
            "type": "string"
          },
          "asset_type": {
            "enum": ["extraction", "outline", "generation", "concept_graph", "evaluation"],
            "title": "Asset Type",
            "type": "string"
          },
          "last_updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Updated At"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "status": {
            "enum": ["fresh", "warning", "stale", "missing"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["asset_type", "status", "artifact_path"],
        "title": "SourceRefreshFreshnessArtifactResponse",
        "type": "object"
      },
      "SourceRefreshFreshnessGraphNodeResponse": {
        "description": "Freshness state for one concept-graph node.",
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "node_id": {
            "title": "Node Id",
            "type": "string"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Source Item Ids",
            "type": "array"
          },
          "stale_source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Stale Source Item Ids",
            "type": "array"
          },
          "status": {
            "enum": ["fresh", "warning", "stale"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["node_id", "label", "status"],
        "title": "SourceRefreshFreshnessGraphNodeResponse",
        "type": "object"
      },
      "SourceRefreshFreshnessItemResponse": {
        "description": "Freshness state for one source item in a package.",
        "properties": {
          "age_days": {
            "minimum": 0.0,
            "title": "Age Days",
            "type": "integer"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "refresh_interval_days": {
            "minimum": 1.0,
            "title": "Refresh Interval Days",
            "type": "integer"
          },
          "status": {
            "enum": ["fresh", "warning", "stale"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["item_id", "label", "status", "age_days", "refresh_interval_days"],
        "title": "SourceRefreshFreshnessItemResponse",
        "type": "object"
      },
      "SourceRefreshFreshnessResponse": {
        "description": "Freshness monitoring snapshot for a source package.",
        "properties": {
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/SourceRefreshFreshnessArtifactResponse"
            },
            "title": "Artifacts",
            "type": "array"
          },
          "checked_at": {
            "format": "date-time",
            "title": "Checked At",
            "type": "string"
          },
          "graph_nodes": {
            "items": {
              "$ref": "#/components/schemas/SourceRefreshFreshnessGraphNodeResponse"
            },
            "title": "Graph Nodes",
            "type": "array"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceRefreshFreshnessItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceRefreshFreshnessSummaryResponse"
          }
        },
        "required": ["summary", "checked_at"],
        "title": "SourceRefreshFreshnessResponse",
        "type": "object"
      },
      "SourceRefreshFreshnessSummaryResponse": {
        "description": "Aggregate freshness summary for a source package and its derivatives.",
        "properties": {
          "missing_artifact_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Missing Artifact Count",
            "type": "integer"
          },
          "recommended_action": {
            "title": "Recommended Action",
            "type": "string"
          },
          "stale_artifact_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Stale Artifact Count",
            "type": "integer"
          },
          "stale_graph_node_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Stale Graph Node Count",
            "type": "integer"
          },
          "stale_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Stale Item Count",
            "type": "integer"
          },
          "status": {
            "enum": ["fresh", "warning", "stale"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status", "recommended_action"],
        "title": "SourceRefreshFreshnessSummaryResponse",
        "type": "object"
      },
      "SourceRefreshInvalidationPlanResponse": {
        "description": "Structured invalidation decision for derived source artifacts.",
        "properties": {
          "affected_asset_types": {
            "items": {
              "enum": ["extraction", "outline", "generation", "concept_graph", "evaluation"],
              "type": "string"
            },
            "title": "Affected Asset Types",
            "type": "array"
          },
          "changed_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Changed Item Ids",
            "type": "array"
          },
          "invalidate": {
            "default": false,
            "title": "Invalidate",
            "type": "boolean"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "title": "Reasons",
            "type": "array"
          },
          "requires_reapproval": {
            "default": false,
            "title": "Requires Reapproval",
            "type": "boolean"
          }
        },
        "title": "SourceRefreshInvalidationPlanResponse",
        "type": "object"
      },
      "SourceRefreshRequest": {
        "description": "Trigger a refresh over an existing source package.",
        "properties": {
          "invalidate_derived_assets": {
            "default": true,
            "title": "Invalidate Derived Assets",
            "type": "boolean"
          }
        },
        "title": "SourceRefreshRequest",
        "type": "object"
      },
      "SourceRefreshResponse": {
        "description": "Persisted refresh and invalidation result for a source package.",
        "properties": {
          "changed": {
            "title": "Changed",
            "type": "boolean"
          },
          "current_version": {
            "minimum": 1.0,
            "title": "Current Version",
            "type": "integer"
          },
          "diffs": {
            "items": {
              "$ref": "#/components/schemas/SourceVersionDiffItemResponse"
            },
            "title": "Diffs",
            "type": "array"
          },
          "freshness": {
            "$ref": "#/components/schemas/SourceRefreshFreshnessResponse"
          },
          "invalidated_assets": {
            "items": {
              "$ref": "#/components/schemas/InvalidatedDerivedAssetResponse"
            },
            "title": "Invalidated Assets",
            "type": "array"
          },
          "invalidation_plan": {
            "$ref": "#/components/schemas/SourceRefreshInvalidationPlanResponse"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "previous_version": {
            "minimum": 1.0,
            "title": "Previous Version",
            "type": "integer"
          },
          "refreshed_at": {
            "format": "date-time",
            "title": "Refreshed At",
            "type": "string"
          },
          "requires_reapproval": {
            "title": "Requires Reapproval",
            "type": "boolean"
          }
        },
        "required": [
          "package_id",
          "previous_version",
          "current_version",
          "changed",
          "requires_reapproval",
          "freshness",
          "refreshed_at"
        ],
        "title": "SourceRefreshResponse",
        "type": "object"
      },
      "SourceRegistration": {
        "additionalProperties": false,
        "description": "A registered origin, pinned to the exact version of the system it came from.\n\n``originating_revision_sha256`` is required. Feedback about a rubric without\nnaming which revision of it was in force is feedback about a rubric that may\nsince have changed into something else.",
        "properties": {
          "description": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Description",
            "type": "string"
          },
          "kind": {
            "enum": [
              "educator_decision",
              "cohort_outcome",
              "verifier_disagreement",
              "media_critique"
            ],
            "title": "Kind",
            "type": "string"
          },
          "originating_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Originating Revision Sha256",
            "type": "string"
          },
          "registered_at": {
            "format": "date-time",
            "title": "Registered At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "steward_role": {
            "enum": ["registrar", "data_governance", "programme_director"],
            "title": "Steward Role",
            "type": "string"
          },
          "system_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "System Id",
            "type": "string"
          },
          "system_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "System Version",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "kind",
          "system_id",
          "system_version",
          "originating_revision_sha256",
          "tenant_id",
          "registered_at",
          "steward_role",
          "description"
        ],
        "title": "SourceRegistration",
        "type": "object"
      },
      "SourceRelationAccuracyEvaluationResponse": {
        "description": "Relation-accuracy quality for grounded concept-graph edges.",
        "properties": {
          "citation_backed_edge_count": {
            "minimum": 0.0,
            "title": "Citation Backed Edge Count",
            "type": "integer"
          },
          "edge_count": {
            "minimum": 0.0,
            "title": "Edge Count",
            "type": "integer"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "grounded_edge_count": {
            "minimum": 0.0,
            "title": "Grounded Edge Count",
            "type": "integer"
          },
          "low_confidence_edge_count": {
            "minimum": 0.0,
            "title": "Low Confidence Edge Count",
            "type": "integer"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "unsupported_edge_count": {
            "minimum": 0.0,
            "title": "Unsupported Edge Count",
            "type": "integer"
          }
        },
        "required": [
          "overall_score",
          "edge_count",
          "grounded_edge_count",
          "citation_backed_edge_count",
          "low_confidence_edge_count",
          "unsupported_edge_count",
          "status"
        ],
        "title": "SourceRelationAccuracyEvaluationResponse",
        "type": "object"
      },
      "SourceRemediationReceipt": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["re_source", "revise", "review", "rebuild", "unpublish"],
            "title": "Action",
            "type": "string"
          },
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "const": "admin",
            "title": "Actor Role",
            "type": "string"
          },
          "change_event_id": {
            "pattern": "^sourcechange_[a-f0-9]{40}$",
            "title": "Change Event Id",
            "type": "string"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "impact_ids": {
            "items": {
              "type": "string"
            },
            "title": "Impact Ids",
            "type": "array"
          },
          "impact_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Impact Snapshot Sha256",
            "type": "string"
          },
          "owner_id": {
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "title": "Owner Name",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "readback_node_ids": {
            "items": {
              "type": "string"
            },
            "title": "Readback Node Ids",
            "type": "array"
          },
          "remediation_id": {
            "pattern": "^remediation_[a-f0-9]{40}$",
            "title": "Remediation Id",
            "type": "string"
          },
          "replacement_revision_ids": {
            "items": {
              "type": "string"
            },
            "title": "Replacement Revision Ids",
            "type": "array"
          },
          "routed_at": {
            "format": "date-time",
            "title": "Routed At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.9.0",
            "default": "2.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "state": {
            "enum": ["routed", "completed", "rejected"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "remediation_id",
          "package_id",
          "change_event_id",
          "impact_snapshot_sha256",
          "impact_ids",
          "action",
          "state",
          "owner_id",
          "owner_name",
          "rationale",
          "replacement_revision_ids",
          "readback_node_ids",
          "actor_id",
          "actor_role",
          "routed_at",
          "idempotency_key",
          "self_sha256"
        ],
        "title": "SourceRemediationReceipt",
        "type": "object"
      },
      "SourceRemediationRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["re_source", "revise", "review", "rebuild", "unpublish"],
            "title": "Action",
            "type": "string"
          },
          "complete": {
            "default": false,
            "title": "Complete",
            "type": "boolean"
          },
          "expected_impact_snapshot_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Impact Snapshot Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "impact_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Impact Ids",
            "type": "array"
          },
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Name",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "replacement_revision_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Replacement Revision Ids",
            "type": "array"
          }
        },
        "required": [
          "expected_impact_snapshot_sha256",
          "impact_ids",
          "action",
          "owner_id",
          "owner_name",
          "rationale",
          "idempotency_key"
        ],
        "title": "SourceRemediationRequest",
        "type": "object"
      },
      "SourceRenderedAssessmentQuestionResponse": {
        "properties": {
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "options": {
            "items": {
              "type": "string"
            },
            "title": "Options",
            "type": "array"
          },
          "prompt": {
            "title": "Prompt",
            "type": "string"
          },
          "question_id": {
            "title": "Question Id",
            "type": "string"
          },
          "question_type": {
            "enum": ["multiple_choice", "short_answer"],
            "title": "Question Type",
            "type": "string"
          }
        },
        "required": ["question_id", "prompt", "question_type"],
        "title": "SourceRenderedAssessmentQuestionResponse",
        "type": "object"
      },
      "SourceRenderedAssessmentResponse": {
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_type": {
            "enum": ["quiz", "practice"],
            "title": "Assessment Type",
            "type": "string"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "questions": {
            "items": {
              "$ref": "#/components/schemas/SourceRenderedAssessmentQuestionResponse"
            },
            "minItems": 1,
            "title": "Questions",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["assessment_id", "title", "assessment_type", "questions"],
        "title": "SourceRenderedAssessmentResponse",
        "type": "object"
      },
      "SourceRenderedExperienceResponse": {
        "description": "Safe structured rendering delivered to the learner client.",
        "properties": {
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/SourceRenderedAssessmentResponse"
            },
            "title": "Assessments",
            "type": "array"
          },
          "content_security_profile": {
            "const": "escaped-static-html-v1",
            "title": "Content Security Profile",
            "type": "string"
          },
          "difficulty": {
            "enum": ["beginner", "intermediate", "advanced", "expert"],
            "title": "Difficulty",
            "type": "string"
          },
          "locale": {
            "title": "Locale",
            "type": "string"
          },
          "modules": {
            "items": {
              "$ref": "#/components/schemas/SourceRenderedModuleResponse"
            },
            "minItems": 1,
            "title": "Modules",
            "type": "array"
          },
          "renderer_version": {
            "const": "metis-source-experience-renderer-v1",
            "title": "Renderer Version",
            "type": "string"
          },
          "study_artifacts": {
            "items": {
              "$ref": "#/components/schemas/SourceRenderedStudyArtifactResponse"
            },
            "title": "Study Artifacts",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "renderer_version",
          "content_security_profile",
          "title",
          "difficulty",
          "locale",
          "modules"
        ],
        "title": "SourceRenderedExperienceResponse",
        "type": "object"
      },
      "SourceRenderedLessonResponse": {
        "description": "Escaped learner-facing rendering of one P0-verified lesson.",
        "properties": {
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "estimated_minutes": {
            "minimum": 0.0,
            "title": "Estimated Minutes",
            "type": "integer"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "rendered_html": {
            "title": "Rendered Html",
            "type": "string"
          },
          "rendered_html_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rendered Html Sha256",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "verification_receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Verification Receipt Sha256",
            "type": "string"
          }
        },
        "required": [
          "lesson_id",
          "title",
          "estimated_minutes",
          "content_sha256",
          "rendered_html",
          "rendered_html_sha256",
          "verification_receipt_sha256"
        ],
        "title": "SourceRenderedLessonResponse",
        "type": "object"
      },
      "SourceRenderedModuleResponse": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "lessons": {
            "items": {
              "$ref": "#/components/schemas/SourceRenderedLessonResponse"
            },
            "minItems": 1,
            "title": "Lessons",
            "type": "array"
          },
          "module_id": {
            "title": "Module Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["module_id", "title", "description", "lessons"],
        "title": "SourceRenderedModuleResponse",
        "type": "object"
      },
      "SourceRenderedStudyArtifactResponse": {
        "properties": {
          "artifact_id": {
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_type": {
            "enum": ["study_guide", "flashcards", "quiz_review"],
            "title": "Artifact Type",
            "type": "string"
          },
          "content_format": {
            "const": "plain_text",
            "title": "Content Format",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "content_text": {
            "title": "Content Text",
            "type": "string"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "artifact_id",
          "artifact_type",
          "title",
          "content_format",
          "content_text",
          "content_sha256"
        ],
        "title": "SourceRenderedStudyArtifactResponse",
        "type": "object"
      },
      "SourceRetractionMetadata": {
        "additionalProperties": false,
        "properties": {
          "effective_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective At"
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Evidence Ids",
            "type": "array"
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 4000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "status": {
            "default": "active",
            "enum": ["active", "corrected", "superseded", "retracted"],
            "title": "Status",
            "type": "string"
          }
        },
        "title": "SourceRetractionMetadata",
        "type": "object"
      },
      "SourceRetrievalAlgorithmDocsResponse": {
        "description": "Human-inspectable retrieval algorithm documentation.",
        "properties": {
          "algorithm_id": {
            "title": "Algorithm Id",
            "type": "string"
          },
          "benchmark_dataset_id": {
            "title": "Benchmark Dataset Id",
            "type": "string"
          },
          "benchmark_endpoint": {
            "title": "Benchmark Endpoint",
            "type": "string"
          },
          "candidate_filters": {
            "items": {
              "type": "string"
            },
            "title": "Candidate Filters",
            "type": "array"
          },
          "freshness_rules": {
            "items": {
              "type": "string"
            },
            "title": "Freshness Rules",
            "type": "array"
          },
          "inspection_steps": {
            "items": {
              "type": "string"
            },
            "title": "Inspection Steps",
            "type": "array"
          },
          "policy_metadata_fields": {
            "items": {
              "type": "string"
            },
            "title": "Policy Metadata Fields",
            "type": "array"
          },
          "ranking_profile": {
            "title": "Ranking Profile",
            "type": "string"
          },
          "ranking_weights": {
            "$ref": "#/components/schemas/SourceRetrievalRankingWeightsResponse"
          },
          "retrieval_strategies": {
            "items": {
              "type": "string"
            },
            "title": "Retrieval Strategies",
            "type": "array"
          },
          "rights_filter_rules": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalRightsFilterRuleResponse"
            },
            "title": "Rights Filter Rules",
            "type": "array"
          },
          "rights_filter_version": {
            "title": "Rights Filter Version",
            "type": "string"
          },
          "scoring_components": {
            "items": {
              "type": "string"
            },
            "title": "Scoring Components",
            "type": "array"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "algorithm_id",
          "version",
          "summary",
          "ranking_profile",
          "rights_filter_version",
          "ranking_weights",
          "benchmark_dataset_id",
          "benchmark_endpoint"
        ],
        "title": "SourceRetrievalAlgorithmDocsResponse",
        "type": "object"
      },
      "SourceRetrievalBenchmarkCaseResponse": {
        "description": "Single GraphRAG-style benchmark case with expected graph/evidence coverage.",
        "properties": {
          "case_id": {
            "title": "Case Id",
            "type": "string"
          },
          "difficulty": {
            "title": "Difficulty",
            "type": "string"
          },
          "expected_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Expected Citation Ids",
            "type": "array"
          },
          "expected_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Expected Concept Ids",
            "type": "array"
          },
          "expected_source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Expected Source Item Ids",
            "type": "array"
          },
          "graph_required": {
            "default": false,
            "title": "Graph Required",
            "type": "boolean"
          },
          "intent": {
            "title": "Intent",
            "type": "string"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "rationale": {
            "default": "",
            "title": "Rationale",
            "type": "string"
          }
        },
        "required": ["case_id", "query", "intent", "difficulty"],
        "title": "SourceRetrievalBenchmarkCaseResponse",
        "type": "object"
      },
      "SourceRetrievalBenchmarkQualityGateResponse": {
        "description": "Quality gate used to sign off benchmark runs and strategies.",
        "properties": {
          "gate_id": {
            "title": "Gate Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "observed": {
            "title": "Observed",
            "type": "number"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          },
          "severity": {
            "default": "warning",
            "title": "Severity",
            "type": "string"
          },
          "threshold": {
            "title": "Threshold",
            "type": "number"
          }
        },
        "required": ["gate_id", "label", "threshold", "observed", "passed"],
        "title": "SourceRetrievalBenchmarkQualityGateResponse",
        "type": "object"
      },
      "SourceRetrievalBenchmarkQueryResultResponse": {
        "description": "One query result under one retrieval strategy.",
        "properties": {
          "case_id": {
            "default": "",
            "title": "Case Id",
            "type": "string"
          },
          "concept_hit_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Concept Hit Rate",
            "type": "number"
          },
          "difficulty": {
            "default": "standard",
            "title": "Difficulty",
            "type": "string"
          },
          "evidence_hit_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Evidence Hit Rate",
            "type": "number"
          },
          "expected_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Expected Citation Ids",
            "type": "array"
          },
          "expected_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Expected Concept Ids",
            "type": "array"
          },
          "expected_source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Expected Source Item Ids",
            "type": "array"
          },
          "freshness_warning_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Freshness Warning Count",
            "type": "integer"
          },
          "graph_linked": {
            "default": false,
            "title": "Graph Linked",
            "type": "boolean"
          },
          "grounded": {
            "default": false,
            "title": "Grounded",
            "type": "boolean"
          },
          "inspection_steps": {
            "items": {
              "type": "string"
            },
            "title": "Inspection Steps",
            "type": "array"
          },
          "intent": {
            "default": "retrieval",
            "title": "Intent",
            "type": "string"
          },
          "latency_ms": {
            "default": 0,
            "minimum": 0.0,
            "title": "Latency Ms",
            "type": "integer"
          },
          "matched_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Matched Concept Ids",
            "type": "array"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "result_count": {
            "minimum": 0.0,
            "title": "Result Count",
            "type": "integer"
          },
          "returned_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Returned Citation Ids",
            "type": "array"
          },
          "returned_source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Returned Source Item Ids",
            "type": "array"
          },
          "source_diversity_score": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Source Diversity Score",
            "type": "number"
          },
          "stale_source_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Stale Source Item Count",
            "type": "integer"
          },
          "top_score": {
            "minimum": 0.0,
            "title": "Top Score",
            "type": "number"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": ["query", "result_count", "top_score"],
        "title": "SourceRetrievalBenchmarkQueryResultResponse",
        "type": "object"
      },
      "SourceRetrievalBenchmarkReferenceResponse": {
        "description": "One compared retrieval baseline or family.",
        "properties": {
          "baseline_id": {
            "title": "Baseline Id",
            "type": "string"
          },
          "category": {
            "title": "Category",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "source_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Url"
          }
        },
        "required": ["baseline_id", "label", "category", "description"],
        "title": "SourceRetrievalBenchmarkReferenceResponse",
        "type": "object"
      },
      "SourceRetrievalBenchmarkRequest": {
        "description": "Request a retrieval benchmark run for a source package.",
        "properties": {
          "force": {
            "default": false,
            "title": "Force",
            "type": "boolean"
          }
        },
        "title": "SourceRetrievalBenchmarkRequest",
        "type": "object"
      },
      "SourceRetrievalBenchmarkResponse": {
        "description": "Persisted retrieval benchmark run for a source package.",
        "properties": {
          "benchmark_cases": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalBenchmarkCaseResponse"
            },
            "title": "Benchmark Cases",
            "type": "array"
          },
          "case_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Case Count",
            "type": "integer"
          },
          "compared_against": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalBenchmarkReferenceResponse"
            },
            "title": "Compared Against",
            "type": "array"
          },
          "dataset_id": {
            "title": "Dataset Id",
            "type": "string"
          },
          "dataset_version": {
            "default": "2026-05-graphrag-suite",
            "title": "Dataset Version",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "leaderboard": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalBenchmarkStrategyResultResponse"
            },
            "title": "Leaderboard",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "package_title": {
            "title": "Package Title",
            "type": "string"
          },
          "pass_threshold": {
            "default": 75,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Pass Threshold",
            "type": "number"
          },
          "passed": {
            "default": false,
            "title": "Passed",
            "type": "boolean"
          },
          "quality_gates": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalBenchmarkQualityGateResponse"
            },
            "title": "Quality Gates",
            "type": "array"
          },
          "winner_strategy_id": {
            "title": "Winner Strategy Id",
            "type": "string"
          }
        },
        "required": [
          "dataset_id",
          "package_id",
          "package_title",
          "generated_at",
          "winner_strategy_id"
        ],
        "title": "SourceRetrievalBenchmarkResponse",
        "type": "object"
      },
      "SourceRetrievalBenchmarkStrategyResultResponse": {
        "description": "Aggregate benchmark result for one retrieval strategy.",
        "properties": {
          "average_latency_ms": {
            "default": 0,
            "minimum": 0.0,
            "title": "Average Latency Ms",
            "type": "number"
          },
          "average_top_score": {
            "minimum": 0.0,
            "title": "Average Top Score",
            "type": "number"
          },
          "composite_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Composite Score",
            "type": "number"
          },
          "concept_coverage_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Concept Coverage Rate",
            "type": "number"
          },
          "evidence_coverage_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Evidence Coverage Rate",
            "type": "number"
          },
          "freshness_pass_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Freshness Pass Rate",
            "type": "number"
          },
          "graph_assisted": {
            "default": false,
            "title": "Graph Assisted",
            "type": "boolean"
          },
          "graph_linked_query_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Graph Linked Query Rate",
            "type": "number"
          },
          "grounded_query_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Grounded Query Rate",
            "type": "number"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "pass_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Pass Rate",
            "type": "number"
          },
          "passed": {
            "default": false,
            "title": "Passed",
            "type": "boolean"
          },
          "quality_gates": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalBenchmarkQualityGateResponse"
            },
            "title": "Quality Gates",
            "type": "array"
          },
          "query_count": {
            "minimum": 0.0,
            "title": "Query Count",
            "type": "integer"
          },
          "query_results": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalBenchmarkQueryResultResponse"
            },
            "title": "Query Results",
            "type": "array"
          },
          "retrieval_strategy": {
            "title": "Retrieval Strategy",
            "type": "string"
          },
          "source_diversity_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Source Diversity Rate",
            "type": "number"
          },
          "strategy_id": {
            "title": "Strategy Id",
            "type": "string"
          },
          "warning_query_rate": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Warning Query Rate",
            "type": "number"
          },
          "zero_result_rate": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Zero Result Rate",
            "type": "number"
          }
        },
        "required": [
          "strategy_id",
          "label",
          "retrieval_strategy",
          "query_count",
          "grounded_query_rate",
          "graph_linked_query_rate",
          "zero_result_rate",
          "average_top_score",
          "composite_score"
        ],
        "title": "SourceRetrievalBenchmarkStrategyResultResponse",
        "type": "object"
      },
      "SourceRetrievalFreshnessMetadataResponse": {
        "description": "Freshness diagnostics for candidate source items.",
        "properties": {
          "fresh_source_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Fresh Source Item Count",
            "type": "integer"
          },
          "missing_timestamp_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Missing Timestamp Count",
            "type": "integer"
          },
          "stale_source_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Stale Source Item Count",
            "type": "integer"
          },
          "stale_source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Stale Source Item Ids",
            "type": "array"
          },
          "warning_source_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Warning Source Item Count",
            "type": "integer"
          },
          "warning_source_item_ids": {
            "items": {
              "type": "string"
            },
            "title": "Warning Source Item Ids",
            "type": "array"
          }
        },
        "title": "SourceRetrievalFreshnessMetadataResponse",
        "type": "object"
      },
      "SourceRetrievalGraphMatchResponse": {
        "description": "Concept graph match attached to retrieval metadata.",
        "properties": {
          "concept_id": {
            "title": "Concept Id",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "match_reason": {
            "title": "Match Reason",
            "type": "string"
          },
          "score": {
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["concept_id", "label", "score", "match_reason"],
        "title": "SourceRetrievalGraphMatchResponse",
        "type": "object"
      },
      "SourceRetrievalGraphMetadataResponse": {
        "description": "Graph assistance metadata for grounded retrieval.",
        "properties": {
          "applied": {
            "default": false,
            "title": "Applied",
            "type": "boolean"
          },
          "discipline_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discipline Id"
          },
          "expanded_terms": {
            "items": {
              "type": "string"
            },
            "title": "Expanded Terms",
            "type": "array"
          },
          "focus_concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Focus Concept Ids",
            "type": "array"
          },
          "glossary_term_ids": {
            "items": {
              "type": "string"
            },
            "title": "Glossary Term Ids",
            "type": "array"
          },
          "graph_available": {
            "default": false,
            "title": "Graph Available",
            "type": "boolean"
          },
          "linked_result_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Linked Result Count",
            "type": "integer"
          },
          "matched_concepts": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalGraphMatchResponse"
            },
            "title": "Matched Concepts",
            "type": "array"
          },
          "misconception_ids": {
            "items": {
              "type": "string"
            },
            "title": "Misconception Ids",
            "type": "array"
          },
          "source": {
            "default": "none",
            "enum": ["source_package", "curriculum_seed_pack", "none"],
            "title": "Source",
            "type": "string"
          }
        },
        "title": "SourceRetrievalGraphMetadataResponse",
        "type": "object"
      },
      "SourceRetrievalHybridWeightsResponse": {
        "description": "Hybrid fusion weights aligned to Sophia retrieval semantics.",
        "properties": {
          "dense": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Dense",
            "type": "number"
          },
          "fusion_method": {
            "default": "linear",
            "enum": ["linear", "rrf"],
            "title": "Fusion Method",
            "type": "string"
          },
          "sparse": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Sparse",
            "type": "number"
          }
        },
        "required": ["dense", "sparse"],
        "title": "SourceRetrievalHybridWeightsResponse",
        "type": "object"
      },
      "SourceRetrievalInspectionResponse": {
        "description": "Inspectable retrieval pipeline diagnostics.",
        "properties": {
          "candidate_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Candidate Count",
            "type": "integer"
          },
          "eligible_candidate_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Eligible Candidate Count",
            "type": "integer"
          },
          "returned_result_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Returned Result Count",
            "type": "integer"
          },
          "score_max": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Max"
          },
          "score_min": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Min"
          },
          "scored_candidate_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Scored Candidate Count",
            "type": "integer"
          },
          "strategy_steps": {
            "items": {
              "type": "string"
            },
            "title": "Strategy Steps",
            "type": "array"
          },
          "threshold": {
            "default": 0,
            "minimum": 0.0,
            "title": "Threshold",
            "type": "number"
          },
          "top_k": {
            "default": 0,
            "minimum": 0.0,
            "title": "Top K",
            "type": "integer"
          }
        },
        "title": "SourceRetrievalInspectionResponse",
        "type": "object"
      },
      "SourceRetrievalMetadataResponse": {
        "description": "Top-level retrieval metadata.",
        "properties": {
          "applied_threshold": {
            "minimum": 0.0,
            "title": "Applied Threshold",
            "type": "number"
          },
          "freshness": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalFreshnessMetadataResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "graph": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalGraphMetadataResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "hybrid_weights": {
            "$ref": "#/components/schemas/SourceRetrievalHybridWeightsResponse"
          },
          "inspection": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalInspectionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "policy": {
            "$ref": "#/components/schemas/SourceRetrievalPolicyMetadataResponse"
          },
          "query_expansions": {
            "items": {
              "type": "string"
            },
            "title": "Query Expansions",
            "type": "array"
          },
          "ranking_profile": {
            "default": "metis_pedagogical_hybrid_v1",
            "title": "Ranking Profile",
            "type": "string"
          },
          "ranking_weights": {
            "$ref": "#/components/schemas/SourceRetrievalRankingWeightsResponse"
          },
          "source_diversity": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalSourceDiversityResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "title": "Warnings",
            "type": "array"
          }
        },
        "required": ["applied_threshold", "hybrid_weights", "ranking_weights", "policy"],
        "title": "SourceRetrievalMetadataResponse",
        "type": "object"
      },
      "SourceRetrievalPolicyMetadataResponse": {
        "description": "Safety and rights posture applied to retrieval or search.",
        "properties": {
          "algorithm_docs_href": {
            "default": "/api/source-ingestion/retrieval/algorithm-docs",
            "title": "Algorithm Docs Href",
            "type": "string"
          },
          "allowed_citation_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Allowed Citation Count",
            "type": "integer"
          },
          "allowed_source_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Allowed Source Item Count",
            "type": "integer"
          },
          "blocked": {
            "default": false,
            "title": "Blocked",
            "type": "boolean"
          },
          "blocked_reasons": {
            "items": {
              "type": "string"
            },
            "title": "Blocked Reasons",
            "type": "array"
          },
          "filtered_candidate_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Filtered Candidate Count",
            "type": "integer"
          },
          "filtered_citation_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Filtered Citation Count",
            "type": "integer"
          },
          "filtered_graph_edge_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Filtered Graph Edge Count",
            "type": "integer"
          },
          "filtered_graph_node_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Filtered Graph Node Count",
            "type": "integer"
          },
          "filtered_source_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Filtered Source Item Count",
            "type": "integer"
          },
          "high_stakes_allowed": {
            "default": true,
            "title": "High Stakes Allowed",
            "type": "boolean"
          },
          "package_usage": {
            "default": "approved",
            "title": "Package Usage",
            "type": "string"
          },
          "rights_filter_decisions": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalRightsFilterDecisionResponse"
            },
            "title": "Rights Filter Decisions",
            "type": "array"
          },
          "rights_filter_version": {
            "default": "metis-rights-filter-v1",
            "title": "Rights Filter Version",
            "type": "string"
          }
        },
        "title": "SourceRetrievalPolicyMetadataResponse",
        "type": "object"
      },
      "SourceRetrievalQualityEvaluationResponse": {
        "description": "Retrieval-quality checks over deterministic graph-aware evaluation queries.",
        "properties": {
          "average_top_score": {
            "minimum": 0.0,
            "title": "Average Top Score",
            "type": "number"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "graph_linked_query_count": {
            "minimum": 0.0,
            "title": "Graph Linked Query Count",
            "type": "integer"
          },
          "grounded_query_count": {
            "minimum": 0.0,
            "title": "Grounded Query Count",
            "type": "integer"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "query_count": {
            "minimum": 0.0,
            "title": "Query Count",
            "type": "integer"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "zero_result_query_count": {
            "minimum": 0.0,
            "title": "Zero Result Query Count",
            "type": "integer"
          }
        },
        "required": [
          "overall_score",
          "query_count",
          "zero_result_query_count",
          "grounded_query_count",
          "graph_linked_query_count",
          "average_top_score",
          "status"
        ],
        "title": "SourceRetrievalQualityEvaluationResponse",
        "type": "object"
      },
      "SourceRetrievalRankingWeightsResponse": {
        "description": "Pedagogical retrieval ranking weights.",
        "properties": {
          "authority": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Authority",
            "type": "number"
          },
          "coverage": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Coverage",
            "type": "number"
          },
          "credibility": {
            "default": 0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Credibility",
            "type": "number"
          },
          "pedagogical_fit": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Pedagogical Fit",
            "type": "number"
          },
          "recency": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Recency",
            "type": "number"
          },
          "relevance": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Relevance",
            "type": "number"
          }
        },
        "required": ["relevance", "authority", "recency", "coverage", "pedagogical_fit"],
        "title": "SourceRetrievalRankingWeightsResponse",
        "type": "object"
      },
      "SourceRetrievalReceipt": {
        "additionalProperties": false,
        "properties": {
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "content_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Content Type",
            "type": "string"
          },
          "final_url": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Final Url",
            "type": "string"
          },
          "maximum_bytes": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Bytes",
            "type": "integer"
          },
          "receipt_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Receipt Id",
            "type": "string"
          },
          "receipt_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Receipt Sha256",
            "type": "string"
          },
          "redirect_chain": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Redirect Chain",
            "type": "array"
          },
          "requested_url": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Requested Url",
            "type": "string"
          },
          "resolved_addresses": {
            "items": {
              "type": "string"
            },
            "title": "Resolved Addresses",
            "type": "array"
          },
          "response_headers": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Response Headers",
            "type": "array"
          },
          "response_status": {
            "maximum": 599.0,
            "minimum": 100.0,
            "title": "Response Status",
            "type": "integer"
          },
          "single_fetch": {
            "const": true,
            "default": true,
            "title": "Single Fetch",
            "type": "boolean"
          },
          "size_bytes": {
            "minimum": 0.0,
            "title": "Size Bytes",
            "type": "integer"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "timeout_seconds": {
            "exclusiveMinimum": 0.0,
            "title": "Timeout Seconds",
            "type": "number"
          }
        },
        "required": [
          "receipt_id",
          "requested_url",
          "final_url",
          "resolved_addresses",
          "response_status",
          "started_at",
          "completed_at",
          "timeout_seconds",
          "maximum_bytes",
          "content_type",
          "size_bytes",
          "content_sha256",
          "receipt_sha256"
        ],
        "title": "SourceRetrievalReceipt",
        "type": "object"
      },
      "SourceRetrievalResponse": {
        "description": "Sophia-style retrieval response over a Metis source package.",
        "properties": {
          "has_more": {
            "default": false,
            "title": "Has More",
            "type": "boolean"
          },
          "metadata": {
            "$ref": "#/components/schemas/SourceRetrievalMetadataResponse"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "processing_time_ms": {
            "minimum": 0.0,
            "title": "Processing Time Ms",
            "type": "integer"
          },
          "query": {
            "title": "Query",
            "type": "string"
          },
          "query_id": {
            "title": "Query Id",
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/SourceRetrievalResultResponse"
            },
            "title": "Results",
            "type": "array"
          },
          "retrieved_at": {
            "format": "date-time",
            "title": "Retrieved At",
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CourseSourceScope"
              },
              {
                "$ref": "#/components/schemas/WorkspaceSourceScope"
              },
              {
                "$ref": "#/components/schemas/NotebookSourceScope"
              },
              {
                "$ref": "#/components/schemas/LearnerSessionSourceScope"
              }
            ],
            "title": "Scope"
          },
          "strategy": {
            "enum": ["dense", "sparse", "hybrid", "rerank", "multi-query"],
            "title": "Strategy",
            "type": "string"
          },
          "total_results": {
            "minimum": 0.0,
            "title": "Total Results",
            "type": "integer"
          }
        },
        "required": [
          "package_id",
          "scope",
          "query_id",
          "query",
          "strategy",
          "total_results",
          "processing_time_ms",
          "metadata",
          "retrieved_at"
        ],
        "title": "SourceRetrievalResponse",
        "type": "object"
      },
      "SourceRetrievalResultContextResponse": {
        "description": "Surrounding text context for a retrieved chunk.",
        "properties": {
          "after": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "After"
          },
          "before": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Before"
          },
          "chapter_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chapter Title"
          },
          "document_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Title"
          }
        },
        "title": "SourceRetrievalResultContextResponse",
        "type": "object"
      },
      "SourceRetrievalResultMetadataResponse": {
        "description": "Metadata attached to a retrieved evidence chunk.",
        "properties": {
          "authors": {
            "items": {
              "type": "string"
            },
            "title": "Authors",
            "type": "array"
          },
          "custom": {
            "additionalProperties": true,
            "title": "Custom",
            "type": "object"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "matched_terms": {
            "items": {
              "type": "string"
            },
            "title": "Matched Terms",
            "type": "array"
          },
          "section_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Section Title"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          }
        },
        "title": "SourceRetrievalResultMetadataResponse",
        "type": "object"
      },
      "SourceRetrievalResultResponse": {
        "description": "Single Sophia-shaped retrieval result backed by Metis evidence.",
        "properties": {
          "chunk_id": {
            "title": "Chunk Id",
            "type": "string"
          },
          "citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Citation Ids",
            "type": "array"
          },
          "context": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalResultContextResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "document_id": {
            "title": "Document Id",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/SourceRetrievalResultMetadataResponse"
          },
          "rank": {
            "minimum": 1.0,
            "title": "Rank",
            "type": "integer"
          },
          "result_id": {
            "title": "Result Id",
            "type": "string"
          },
          "score": {
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "score_breakdown": {
            "$ref": "#/components/schemas/SourceRetrievalScoreBreakdownResponse"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          },
          "source_section_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Section Id"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "result_id",
          "chunk_id",
          "document_id",
          "source_item_id",
          "text",
          "score",
          "rank",
          "metadata",
          "score_breakdown"
        ],
        "title": "SourceRetrievalResultResponse",
        "type": "object"
      },
      "SourceRetrievalRightsFilterDecisionResponse": {
        "description": "Inspectable source-item decision from the retrieval rights filter.",
        "properties": {
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Citation Ids",
            "type": "array"
          },
          "license_type": {
            "title": "License Type",
            "type": "string"
          },
          "provenance_posture": {
            "title": "Provenance Posture",
            "type": "string"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "title": "Reason Codes",
            "type": "array"
          },
          "rights_posture": {
            "title": "Rights Posture",
            "type": "string"
          },
          "source_item_id": {
            "title": "Source Item Id",
            "type": "string"
          }
        },
        "required": [
          "source_item_id",
          "allowed",
          "rights_posture",
          "license_type",
          "provenance_posture",
          "rationale"
        ],
        "title": "SourceRetrievalRightsFilterDecisionResponse",
        "type": "object"
      },
      "SourceRetrievalRightsFilterRuleResponse": {
        "description": "Documented rule used by the source retrieval rights filter.",
        "properties": {
          "condition": {
            "title": "Condition",
            "type": "string"
          },
          "effect": {
            "title": "Effect",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "reason_code": {
            "title": "Reason Code",
            "type": "string"
          },
          "rule_id": {
            "title": "Rule Id",
            "type": "string"
          }
        },
        "required": ["rule_id", "label", "condition", "effect", "reason_code"],
        "title": "SourceRetrievalRightsFilterRuleResponse",
        "type": "object"
      },
      "SourceRetrievalScoreBreakdownResponse": {
        "description": "Score breakdown for a retrieval result.",
        "properties": {
          "authority": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Authority",
            "type": "number"
          },
          "coverage": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Coverage",
            "type": "number"
          },
          "credibility": {
            "default": 0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Credibility",
            "type": "number"
          },
          "dense": {
            "minimum": 0.0,
            "title": "Dense",
            "type": "number"
          },
          "freshness": {
            "default": 0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Freshness",
            "type": "number"
          },
          "fused": {
            "minimum": 0.0,
            "title": "Fused",
            "type": "number"
          },
          "graph": {
            "default": 0,
            "minimum": 0.0,
            "title": "Graph",
            "type": "number"
          },
          "pedagogical_fit": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Pedagogical Fit",
            "type": "number"
          },
          "recency": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Recency",
            "type": "number"
          },
          "relevance": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Relevance",
            "type": "number"
          },
          "rerank": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rerank"
          },
          "source_diversity": {
            "default": 0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Source Diversity",
            "type": "number"
          },
          "sparse": {
            "minimum": 0.0,
            "title": "Sparse",
            "type": "number"
          }
        },
        "required": [
          "dense",
          "sparse",
          "relevance",
          "authority",
          "recency",
          "coverage",
          "pedagogical_fit",
          "fused"
        ],
        "title": "SourceRetrievalScoreBreakdownResponse",
        "type": "object"
      },
      "SourceRetrievalSourceDiversityResponse": {
        "description": "Source diversity diagnostics for returned retrieval evidence.",
        "properties": {
          "dominant_source_item_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dominant Source Item Id"
          },
          "dominant_source_item_share": {
            "default": 0,
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Dominant Source Item Share",
            "type": "number"
          },
          "meets_minimum_sources": {
            "default": false,
            "title": "Meets Minimum Sources",
            "type": "boolean"
          },
          "unique_document_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Unique Document Count",
            "type": "integer"
          },
          "unique_publisher_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Unique Publisher Count",
            "type": "integer"
          },
          "unique_source_item_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Unique Source Item Count",
            "type": "integer"
          }
        },
        "title": "SourceRetrievalSourceDiversityResponse",
        "type": "object"
      },
      "SourceRightsDecisionRecordResponse": {
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "title": "Comment",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer": {
            "title": "Reviewer",
            "type": "string"
          }
        },
        "required": ["action", "comment", "reviewer", "reviewed_at"],
        "title": "SourceRightsDecisionRecordResponse",
        "type": "object"
      },
      "SourceRightsDecisionResponse": {
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/SourceRightsDecisionRecordResponse"
          },
          "item": {
            "$ref": "#/components/schemas/SourceRightsReviewItemResponse"
          }
        },
        "required": ["item", "decision"],
        "title": "SourceRightsDecisionResponse",
        "type": "object"
      },
      "SourceRightsFactResponse": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "SourceRightsFactResponse",
        "type": "object"
      },
      "SourceRightsMetricResponse": {
        "properties": {
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "tone": {
            "default": "neutral",
            "enum": ["neutral", "positive", "warning", "critical"],
            "title": "Tone",
            "type": "string"
          },
          "value": {
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["label", "value"],
        "title": "SourceRightsMetricResponse",
        "type": "object"
      },
      "SourceRightsRecord": {
        "additionalProperties": false,
        "properties": {
          "evidence": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Evidence",
            "type": "array"
          },
          "full_text_use_authorized": {
            "default": false,
            "title": "Full Text Use Authorized",
            "type": "boolean"
          },
          "license_uri": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Uri"
          },
          "status": {
            "enum": [
              "unknown",
              "unchecked",
              "registry_reported",
              "declared",
              "permitted",
              "restricted",
              "public_domain"
            ],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status"],
        "title": "SourceRightsRecord",
        "type": "object"
      },
      "SourceRightsReviewItemResponse": {
        "properties": {
          "allowed_use": {
            "title": "Allowed Use",
            "type": "string"
          },
          "blockers": {
            "items": {
              "type": "string"
            },
            "title": "Blockers",
            "type": "array"
          },
          "context": {
            "items": {
              "$ref": "#/components/schemas/SourceRightsFactResponse"
            },
            "title": "Context",
            "type": "array"
          },
          "course_id": {
            "title": "Course Id",
            "type": "string"
          },
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "due_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Due At"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/SourceRightsFactResponse"
            },
            "title": "Evidence",
            "type": "array"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/SourceRightsDecisionRecordResponse"
            },
            "title": "History",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "license_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "License Coverage Percent",
            "type": "integer"
          },
          "license_type": {
            "enum": [
              "open_license",
              "licensed",
              "institutional",
              "open_reference",
              "restricted",
              "unknown",
              "missing"
            ],
            "title": "License Type",
            "type": "string"
          },
          "licensed_source_count": {
            "minimum": 0.0,
            "title": "Licensed Source Count",
            "type": "integer"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/SourceRightsMetricResponse"
            },
            "title": "Metrics",
            "type": "array"
          },
          "owner_id": {
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "title": "Owner Name",
            "type": "string"
          },
          "policy_flags": {
            "items": {
              "type": "string"
            },
            "title": "Policy Flags",
            "type": "array"
          },
          "provenance_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Provenance Coverage Percent",
            "type": "integer"
          },
          "provenance_posture": {
            "enum": ["verified", "partial", "missing"],
            "title": "Provenance Posture",
            "type": "string"
          },
          "restricted_source_count": {
            "minimum": 0.0,
            "title": "Restricted Source Count",
            "type": "integer"
          },
          "review_gates": {
            "items": {
              "$ref": "#/components/schemas/HumanReviewGateResponse"
            },
            "title": "Review Gates",
            "type": "array"
          },
          "rights_posture": {
            "enum": ["cleared", "needs_review", "blocked"],
            "title": "Rights Posture",
            "type": "string"
          },
          "risk_level": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Risk Level",
            "type": "string"
          },
          "source_count": {
            "minimum": 0.0,
            "title": "Source Count",
            "type": "integer"
          },
          "status": {
            "enum": ["pending", "approved", "changes_requested", "rejected"],
            "title": "Status",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "summary": {
            "title": "Summary",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "unknown_source_count": {
            "minimum": 0.0,
            "title": "Unknown Source Count",
            "type": "integer"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "course_id",
          "course_title",
          "owner_id",
          "owner_name",
          "status",
          "risk_level",
          "rights_posture",
          "license_type",
          "provenance_posture",
          "allowed_use",
          "summary",
          "source_count",
          "licensed_source_count",
          "restricted_source_count",
          "unknown_source_count",
          "provenance_coverage_percent",
          "license_coverage_percent",
          "submitted_at",
          "updated_at"
        ],
        "title": "SourceRightsReviewItemResponse",
        "type": "object"
      },
      "SourceRightsWorkspaceResponse": {
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/SourceRightsReviewItemResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceRightsWorkspaceSummaryResponse"
          }
        },
        "required": ["summary", "generated_at"],
        "title": "SourceRightsWorkspaceResponse",
        "type": "object"
      },
      "SourceRightsWorkspaceSummaryResponse": {
        "properties": {
          "average_license_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Average License Coverage Percent",
            "type": "integer"
          },
          "average_provenance_coverage_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Average Provenance Coverage Percent",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "high_risk": {
            "minimum": 0.0,
            "title": "High Risk",
            "type": "integer"
          },
          "pending": {
            "minimum": 0.0,
            "title": "Pending",
            "type": "integer"
          },
          "unknown_rights": {
            "minimum": 0.0,
            "title": "Unknown Rights",
            "type": "integer"
          }
        },
        "required": [
          "pending",
          "blocked",
          "high_risk",
          "unknown_rights",
          "average_provenance_coverage_percent",
          "average_license_coverage_percent"
        ],
        "title": "SourceRightsWorkspaceSummaryResponse",
        "type": "object"
      },
      "SourceRiskApplicabilityRule": {
        "additionalProperties": false,
        "properties": {
          "audience_kinds": {
            "items": {
              "enum": ["general", "minor", "professional", "vulnerable"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Audience Kinds",
            "type": "array"
          },
          "consequences": {
            "items": {
              "enum": [
                "informational",
                "actionable_guidance",
                "individualized_advice",
                "imminent_harm"
              ],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Consequences",
            "type": "array"
          },
          "minimum_severity": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Minimum Severity",
            "type": "string"
          },
          "nonwaivable": {
            "const": true,
            "default": true,
            "title": "Nonwaivable",
            "type": "boolean"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Rule Id",
            "type": "string"
          },
          "target_kinds": {
            "items": {
              "enum": ["curriculum_scope", "claim", "lesson", "assessment_item", "tutor_setting"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Target Kinds",
            "type": "array"
          },
          "uses": {
            "items": {
              "enum": ["planning", "publication", "tutor"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Uses",
            "type": "array"
          }
        },
        "required": [
          "rule_id",
          "target_kinds",
          "uses",
          "audience_kinds",
          "consequences",
          "minimum_severity",
          "reason"
        ],
        "title": "SourceRiskApplicabilityRule",
        "type": "object"
      },
      "SourceRiskAssessmentHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "assessment": {
            "$ref": "#/components/schemas/SourceRiskAssessmentRecord"
          },
          "current_evaluation": {
            "$ref": "#/components/schemas/SourceRiskEvaluationResponse"
          },
          "latest_review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRiskReviewDecisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "review_status": {
            "enum": [
              "not_required",
              "pending",
              "approved",
              "changes_requested",
              "rejected",
              "stale"
            ],
            "title": "Review Status",
            "type": "string"
          }
        },
        "required": ["assessment", "current_evaluation", "review_status"],
        "title": "SourceRiskAssessmentHistoryResponse",
        "type": "object"
      },
      "SourceRiskAssessmentItemTarget": {
        "additionalProperties": false,
        "properties": {
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "item_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Item Id",
            "type": "string"
          },
          "kind": {
            "const": "assessment_item",
            "default": "assessment_item",
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["generation_sha256", "item_id"],
        "title": "SourceRiskAssessmentItemTarget",
        "type": "object"
      },
      "SourceRiskAssessmentRecord": {
        "additionalProperties": false,
        "properties": {
          "asserted_severity": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Asserted Severity",
            "type": "string"
          },
          "assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "audience": {
            "$ref": "#/components/schemas/SourceRiskAudience"
          },
          "classified_at": {
            "format": "date-time",
            "title": "Classified At",
            "type": "string"
          },
          "classified_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Classified By",
            "type": "string"
          },
          "classified_by_role": {
            "enum": ["instructor", "admin"],
            "title": "Classified By Role",
            "type": "string"
          },
          "compliance_evidence": {
            "$ref": "#/components/schemas/SourceRiskComplianceEvidenceRequest"
          },
          "institution_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Institution Id",
            "type": "string"
          },
          "overlay_id": {
            "anyOf": [
              {
                "pattern": "^riskoverlay_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Overlay Id"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "registry_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Registry Version",
            "type": "string"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskClassificationSignal"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Signals",
            "type": "array"
          },
          "stored_evaluation": {
            "$ref": "#/components/schemas/SourceRiskEvaluationResponse"
          },
          "targets": {
            "items": {
              "discriminator": {
                "mapping": {
                  "assessment_item": "#/components/schemas/SourceRiskAssessmentItemTarget",
                  "claim": "#/components/schemas/SourceRiskClaimTarget",
                  "curriculum_scope": "#/components/schemas/SourceRiskCurriculumScopeTarget",
                  "lesson": "#/components/schemas/SourceRiskLessonTarget",
                  "tutor_setting": "#/components/schemas/SourceRiskTutorSettingTarget"
                },
                "propertyName": "kind"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/SourceRiskCurriculumScopeTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskClaimTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskLessonTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskAssessmentItemTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskTutorSettingTarget"
                }
              ]
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          },
          "uses": {
            "items": {
              "enum": ["planning", "publication", "tutor"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Uses",
            "type": "array"
          }
        },
        "required": [
          "assessment_id",
          "package_id",
          "institution_id",
          "targets",
          "uses",
          "audience",
          "signals",
          "asserted_severity",
          "compliance_evidence",
          "classified_by",
          "classified_by_role",
          "classified_at",
          "stored_evaluation",
          "self_sha256"
        ],
        "title": "SourceRiskAssessmentRecord",
        "type": "object"
      },
      "SourceRiskAudience": {
        "additionalProperties": false,
        "properties": {
          "jurisdiction_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Jurisdiction Codes",
            "type": "array"
          },
          "kind": {
            "enum": ["general", "minor", "professional", "vulnerable"],
            "title": "Kind",
            "type": "string"
          },
          "maximum_age": {
            "anyOf": [
              {
                "maximum": 125.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Age"
          },
          "minimum_age": {
            "anyOf": [
              {
                "maximum": 125.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Age"
          },
          "vulnerability_factors": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Vulnerability Factors",
            "type": "array"
          }
        },
        "required": ["kind"],
        "title": "SourceRiskAudience",
        "type": "object"
      },
      "SourceRiskClaimTarget": {
        "additionalProperties": false,
        "properties": {
          "claim_id": {
            "pattern": "^claim_[a-f0-9]{40}$",
            "title": "Claim Id",
            "type": "string"
          },
          "kind": {
            "const": "claim",
            "default": "claim",
            "title": "Kind",
            "type": "string"
          },
          "revision_id": {
            "pattern": "^claimrev_[a-f0-9]{40}$",
            "title": "Revision Id",
            "type": "string"
          }
        },
        "required": ["claim_id", "revision_id"],
        "title": "SourceRiskClaimTarget",
        "type": "object"
      },
      "SourceRiskClassificationRequest": {
        "additionalProperties": false,
        "properties": {
          "asserted_severity": {
            "default": "general",
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Asserted Severity",
            "type": "string"
          },
          "audience": {
            "$ref": "#/components/schemas/SourceRiskAudience"
          },
          "compliance_evidence": {
            "$ref": "#/components/schemas/SourceRiskComplianceEvidenceRequest"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Institution Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "signals": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskClassificationSignal"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Signals",
            "type": "array"
          },
          "targets": {
            "items": {
              "discriminator": {
                "mapping": {
                  "assessment_item": "#/components/schemas/SourceRiskAssessmentItemTarget",
                  "claim": "#/components/schemas/SourceRiskClaimTarget",
                  "curriculum_scope": "#/components/schemas/SourceRiskCurriculumScopeTarget",
                  "lesson": "#/components/schemas/SourceRiskLessonTarget",
                  "tutor_setting": "#/components/schemas/SourceRiskTutorSettingTarget"
                },
                "propertyName": "kind"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/SourceRiskCurriculumScopeTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskClaimTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskLessonTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskAssessmentItemTarget"
                },
                {
                  "$ref": "#/components/schemas/SourceRiskTutorSettingTarget"
                }
              ]
            },
            "maxItems": 256,
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          },
          "uses": {
            "items": {
              "enum": ["planning", "publication", "tutor"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Uses",
            "type": "array"
          }
        },
        "required": [
          "institution_id",
          "targets",
          "uses",
          "audience",
          "signals",
          "compliance_evidence",
          "idempotency_key"
        ],
        "title": "SourceRiskClassificationRequest",
        "type": "object"
      },
      "SourceRiskClassificationSignal": {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "consequence": {
            "enum": [
              "informational",
              "actionable_guidance",
              "individualized_advice",
              "imminent_harm"
            ],
            "title": "Consequence",
            "type": "string"
          },
          "domain_id": {
            "anyOf": [
              {
                "enum": ["health", "legal", "safety", "financial"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain Id"
          },
          "evidence_kind": {
            "enum": [
              "human_declaration",
              "deterministic_policy",
              "model_proposal",
              "imported_record"
            ],
            "title": "Evidence Kind",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Signal Id",
            "type": "string"
          },
          "uncertainty_reason": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Uncertainty Reason"
          }
        },
        "required": [
          "signal_id",
          "domain_id",
          "consequence",
          "evidence_kind",
          "confidence",
          "evidence_ref"
        ],
        "title": "SourceRiskClassificationSignal",
        "type": "object"
      },
      "SourceRiskCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskAssessmentHistoryResponse"
            },
            "maxItems": 16384,
            "title": "Assessments",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["package_id", "generated_at"],
        "title": "SourceRiskCollectionResponse",
        "type": "object"
      },
      "SourceRiskComplianceEvidenceRequest": {
        "additionalProperties": false,
        "properties": {
          "citation_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "minItems": 1,
            "title": "Citation Ids",
            "type": "array"
          },
          "disclaimer_evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Disclaimer Evidence Ids",
            "type": "array"
          },
          "escalation_path_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Path Id"
          },
          "monitoring_interval_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Monitoring Interval Days",
            "type": "integer"
          },
          "monitoring_plan_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Monitoring Plan Id",
            "type": "string"
          },
          "source_item_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Source Item Ids",
            "type": "array"
          }
        },
        "required": [
          "source_item_ids",
          "citation_ids",
          "monitoring_plan_id",
          "monitoring_interval_days"
        ],
        "title": "SourceRiskComplianceEvidenceRequest",
        "type": "object"
      },
      "SourceRiskCurriculumScopeTarget": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "curriculum_scope",
            "default": "curriculum_scope",
            "title": "Kind",
            "type": "string"
          },
          "source_version": {
            "minimum": 1.0,
            "title": "Source Version",
            "type": "integer"
          }
        },
        "required": ["source_version"],
        "title": "SourceRiskCurriculumScopeTarget",
        "type": "object"
      },
      "SourceRiskDomainPolicy": {
        "additionalProperties": false,
        "properties": {
          "applicability_rules": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskApplicabilityRule"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Applicability Rules",
            "type": "array"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "domain_id": {
            "enum": ["health", "legal", "safety", "financial"],
            "title": "Domain Id",
            "type": "string"
          },
          "requirement_floors": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskRequirementFloor"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Requirement Floors",
            "type": "array"
          },
          "title": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "domain_id",
          "title",
          "description",
          "requirement_floors",
          "applicability_rules"
        ],
        "title": "SourceRiskDomainPolicy",
        "type": "object"
      },
      "SourceRiskDomainRegistryResponse": {
        "additionalProperties": false,
        "properties": {
          "domains": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskDomainPolicy"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Domains",
            "type": "array"
          },
          "framework_references": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskFrameworkReference"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Framework References",
            "type": "array"
          },
          "policy_status": {
            "const": "engineering_baseline",
            "default": "engineering_baseline",
            "title": "Policy Status",
            "type": "string"
          },
          "published_at": {
            "format": "date-time",
            "title": "Published At",
            "type": "string"
          },
          "registry_id": {
            "const": "metis.source-risk-domain-registry",
            "default": "metis.source-risk-domain-registry",
            "title": "Registry Id",
            "type": "string"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["published_at", "framework_references", "domains", "self_sha256"],
        "title": "SourceRiskDomainRegistryResponse",
        "type": "object"
      },
      "SourceRiskEvaluationResponse": {
        "additionalProperties": false,
        "properties": {
          "assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "classification_state": {
            "enum": ["classified", "ambiguous"],
            "title": "Classification State",
            "type": "string"
          },
          "domain_ids": {
            "items": {
              "enum": ["health", "legal", "safety", "financial"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Domain Ids",
            "type": "array"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evidence_evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Evaluation Sha256",
            "type": "string"
          },
          "observed_evidence": {
            "$ref": "#/components/schemas/SourceRiskObservedEvidence"
          },
          "reasons": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Reasons",
            "type": "array"
          },
          "review_required": {
            "title": "Review Required",
            "type": "boolean"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "severity": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "use_evaluations": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskUseEvaluation"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Use Evaluations",
            "type": "array"
          }
        },
        "required": [
          "assessment_id",
          "classification_state",
          "domain_ids",
          "severity",
          "review_required",
          "observed_evidence",
          "use_evaluations",
          "evaluated_at",
          "evidence_evaluation_sha256"
        ],
        "title": "SourceRiskEvaluationResponse",
        "type": "object"
      },
      "SourceRiskFrameworkReference": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Decision",
            "type": "string"
          },
          "issuing_authority": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Issuing Authority",
            "type": "string"
          },
          "reference_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Reference Id",
            "type": "string"
          },
          "title": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "url": {
            "maxLength": 2048,
            "pattern": "^https://",
            "title": "Url",
            "type": "string"
          }
        },
        "required": ["reference_id", "title", "issuing_authority", "url", "decision"],
        "title": "SourceRiskFrameworkReference",
        "type": "object"
      },
      "SourceRiskInstitutionOverlayRequest": {
        "additionalProperties": false,
        "properties": {
          "base_registry_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Base Registry Version",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Institution Id",
            "type": "string"
          },
          "overlay_version": {
            "maxLength": 64,
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Overlay Version",
            "type": "string"
          },
          "overrides": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskRequirementOverride"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Overrides",
            "type": "array"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "institution_id",
          "overlay_version",
          "rationale",
          "overrides",
          "idempotency_key"
        ],
        "title": "SourceRiskInstitutionOverlayRequest",
        "type": "object"
      },
      "SourceRiskInstitutionOverlayResponse": {
        "additionalProperties": false,
        "properties": {
          "base_registry_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Base Registry Version",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Created By",
            "type": "string"
          },
          "institution_id": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Institution Id",
            "type": "string"
          },
          "overlay_id": {
            "pattern": "^riskoverlay_[a-f0-9]{40}$",
            "title": "Overlay Id",
            "type": "string"
          },
          "overlay_version": {
            "maxLength": 64,
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Overlay Version",
            "type": "string"
          },
          "overrides": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskRequirementOverride"
            },
            "maxItems": 64,
            "minItems": 1,
            "title": "Overrides",
            "type": "array"
          },
          "previous_overlay_id": {
            "anyOf": [
              {
                "pattern": "^riskoverlay_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Overlay Id"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "overlay_id",
          "institution_id",
          "overlay_version",
          "rationale",
          "overrides",
          "created_by",
          "created_at",
          "self_sha256"
        ],
        "title": "SourceRiskInstitutionOverlayResponse",
        "type": "object"
      },
      "SourceRiskLessonTarget": {
        "additionalProperties": false,
        "properties": {
          "generation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Generation Sha256",
            "type": "string"
          },
          "kind": {
            "const": "lesson",
            "default": "lesson",
            "title": "Kind",
            "type": "string"
          },
          "lesson_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Lesson Id",
            "type": "string"
          }
        },
        "required": ["generation_sha256", "lesson_id"],
        "title": "SourceRiskLessonTarget",
        "type": "object"
      },
      "SourceRiskObservedEvidence": {
        "additionalProperties": false,
        "properties": {
          "citation_binding_issues": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Citation Binding Issues",
            "type": "array"
          },
          "disclaimer_evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Disclaimer Evidence Ids",
            "type": "array"
          },
          "escalation_path_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Path Id"
          },
          "monitoring_interval_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Monitoring Interval Days",
            "type": "integer"
          },
          "monitoring_plan_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Monitoring Plan Id",
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskObservedSource"
            },
            "maxItems": 64,
            "title": "Sources",
            "type": "array"
          },
          "target_binding_issues": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Target Binding Issues",
            "type": "array"
          },
          "verified_citation_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 128,
            "title": "Verified Citation Ids",
            "type": "array"
          }
        },
        "required": ["monitoring_plan_id", "monitoring_interval_days"],
        "title": "SourceRiskObservedEvidence",
        "type": "object"
      },
      "SourceRiskObservedSource": {
        "additionalProperties": false,
        "properties": {
          "authority_tier": {
            "enum": [
              "general_reference",
              "recognized_expert",
              "peer_reviewed_or_professional",
              "primary_official"
            ],
            "title": "Authority Tier",
            "type": "string"
          },
          "freshness_status": {
            "maxLength": 64,
            "minLength": 1,
            "title": "Freshness Status",
            "type": "string"
          },
          "governance_approved": {
            "title": "Governance Approved",
            "type": "boolean"
          },
          "governance_revision_id": {
            "anyOf": [
              {
                "pattern": "^govrev_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Governance Revision Id"
          },
          "independent_authority_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Independent Authority Ids",
            "type": "array"
          },
          "jurisdiction_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 256,
            "title": "Jurisdiction Codes",
            "type": "array"
          },
          "source_age_days": {
            "anyOf": [
              {
                "maximum": 36500.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Age Days"
          },
          "source_item_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Item Id",
            "type": "string"
          },
          "withdrawal_status": {
            "enum": ["active", "corrected", "superseded", "retracted"],
            "title": "Withdrawal Status",
            "type": "string"
          }
        },
        "required": [
          "source_item_id",
          "authority_tier",
          "governance_approved",
          "freshness_status",
          "withdrawal_status"
        ],
        "title": "SourceRiskObservedSource",
        "type": "object"
      },
      "SourceRiskRequirementCheck": {
        "additionalProperties": false,
        "properties": {
          "blocking": {
            "title": "Blocking",
            "type": "boolean"
          },
          "code": {
            "maxLength": 160,
            "minLength": 1,
            "pattern": "^[a-z0-9-]+$",
            "title": "Code",
            "type": "string"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["code", "passed", "blocking", "summary"],
        "title": "SourceRiskRequirementCheck",
        "type": "object"
      },
      "SourceRiskRequirementFloor": {
        "additionalProperties": false,
        "properties": {
          "automated_tutor_use_allowed": {
            "title": "Automated Tutor Use Allowed",
            "type": "boolean"
          },
          "disclaimer_required": {
            "title": "Disclaimer Required",
            "type": "boolean"
          },
          "domain_id": {
            "enum": ["health", "legal", "safety", "financial"],
            "title": "Domain Id",
            "type": "string"
          },
          "escalation_required": {
            "title": "Escalation Required",
            "type": "boolean"
          },
          "jurisdiction_match_required": {
            "title": "Jurisdiction Match Required",
            "type": "boolean"
          },
          "maximum_monitoring_interval_days": {
            "maximum": 365.0,
            "minimum": 1.0,
            "title": "Maximum Monitoring Interval Days",
            "type": "integer"
          },
          "maximum_source_age_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Maximum Source Age Days",
            "type": "integer"
          },
          "minimum_authority_tier": {
            "enum": [
              "general_reference",
              "recognized_expert",
              "peer_reviewed_or_professional",
              "primary_official"
            ],
            "title": "Minimum Authority Tier",
            "type": "string"
          },
          "minimum_citations": {
            "maximum": 16.0,
            "minimum": 1.0,
            "title": "Minimum Citations",
            "type": "integer"
          },
          "minimum_independent_sources": {
            "maximum": 8.0,
            "minimum": 1.0,
            "title": "Minimum Independent Sources",
            "type": "integer"
          },
          "required_reviewer_qualifications": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Required Reviewer Qualifications",
            "type": "array"
          },
          "severity": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "source_withdrawal_action": {
            "enum": ["review_required", "block"],
            "title": "Source Withdrawal Action",
            "type": "string"
          }
        },
        "required": [
          "domain_id",
          "severity",
          "minimum_authority_tier",
          "maximum_source_age_days",
          "jurisdiction_match_required",
          "minimum_independent_sources",
          "minimum_citations",
          "disclaimer_required",
          "escalation_required",
          "maximum_monitoring_interval_days",
          "source_withdrawal_action",
          "automated_tutor_use_allowed"
        ],
        "title": "SourceRiskRequirementFloor",
        "type": "object"
      },
      "SourceRiskRequirementOverride": {
        "additionalProperties": false,
        "properties": {
          "additional_reviewer_qualifications": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "title": "Additional Reviewer Qualifications",
            "type": "array"
          },
          "automated_tutor_use_allowed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Automated Tutor Use Allowed"
          },
          "disclaimer_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disclaimer Required"
          },
          "domain_id": {
            "enum": ["health", "legal", "safety", "financial"],
            "title": "Domain Id",
            "type": "string"
          },
          "escalation_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Required"
          },
          "jurisdiction_match_required": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jurisdiction Match Required"
          },
          "maximum_monitoring_interval_days": {
            "anyOf": [
              {
                "maximum": 365.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Monitoring Interval Days"
          },
          "maximum_source_age_days": {
            "anyOf": [
              {
                "maximum": 3650.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Source Age Days"
          },
          "minimum_authority_tier": {
            "anyOf": [
              {
                "enum": [
                  "general_reference",
                  "recognized_expert",
                  "peer_reviewed_or_professional",
                  "primary_official"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Authority Tier"
          },
          "minimum_citations": {
            "anyOf": [
              {
                "maximum": 16.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Citations"
          },
          "minimum_independent_sources": {
            "anyOf": [
              {
                "maximum": 8.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minimum Independent Sources"
          },
          "severity": {
            "enum": ["general", "elevated", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "source_withdrawal_action": {
            "anyOf": [
              {
                "enum": ["review_required", "block"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Withdrawal Action"
          }
        },
        "required": ["domain_id", "severity"],
        "title": "SourceRiskRequirementOverride",
        "type": "object"
      },
      "SourceRiskReviewDecisionResponse": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "assessment_id": {
            "pattern": "^riskassess_[a-f0-9]{40}$",
            "title": "Assessment Id",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "evidence_evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Evaluation Sha256",
            "type": "string"
          },
          "package_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Package Id",
            "type": "string"
          },
          "review_id": {
            "pattern": "^riskreview_[a-f0-9]{40}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Reviewer Name",
            "type": "string"
          },
          "reviewer_qualifications": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Reviewer Qualifications",
            "type": "array"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "review_id",
          "package_id",
          "assessment_id",
          "evidence_evaluation_sha256",
          "action",
          "comment",
          "reviewer_id",
          "reviewer_name",
          "reviewed_at",
          "self_sha256"
        ],
        "title": "SourceRiskReviewDecisionResponse",
        "type": "object"
      },
      "SourceRiskReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["approve", "request_changes", "reject"],
            "title": "Action",
            "type": "string"
          },
          "comment": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Comment",
            "type": "string"
          },
          "expected_evidence_evaluation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Evidence Evaluation Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          }
        },
        "required": ["expected_evidence_evaluation_sha256", "action", "comment", "idempotency_key"],
        "title": "SourceRiskReviewRequest",
        "type": "object"
      },
      "SourceRiskTutorSettingTarget": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "tutor_setting",
            "default": "tutor_setting",
            "title": "Kind",
            "type": "string"
          },
          "requires_approved_sources": {
            "const": true,
            "default": true,
            "title": "Requires Approved Sources",
            "type": "boolean"
          },
          "setting_key": {
            "const": "source_grounding_policy",
            "default": "source_grounding_policy",
            "title": "Setting Key",
            "type": "string"
          },
          "setting_version_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Setting Version Sha256",
            "type": "string"
          },
          "source_version": {
            "minimum": 1.0,
            "title": "Source Version",
            "type": "integer"
          }
        },
        "required": ["source_version", "setting_version_sha256"],
        "title": "SourceRiskTutorSettingTarget",
        "type": "object"
      },
      "SourceRiskUseEvaluation": {
        "additionalProperties": false,
        "properties": {
          "checks": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskRequirementCheck"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Checks",
            "type": "array"
          },
          "effective_requirements": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskRequirementFloor"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Effective Requirements",
            "type": "array"
          },
          "eligible": {
            "title": "Eligible",
            "type": "boolean"
          },
          "state": {
            "enum": ["allowed", "review_required", "blocked"],
            "title": "State",
            "type": "string"
          },
          "use": {
            "enum": ["planning", "publication", "tutor"],
            "title": "Use",
            "type": "string"
          }
        },
        "required": ["use", "effective_requirements", "state", "eligible", "checks"],
        "title": "SourceRiskUseEvaluation",
        "type": "object"
      },
      "SourceRiskWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "assessments": {
            "items": {
              "$ref": "#/components/schemas/SourceRiskAssessmentHistoryResponse"
            },
            "maxItems": 16384,
            "title": "Assessments",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "registry": {
            "$ref": "#/components/schemas/SourceRiskDomainRegistryResponse"
          },
          "schema_version": {
            "const": "2.8.0",
            "default": "2.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/SourceRiskWorkspaceSummary"
          }
        },
        "required": ["registry", "generated_at", "summary"],
        "title": "SourceRiskWorkspaceResponse",
        "type": "object"
      },
      "SourceRiskWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "minimum": 0.0,
            "title": "Allowed",
            "type": "integer"
          },
          "blocked": {
            "minimum": 0.0,
            "title": "Blocked",
            "type": "integer"
          },
          "critical": {
            "minimum": 0.0,
            "title": "Critical",
            "type": "integer"
          },
          "review_required": {
            "minimum": 0.0,
            "title": "Review Required",
            "type": "integer"
          },
          "stale_reviews": {
            "minimum": 0.0,
            "title": "Stale Reviews",
            "type": "integer"
          },
          "total_assessments": {
            "minimum": 0.0,
            "title": "Total Assessments",
            "type": "integer"
          }
        },
        "required": [
          "total_assessments",
          "allowed",
          "review_required",
          "blocked",
          "critical",
          "stale_reviews"
        ],
        "title": "SourceRiskWorkspaceSummary",
        "type": "object"
      },
      "SourceScanFinding": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "malware",
              "content_type",
              "polyglot",
              "macro",
              "active_content",
              "archive_traversal",
              "archive_symlink",
              "archive_nesting",
              "archive_bomb",
              "parser_exploit",
              "resource_limit",
              "password_encryption",
              "integrity",
              "scanner"
            ],
            "title": "Category",
            "type": "string"
          },
          "code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Code",
            "type": "string"
          },
          "detail": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "disposition": {
            "enum": ["reject", "manual", "quarantine"],
            "title": "Disposition",
            "type": "string"
          },
          "locator": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locator"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": ["code", "category", "severity", "disposition", "detail"],
        "title": "SourceScanFinding",
        "type": "object"
      },
      "SourceScanLimits": {
        "additionalProperties": false,
        "description": "The complete resource and container policy applied to one scan.",
        "properties": {
          "maximum_archive_depth": {
            "minimum": 0.0,
            "title": "Maximum Archive Depth",
            "type": "integer"
          },
          "maximum_archive_files": {
            "minimum": 1.0,
            "title": "Maximum Archive Files",
            "type": "integer"
          },
          "maximum_compressed_bytes": {
            "minimum": 1.0,
            "title": "Maximum Compressed Bytes",
            "type": "integer"
          },
          "maximum_compression_ratio": {
            "exclusiveMinimum": 1.0,
            "title": "Maximum Compression Ratio",
            "type": "number"
          },
          "maximum_cpu_seconds": {
            "minimum": 1.0,
            "title": "Maximum Cpu Seconds",
            "type": "integer"
          },
          "maximum_input_bytes": {
            "minimum": 1.0,
            "title": "Maximum Input Bytes",
            "type": "integer"
          },
          "maximum_media": {
            "minimum": 0.0,
            "title": "Maximum Media",
            "type": "integer"
          },
          "maximum_member_bytes": {
            "minimum": 1.0,
            "title": "Maximum Member Bytes",
            "type": "integer"
          },
          "maximum_memory_bytes": {
            "minimum": 1.0,
            "title": "Maximum Memory Bytes",
            "type": "integer"
          },
          "maximum_objects": {
            "minimum": 1.0,
            "title": "Maximum Objects",
            "type": "integer"
          },
          "maximum_pages": {
            "minimum": 1.0,
            "title": "Maximum Pages",
            "type": "integer"
          },
          "maximum_uncompressed_bytes": {
            "minimum": 1.0,
            "title": "Maximum Uncompressed Bytes",
            "type": "integer"
          },
          "maximum_wall_seconds": {
            "exclusiveMinimum": 0.0,
            "title": "Maximum Wall Seconds",
            "type": "number"
          },
          "password_rule": {
            "enum": ["reject", "manual"],
            "title": "Password Rule",
            "type": "string"
          }
        },
        "required": [
          "maximum_input_bytes",
          "maximum_compressed_bytes",
          "maximum_uncompressed_bytes",
          "maximum_member_bytes",
          "maximum_archive_files",
          "maximum_archive_depth",
          "maximum_compression_ratio",
          "maximum_pages",
          "maximum_objects",
          "maximum_media",
          "maximum_cpu_seconds",
          "maximum_wall_seconds",
          "maximum_memory_bytes",
          "password_rule"
        ],
        "title": "SourceScanLimits",
        "type": "object"
      },
      "SourceScanObserved": {
        "additionalProperties": false,
        "properties": {
          "archive_depth": {
            "minimum": 0.0,
            "title": "Archive Depth",
            "type": "integer"
          },
          "archive_files": {
            "minimum": 0.0,
            "title": "Archive Files",
            "type": "integer"
          },
          "compressed_bytes": {
            "minimum": 0.0,
            "title": "Compressed Bytes",
            "type": "integer"
          },
          "elapsed_ms": {
            "minimum": 0.0,
            "title": "Elapsed Ms",
            "type": "integer"
          },
          "input_bytes": {
            "minimum": 0.0,
            "title": "Input Bytes",
            "type": "integer"
          },
          "media": {
            "minimum": 0.0,
            "title": "Media",
            "type": "integer"
          },
          "memory_bytes_bound": {
            "minimum": 0.0,
            "title": "Memory Bytes Bound",
            "type": "integer"
          },
          "objects": {
            "minimum": 0.0,
            "title": "Objects",
            "type": "integer"
          },
          "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
          },
          "uncompressed_bytes": {
            "minimum": 0.0,
            "title": "Uncompressed Bytes",
            "type": "integer"
          }
        },
        "required": [
          "input_bytes",
          "compressed_bytes",
          "uncompressed_bytes",
          "archive_files",
          "archive_depth",
          "pages",
          "objects",
          "media",
          "elapsed_ms",
          "memory_bytes_bound"
        ],
        "title": "SourceScanObserved",
        "type": "object"
      },
      "SourceScannerEvidence": {
        "additionalProperties": false,
        "description": "Versioned evidence from one required scanner over one exact input hash.",
        "properties": {
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "database_identity_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Database Identity Sha256",
            "type": "string"
          },
          "database_version": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Database Version",
            "type": "string"
          },
          "input_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Sha256",
            "type": "string"
          },
          "output_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Output Sha256",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "result": {
            "enum": ["clean", "infected", "suspicious", "error", "unavailable"],
            "title": "Result",
            "type": "string"
          },
          "scanner_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Scanner Id",
            "type": "string"
          },
          "scanner_version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Scanner Version",
            "type": "string"
          },
          "signature_names": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Signature Names",
            "type": "array"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          }
        },
        "required": [
          "scanner_id",
          "scanner_version",
          "database_version",
          "database_identity_sha256",
          "config_sha256",
          "input_sha256",
          "required",
          "available",
          "result",
          "output_sha256",
          "started_at",
          "completed_at"
        ],
        "title": "SourceScannerEvidence",
        "type": "object"
      },
      "SourceStudyArtifactResponse": {
        "description": "Study guide or flashcard artifact surfaced for notebook/workspace study.",
        "properties": {
          "artifact_id": {
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_type": {
            "enum": ["study_guide", "flashcards", "quiz_review"],
            "title": "Artifact Type",
            "type": "string"
          },
          "content": {
            "title": "Content",
            "type": "string"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["package_id", "artifact_id", "artifact_type", "title", "content"],
        "title": "SourceStudyArtifactResponse",
        "type": "object"
      },
      "SourceStudyBundleSummaryResponse": {
        "description": "Summary of a scoped source bundle in the study workspace.",
        "properties": {
          "concept_graph_ready": {
            "title": "Concept Graph Ready",
            "type": "boolean"
          },
          "flashcard_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Flashcard Count",
            "type": "integer"
          },
          "generation_ready": {
            "title": "Generation Ready",
            "type": "boolean"
          },
          "owner_name": {
            "title": "Owner Name",
            "type": "string"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "quiz_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Quiz Count",
            "type": "integer"
          },
          "review_status": {
            "title": "Review Status",
            "type": "string"
          },
          "scope_title": {
            "title": "Scope Title",
            "type": "string"
          },
          "study_guide_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Study Guide Count",
            "type": "integer"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "usage": {
            "title": "Usage",
            "type": "string"
          }
        },
        "required": [
          "package_id",
          "title",
          "scope_title",
          "owner_name",
          "review_status",
          "usage",
          "generation_ready",
          "concept_graph_ready"
        ],
        "title": "SourceStudyBundleSummaryResponse",
        "type": "object"
      },
      "SourceStudyQuizResponse": {
        "description": "Quiz surfaced from grounded generation for study flows.",
        "properties": {
          "assessment_id": {
            "title": "Assessment Id",
            "type": "string"
          },
          "assessment_type": {
            "enum": ["quiz", "practice"],
            "title": "Assessment Type",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "evidence_citation_ids": {
            "items": {
              "type": "string"
            },
            "title": "Evidence Citation Ids",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "question_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Question Count",
            "type": "integer"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["package_id", "assessment_id", "title", "description", "assessment_type"],
        "title": "SourceStudyQuizResponse",
        "type": "object"
      },
      "SourceStudyTutorLaunchResponse": {
        "description": "Tutor-session launch payload derived from a source bundle.",
        "properties": {
          "concept_ids": {
            "items": {
              "type": "string"
            },
            "title": "Concept Ids",
            "type": "array"
          },
          "package_id": {
            "title": "Package Id",
            "type": "string"
          },
          "requires_approved_sources": {
            "default": true,
            "title": "Requires Approved Sources",
            "type": "boolean"
          },
          "source_package_id": {
            "title": "Source Package Id",
            "type": "string"
          },
          "suggested_prompt": {
            "title": "Suggested Prompt",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          },
          "tutor_type": {
            "default": "ai",
            "enum": ["ai", "human", "hybrid"],
            "title": "Tutor Type",
            "type": "string"
          }
        },
        "required": ["package_id", "title", "topic", "source_package_id", "suggested_prompt"],
        "title": "SourceStudyTutorLaunchResponse",
        "type": "object"
      },
      "SourceStudyWorkspaceRequest": {
        "description": "Request a notebook or workspace study surface from source bundles.",
        "properties": {
          "force_generate_missing": {
            "default": false,
            "title": "Force Generate Missing",
            "type": "boolean"
          },
          "level": {
            "enum": ["workspace", "notebook"],
            "title": "Level",
            "type": "string"
          },
          "owner_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id"
          },
          "retrieval_strategy": {
            "default": "hybrid",
            "enum": ["dense", "sparse", "hybrid", "rerank", "multi-query"],
            "title": "Retrieval Strategy",
            "type": "string"
          },
          "retrieval_top_k": {
            "default": 3,
            "maximum": 8.0,
            "minimum": 1.0,
            "title": "Retrieval Top K",
            "type": "integer"
          },
          "scope_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Scope Id",
            "type": "string"
          }
        },
        "required": ["level", "scope_id"],
        "title": "SourceStudyWorkspaceRequest",
        "type": "object"
      },
      "SourceStudyWorkspaceResponse": {
        "description": "Resolved notebook or workspace study experience from source bundles.",
        "properties": {
          "bundle_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Bundle Count",
            "type": "integer"
          },
          "bundles": {
            "items": {
              "$ref": "#/components/schemas/SourceStudyBundleSummaryResponse"
            },
            "title": "Bundles",
            "type": "array"
          },
          "flashcards": {
            "items": {
              "$ref": "#/components/schemas/SourceStudyArtifactResponse"
            },
            "title": "Flashcards",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "level": {
            "enum": ["workspace", "notebook"],
            "title": "Level",
            "type": "string"
          },
          "owner_id": {
            "title": "Owner Id",
            "type": "string"
          },
          "owner_name": {
            "title": "Owner Name",
            "type": "string"
          },
          "quizzes": {
            "items": {
              "$ref": "#/components/schemas/SourceStudyQuizResponse"
            },
            "title": "Quizzes",
            "type": "array"
          },
          "scope_id": {
            "title": "Scope Id",
            "type": "string"
          },
          "scope_title": {
            "title": "Scope Title",
            "type": "string"
          },
          "study_guides": {
            "items": {
              "$ref": "#/components/schemas/SourceStudyArtifactResponse"
            },
            "title": "Study Guides",
            "type": "array"
          },
          "tutor_sessions": {
            "items": {
              "$ref": "#/components/schemas/SourceStudyTutorLaunchResponse"
            },
            "title": "Tutor Sessions",
            "type": "array"
          }
        },
        "required": ["level", "scope_id", "scope_title", "owner_id", "owner_name", "generated_at"],
        "title": "SourceStudyWorkspaceResponse",
        "type": "object"
      },
      "SourceUploadBatchResponse": {
        "description": "Batch of upload targets.",
        "properties": {
          "uploads": {
            "items": {
              "$ref": "#/components/schemas/SourceUploadTargetResponse"
            },
            "title": "Uploads",
            "type": "array"
          }
        },
        "required": ["uploads"],
        "title": "SourceUploadBatchResponse",
        "type": "object"
      },
      "SourceUploadRequest": {
        "description": "Request a pre-signed upload target for an ingestible file.",
        "properties": {
          "content_type": {
            "default": "application/octet-stream",
            "maxLength": 255,
            "minLength": 1,
            "title": "Content Type",
            "type": "string"
          },
          "file_name": {
            "maxLength": 512,
            "minLength": 1,
            "title": "File Name",
            "type": "string"
          },
          "size_bytes": {
            "minimum": 1.0,
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": ["file_name", "size_bytes"],
        "title": "SourceUploadRequest",
        "type": "object"
      },
      "SourceUploadTargetResponse": {
        "description": "Upload target details for a single file.",
        "properties": {
          "content_type": {
            "title": "Content Type",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "file_name": {
            "title": "File Name",
            "type": "string"
          },
          "object_key": {
            "title": "Object Key",
            "type": "string"
          },
          "size_bytes": {
            "title": "Size Bytes",
            "type": "integer"
          },
          "upload_id": {
            "title": "Upload Id",
            "type": "string"
          },
          "upload_url": {
            "title": "Upload Url",
            "type": "string"
          }
        },
        "required": [
          "upload_id",
          "object_key",
          "upload_url",
          "file_name",
          "content_type",
          "size_bytes",
          "expires_at"
        ],
        "title": "SourceUploadTargetResponse",
        "type": "object"
      },
      "SourceVersion": {
        "additionalProperties": false,
        "description": "One version of a source, and what it did to the one before it.",
        "properties": {
          "change": {
            "enum": ["created", "corrected", "revised", "superseded", "retracted"],
            "title": "Change",
            "type": "string"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "source_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "maxLength": 600,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": ["source_id", "version", "change", "content_sha256", "recorded_at"],
        "title": "SourceVersion",
        "type": "object"
      },
      "SourceVersionDiffItemResponse": {
        "description": "Diff result for one source item across versions.",
        "properties": {
          "change_type": {
            "enum": ["unchanged", "content_changed", "status_changed", "metadata_changed"],
            "title": "Change Type",
            "type": "string"
          },
          "current_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Sha256"
          },
          "current_status": {
            "title": "Current Status",
            "type": "string"
          },
          "item_id": {
            "title": "Item Id",
            "type": "string"
          },
          "kind": {
            "enum": ["file", "url", "feed", "package"],
            "title": "Kind",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "notes": {
            "items": {
              "type": "string"
            },
            "title": "Notes",
            "type": "array"
          },
          "previous_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Sha256"
          },
          "previous_status": {
            "title": "Previous Status",
            "type": "string"
          }
        },
        "required": [
          "item_id",
          "label",
          "kind",
          "change_type",
          "previous_status",
          "current_status"
        ],
        "title": "SourceVersionDiffItemResponse",
        "type": "object"
      },
      "SourceVersionRecord": {
        "additionalProperties": false,
        "description": "One normalized, immutable source version for all seven intake paths.",
        "properties": {
          "audit": {
            "items": {
              "$ref": "#/components/schemas/SourceAuditEvent"
            },
            "title": "Audit",
            "type": "array"
          },
          "authority": {
            "$ref": "#/components/schemas/SourceAuthorityRecord"
          },
          "checksum": {
            "$ref": "#/components/schemas/SourceChecksumRecord"
          },
          "classification": {
            "$ref": "#/components/schemas/SourceClassificationRecord"
          },
          "connector": {
            "$ref": "#/components/schemas/SourceConnectorRecord"
          },
          "content_bytes_available": {
            "title": "Content Bytes Available",
            "type": "boolean"
          },
          "content_type": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Type"
          },
          "evidence_uri": {
            "anyOf": [
              {
                "maxLength": 4096,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evidence Uri"
          },
          "intake_kind": {
            "enum": ["upload", "url", "feed", "lms", "repository", "doi", "manual_record"],
            "title": "Intake Kind",
            "type": "string"
          },
          "lifecycle": {
            "$ref": "#/components/schemas/SourceLifecycleRecord"
          },
          "original_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Original Locator",
            "type": "string"
          },
          "provenance": {
            "$ref": "#/components/schemas/SourceProvenanceRecord"
          },
          "quarantine_uri": {
            "anyOf": [
              {
                "maxLength": 4096,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quarantine Uri"
          },
          "record_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Record Id",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "retrieval_receipt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SourceRetrievalReceipt"
              },
              {
                "type": "null"
              }
            ]
          },
          "retrieval_time": {
            "format": "date-time",
            "title": "Retrieval Time",
            "type": "string"
          },
          "rights": {
            "$ref": "#/components/schemas/SourceRightsRecord"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "version_id": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version Id",
            "type": "string"
          },
          "version_number": {
            "minimum": 1.0,
            "title": "Version Number",
            "type": "integer"
          }
        },
        "required": [
          "record_id",
          "source_id",
          "version_id",
          "version_number",
          "tenant_id",
          "intake_kind",
          "original_locator",
          "retrieval_time",
          "content_bytes_available",
          "checksum",
          "connector",
          "authority",
          "rights",
          "classification",
          "lifecycle",
          "provenance",
          "audit",
          "record_sha256"
        ],
        "title": "SourceVersionRecord",
        "type": "object"
      },
      "SourceWithdrawalRequest": {
        "properties": {
          "detail": {
            "default": "the source has been withdrawn",
            "maxLength": 800,
            "title": "Detail",
            "type": "string"
          },
          "subject_ids": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Subject Ids",
            "type": "array"
          }
        },
        "required": ["subject_ids"],
        "title": "SourceWithdrawalRequest",
        "type": "object"
      },
      "SourceWithdrawalResult": {
        "additionalProperties": false,
        "properties": {
          "drafts_to_edit": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Drafts To Edit",
            "type": "array"
          },
          "recalls": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CatalogRecall"
            },
            "title": "Recalls",
            "type": "array"
          }
        },
        "title": "SourceWithdrawalResult",
        "type": "object"
      },
      "Span": {
        "additionalProperties": false,
        "description": "A range of characters, and the text it was measured against.",
        "properties": {
          "end": {
            "minimum": 0.0,
            "title": "End",
            "type": "integer"
          },
          "over_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Over Sha256",
            "type": "string"
          },
          "start": {
            "minimum": 0.0,
            "title": "Start",
            "type": "integer"
          }
        },
        "required": ["start", "end", "over_sha256"],
        "title": "Span",
        "type": "object"
      },
      "SpendLedger": {
        "additionalProperties": false,
        "description": "What a run has cost, and how much of that cannot be got back.\n\n``unrecoverable`` is the part already committed to a provider. It is carried\nseparately because a kill has to report it: a run that stopped before the\nnext call still owes for the call in flight, and a total that hid that would\nunderstate the cost of killing.",
        "properties": {
          "ceiling_minor_units": {
            "minimum": 1.0,
            "title": "Ceiling Minor Units",
            "type": "integer"
          },
          "committed_minor_units": {
            "minimum": 0.0,
            "title": "Committed Minor Units",
            "type": "integer"
          },
          "unrecoverable_minor_units": {
            "minimum": 0.0,
            "title": "Unrecoverable Minor Units",
            "type": "integer"
          }
        },
        "required": ["committed_minor_units", "unrecoverable_minor_units", "ceiling_minor_units"],
        "title": "SpendLedger",
        "type": "object"
      },
      "StaffRef": {
        "additionalProperties": false,
        "properties": {
          "digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Digest",
            "type": "string"
          },
          "role": {
            "enum": [
              "detector_owner",
              "reviewer",
              "decider",
              "appeal_decider",
              "integrity_lead",
              "forensic_examiner"
            ],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["digest", "role"],
        "title": "StaffRef",
        "type": "object"
      },
      "StageBudget": {
        "additionalProperties": false,
        "properties": {
          "budget_micros": {
            "maximum": 60000000.0,
            "minimum": 1.0,
            "title": "Budget Micros",
            "type": "integer"
          },
          "stage": {
            "enum": [
              "context_receipt",
              "eligibility",
              "model_panel",
              "selection",
              "render_handoff"
            ],
            "title": "Stage",
            "type": "string"
          },
          "timeout_micros": {
            "maximum": 60000000.0,
            "minimum": 1.0,
            "title": "Timeout Micros",
            "type": "integer"
          }
        },
        "required": ["stage", "budget_micros", "timeout_micros"],
        "title": "StageBudget",
        "type": "object"
      },
      "StageProfile": {
        "additionalProperties": false,
        "properties": {
          "p95_micros": {
            "anyOf": [
              {
                "maximum": 60000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "P95 Micros"
          },
          "samples": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Samples",
            "type": "integer"
          },
          "stage": {
            "enum": [
              "context_receipt",
              "eligibility",
              "model_panel",
              "selection",
              "render_handoff"
            ],
            "title": "Stage",
            "type": "string"
          },
          "timed_out_count": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Timed Out Count",
            "type": "integer"
          }
        },
        "required": ["stage", "samples", "timed_out_count"],
        "title": "StageProfile",
        "type": "object"
      },
      "StageSpan": {
        "additionalProperties": false,
        "properties": {
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/BoundedAttribute"
            },
            "maxItems": 8,
            "title": "Attributes",
            "type": "array"
          },
          "deadline_remaining_at_entry_micros": {
            "maximum": 60000000.0,
            "minimum": -60000000.0,
            "title": "Deadline Remaining At Entry Micros",
            "type": "integer"
          },
          "deadline_remaining_at_exit_micros": {
            "maximum": 60000000.0,
            "minimum": -60000000.0,
            "title": "Deadline Remaining At Exit Micros",
            "type": "integer"
          },
          "duration_micros": {
            "maximum": 60000000.0,
            "minimum": 0.0,
            "title": "Duration Micros",
            "type": "integer"
          },
          "ordinal": {
            "maximum": 5.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "outcome": {
            "enum": ["completed", "timed_out", "cancelled", "degraded"],
            "title": "Outcome",
            "type": "string"
          },
          "stage": {
            "enum": [
              "context_receipt",
              "eligibility",
              "model_panel",
              "selection",
              "render_handoff"
            ],
            "title": "Stage",
            "type": "string"
          }
        },
        "required": [
          "stage",
          "ordinal",
          "duration_micros",
          "deadline_remaining_at_entry_micros",
          "deadline_remaining_at_exit_micros",
          "outcome",
          "attributes"
        ],
        "title": "StageSpan",
        "type": "object"
      },
      "StaleMaterialProbe": {
        "additionalProperties": false,
        "description": "Every way material can go bad, and what each one does to a session.",
        "properties": {
          "blocks_activation": {
            "title": "Blocks Activation",
            "type": "boolean"
          },
          "historical_session_preserved": {
            "title": "Historical Session Preserved",
            "type": "boolean"
          },
          "outcome": {
            "enum": [
              "resolved",
              "stale",
              "not_approved",
              "not_published",
              "retracted",
              "rights_revoked",
              "substituted",
              "unresolvable"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "refuses_session": {
            "title": "Refuses Session",
            "type": "boolean"
          },
          "separates": {
            "title": "Separates",
            "type": "boolean"
          }
        },
        "required": [
          "outcome",
          "blocks_activation",
          "refuses_session",
          "historical_session_preserved",
          "separates"
        ],
        "title": "StaleMaterialProbe",
        "type": "object"
      },
      "StaleMaterialSweep": {
        "additionalProperties": false,
        "properties": {
          "every_outcome_refuses_a_session": {
            "title": "Every Outcome Refuses A Session",
            "type": "boolean"
          },
          "method": {
            "const": "one-probe-per-blocking-resolution-outcome-v1",
            "title": "Method",
            "type": "string"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/StaleMaterialProbe"
            },
            "maxItems": 7,
            "minItems": 7,
            "title": "Probes",
            "type": "array"
          }
        },
        "required": ["method", "probes", "every_outcome_refuses_a_session"],
        "title": "StaleMaterialSweep",
        "type": "object"
      },
      "StateCell": {
        "additionalProperties": false,
        "description": "One cell of the matrix: a surface in a state, with its contract.",
        "properties": {
          "contract": {
            "$ref": "#/components/schemas/StateContract"
          },
          "state": {
            "enum": [
              "ready",
              "loading",
              "empty",
              "unauthorized",
              "stale",
              "offline",
              "conflict",
              "not_configured",
              "degraded",
              "failed"
            ],
            "title": "State",
            "type": "string"
          },
          "surface": {
            "enum": [
              "route",
              "list",
              "detail",
              "editor",
              "preview",
              "media",
              "job",
              "review",
              "publication",
              "integration"
            ],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["surface", "state", "contract"],
        "title": "StateCell",
        "type": "object"
      },
      "StateContract": {
        "additionalProperties": false,
        "description": "What one state owes whoever is looking at it.",
        "properties": {
          "actions_available": {
            "default": [],
            "items": {
              "enum": ["read", "mutate", "retry", "refresh", "merge", "request_access", "contact"],
              "type": "string"
            },
            "title": "Actions Available",
            "type": "array"
          },
          "actions_forbidden": {
            "default": [],
            "items": {
              "enum": ["read", "mutate", "retry", "refresh", "merge", "request_access", "contact"],
              "type": "string"
            },
            "title": "Actions Forbidden",
            "type": "array"
          },
          "announcement_key": {
            "maxLength": 120,
            "minLength": 8,
            "title": "Announcement Key",
            "type": "string"
          },
          "may_name_subject": {
            "default": true,
            "title": "May Name Subject",
            "type": "boolean"
          },
          "message_key": {
            "maxLength": 120,
            "minLength": 8,
            "title": "Message Key",
            "type": "string"
          },
          "recovery": {
            "enum": [
              "none",
              "retry",
              "refresh",
              "reload_and_merge",
              "request_access",
              "configure",
              "wait"
            ],
            "title": "Recovery",
            "type": "string"
          },
          "requires_timestamp": {
            "title": "Requires Timestamp",
            "type": "boolean"
          },
          "shows_data": {
            "title": "Shows Data",
            "type": "boolean"
          },
          "state": {
            "enum": [
              "ready",
              "loading",
              "empty",
              "unauthorized",
              "stale",
              "offline",
              "conflict",
              "not_configured",
              "degraded",
              "failed"
            ],
            "title": "State",
            "type": "string"
          },
          "telemetry_event": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Telemetry Event",
            "type": "string"
          }
        },
        "required": [
          "state",
          "message_key",
          "announcement_key",
          "recovery",
          "shows_data",
          "requires_timestamp",
          "telemetry_event"
        ],
        "title": "StateContract",
        "type": "object"
      },
      "StateContractView": {
        "additionalProperties": false,
        "description": "Every state's contract, plus the pairs that must stay distinguishable.",
        "properties": {
          "available_locales": {
            "default": ["en", "es"],
            "items": {
              "type": "string"
            },
            "title": "Available Locales",
            "type": "array"
          },
          "indistinguishable": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Indistinguishable",
            "type": "array"
          },
          "locale": {
            "default": "en",
            "title": "Locale",
            "type": "string"
          },
          "must_differ": {
            "default": [
              [
                "unauthorized",
                "empty",
                "an empty list and a refused one look the same to a reader and mean opposite things"
              ],
              ["stale", "ready", "a view that was true an hour ago is one somebody acts on"],
              [
                "offline",
                "ready",
                "the reader has to know they are looking at what the device kept"
              ],
              [
                "conflict",
                "failed",
                "one is fixed by reloading and merging and the other by trying again"
              ],
              [
                "degraded",
                "not_configured",
                "one is broken and one was never set up, and different people fix them"
              ]
            ],
            "items": {
              "maxItems": 3,
              "minItems": 3,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "string"
                },
                {
                  "type": "string"
                }
              ],
              "type": "array"
            },
            "title": "Must Differ",
            "type": "array"
          },
          "preserved_through": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "default": {},
            "title": "Preserved Through",
            "type": "object"
          },
          "states": {
            "items": {
              "$ref": "#/components/schemas/StateContract"
            },
            "title": "States",
            "type": "array"
          },
          "surfaces": {
            "default": [
              "route",
              "list",
              "detail",
              "editor",
              "preview",
              "media",
              "job",
              "review",
              "publication",
              "integration"
            ],
            "items": {
              "type": "string"
            },
            "title": "Surfaces",
            "type": "array"
          },
          "text": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Text",
            "type": "object"
          },
          "untranslated": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Untranslated",
            "type": "array"
          }
        },
        "required": ["states"],
        "title": "StateContractView",
        "type": "object"
      },
      "StatusBody": {
        "properties": {
          "targets": {
            "items": {
              "$ref": "#/components/schemas/TargetReport"
            },
            "minItems": 1,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": ["targets"],
        "title": "StatusBody",
        "type": "object"
      },
      "StatusRequest": {
        "additionalProperties": false,
        "properties": {
          "carried": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CarriedSignoff"
            },
            "maxItems": 200,
            "title": "Carried",
            "type": "array"
          },
          "descriptor": {
            "$ref": "#/components/schemas/ContentDescriptor"
          },
          "gate_results": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewGateResult"
            },
            "maxItems": 40,
            "title": "Gate Results",
            "type": "array"
          },
          "overlay": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InstitutionOverlay"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviewers": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewerProfile"
            },
            "maxItems": 200,
            "title": "Reviewers",
            "type": "array"
          },
          "signoffs": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DimensionSignoff"
            },
            "maxItems": 200,
            "title": "Signoffs",
            "type": "array"
          }
        },
        "required": ["descriptor"],
        "title": "StatusRequest",
        "type": "object"
      },
      "Stay": {
        "additionalProperties": false,
        "description": "A pause with a stated basis. Deadlines move by exactly its duration.",
        "properties": {
          "basis": {
            "enum": [
              "accessibility_support",
              "new_evidence",
              "representative_pending",
              "external_process"
            ],
            "title": "Basis",
            "type": "string"
          },
          "requested_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Requested By Digest",
            "type": "string"
          },
          "resumed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resumed At"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "stay_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Stay Id",
            "type": "string"
          }
        },
        "required": ["stay_id", "basis", "started_at", "requested_by_digest"],
        "title": "Stay",
        "type": "object"
      },
      "StepBudget": {
        "additionalProperties": false,
        "properties": {
          "deadline_ms": {
            "maximum": 3600000.0,
            "minimum": 1.0,
            "title": "Deadline Ms",
            "type": "integer"
          },
          "max_cost_minor_units": {
            "maximum": 100000000.0,
            "minimum": 1.0,
            "title": "Max Cost Minor Units",
            "type": "integer"
          },
          "max_model_invocations": {
            "maximum": 200.0,
            "minimum": 1.0,
            "title": "Max Model Invocations",
            "type": "integer"
          },
          "max_retries": {
            "maximum": 5.0,
            "minimum": 0.0,
            "title": "Max Retries",
            "type": "integer"
          },
          "max_tool_calls": {
            "maximum": 2000.0,
            "minimum": 0.0,
            "title": "Max Tool Calls",
            "type": "integer"
          }
        },
        "required": [
          "max_model_invocations",
          "max_tool_calls",
          "max_cost_minor_units",
          "deadline_ms",
          "max_retries"
        ],
        "title": "StepBudget",
        "type": "object"
      },
      "StimulusAccessibility": {
        "additionalProperties": false,
        "properties": {
          "alternative_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Alternative Text",
            "type": "string"
          },
          "captions_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Captions Ref",
            "type": "string"
          },
          "keyboard_path": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Keyboard Path",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "long_description_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Long Description Ref",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewed_by": {
            "format": "uuid",
            "title": "Reviewed By",
            "type": "string"
          },
          "sign_alternative_ref": {
            "anyOf": [
              {
                "maxLength": 2048,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Alternative Ref"
          },
          "sign_not_applicable_reason": {
            "anyOf": [
              {
                "maxLength": 10000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Not Applicable Reason"
          },
          "support_requirements": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Support Requirements",
            "type": "array"
          },
          "transcript_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Transcript Ref",
            "type": "string"
          }
        },
        "required": [
          "locale",
          "alternative_text",
          "long_description_ref",
          "transcript_ref",
          "captions_ref",
          "keyboard_path",
          "support_requirements",
          "reviewed_by",
          "reviewed_at"
        ],
        "title": "StimulusAccessibility",
        "type": "object"
      },
      "StimulusBlastRadiusResponse": {
        "additionalProperties": false,
        "properties": {
          "cause_id": {
            "title": "Cause Id",
            "type": "string"
          },
          "records": {
            "items": {
              "$ref": "#/components/schemas/DependencyStalenessRecord"
            },
            "title": "Records",
            "type": "array"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["cause_id", "records"],
        "title": "StimulusBlastRadiusResponse",
        "type": "object"
      },
      "StimulusCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimuli": {
            "items": {
              "$ref": "#/components/schemas/StimulusRevisionResponse"
            },
            "title": "Stimuli",
            "type": "array"
          }
        },
        "required": ["stimuli"],
        "title": "StimulusCatalogResponse",
        "type": "object"
      },
      "StimulusContent": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "items": {
              "$ref": "#/components/schemas/StimulusAccessibility"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Accessibility",
            "type": "array"
          },
          "asset": {
            "$ref": "#/components/schemas/GovernedStimulusAsset"
          },
          "lifecycle": {
            "enum": ["draft", "reviewed", "retired"],
            "title": "Lifecycle",
            "type": "string"
          },
          "locale_surfaces": {
            "items": {
              "$ref": "#/components/schemas/StimulusLocaleSurface"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Surfaces",
            "type": "array"
          },
          "rights_reference": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Rights Reference",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          },
          "supported_devices": {
            "items": {
              "enum": ["desktop", "tablet", "mobile"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Supported Devices",
            "type": "array"
          },
          "supported_input_modes": {
            "items": {
              "enum": ["keyboard", "pointer", "touch", "switch"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Supported Input Modes",
            "type": "array"
          }
        },
        "required": [
          "lifecycle",
          "locale_surfaces",
          "accessibility",
          "source_references",
          "rights_reference",
          "asset",
          "supported_devices",
          "supported_input_modes"
        ],
        "title": "StimulusContent",
        "type": "object"
      },
      "StimulusHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/StimulusRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimulus_id": {
            "title": "Stimulus Id",
            "type": "string"
          }
        },
        "required": ["stimulus_id", "revisions"],
        "title": "StimulusHistoryResponse",
        "type": "object"
      },
      "StimulusLocaleSurface": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "$ref": "#/components/schemas/StimulusRichContent"
          },
          "context": {
            "$ref": "#/components/schemas/StimulusRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "title": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["locale", "title", "body", "context"],
        "title": "StimulusLocaleSurface",
        "type": "object"
      },
      "StimulusPresentationRules": {
        "additionalProperties": false,
        "properties": {
          "accessibility_supports": {
            "items": {
              "enum": [
                "screen_reader",
                "keyboard",
                "captions",
                "transcript",
                "audio_description",
                "sign_language"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Accessibility Supports",
            "type": "array"
          },
          "input_modes": {
            "items": {
              "enum": ["keyboard", "pointer", "touch", "switch"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Input Modes",
            "type": "array"
          },
          "layout": {
            "enum": ["stacked", "split", "paged", "responsive"],
            "title": "Layout",
            "type": "string"
          },
          "max_viewport_width": {
            "maximum": 4096.0,
            "minimum": 240.0,
            "title": "Max Viewport Width",
            "type": "integer"
          },
          "max_visible_items": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Max Visible Items",
            "type": "integer"
          },
          "max_visible_stimuli": {
            "maximum": 20.0,
            "minimum": 1.0,
            "title": "Max Visible Stimuli",
            "type": "integer"
          },
          "min_viewport_width": {
            "maximum": 4096.0,
            "minimum": 240.0,
            "title": "Min Viewport Width",
            "type": "integer"
          },
          "nested_sets_allowed": {
            "title": "Nested Sets Allowed",
            "type": "boolean"
          },
          "target_devices": {
            "items": {
              "enum": ["desktop", "tablet", "mobile"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Target Devices",
            "type": "array"
          }
        },
        "required": [
          "layout",
          "min_viewport_width",
          "max_viewport_width",
          "target_devices",
          "input_modes",
          "accessibility_supports",
          "max_visible_stimuli",
          "max_visible_items",
          "nested_sets_allowed"
        ],
        "title": "StimulusPresentationRules",
        "type": "object"
      },
      "StimulusRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/StimulusContent"
          },
          "expected_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision"
          },
          "expected_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^stimulus:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimulus_id": {
            "anyOf": [
              {
                "pattern": "^stimulus-[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stimulus Id"
          }
        },
        "required": ["idempotency_key", "reason", "content"],
        "title": "StimulusRevisionRequest",
        "type": "object"
      },
      "StimulusRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/StimulusContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimulus_id": {
            "pattern": "^stimulus-[a-f0-9]{40}$",
            "title": "Stimulus Id",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "stimulus_id",
          "tenant_id",
          "revision",
          "actor_id",
          "actor_role",
          "reason",
          "content",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "StimulusRevisionResponse",
        "type": "object"
      },
      "StimulusRichContent": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "format": {
            "default": "plain_text",
            "enum": ["plain_text", "markdown"],
            "title": "Format",
            "type": "string"
          },
          "value": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "accessible_text"],
        "title": "StimulusRichContent",
        "type": "object"
      },
      "StimulusSetCatalogResponse": {
        "additionalProperties": false,
        "properties": {
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimulus_sets": {
            "items": {
              "$ref": "#/components/schemas/StimulusSetRevisionResponse"
            },
            "title": "Stimulus Sets",
            "type": "array"
          }
        },
        "required": ["stimulus_sets"],
        "title": "StimulusSetCatalogResponse",
        "type": "object"
      },
      "StimulusSetConflict": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "enum": [
              "directions_conflict",
              "locale_conflict",
              "accessibility_conflict",
              "answer_exposure",
              "layout_conflict",
              "target_conflict"
            ],
            "title": "Code",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "path": {
            "title": "Path",
            "type": "string"
          }
        },
        "required": ["code", "path", "message"],
        "title": "StimulusSetConflict",
        "type": "object"
      },
      "StimulusSetContent": {
        "additionalProperties": false,
        "properties": {
          "downstream_dependencies": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/DownstreamDependency"
            },
            "maxItems": 500,
            "title": "Downstream Dependencies",
            "type": "array"
          },
          "lifecycle": {
            "enum": ["draft", "reviewed", "retired"],
            "title": "Lifecycle",
            "type": "string"
          },
          "locale_surfaces": {
            "items": {
              "$ref": "#/components/schemas/StimulusSetLocaleSurface"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Surfaces",
            "type": "array"
          },
          "members": {
            "items": {
              "discriminator": {
                "mapping": {
                  "item": "#/components/schemas/PinnedItemRevision",
                  "stimulus_set": "#/components/schemas/NestedStimulusSetRevision"
                },
                "propertyName": "member_type"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PinnedItemRevision"
                },
                {
                  "$ref": "#/components/schemas/NestedStimulusSetRevision"
                }
              ]
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Members",
            "type": "array"
          },
          "presentation": {
            "$ref": "#/components/schemas/StimulusPresentationRules"
          },
          "set_key": {
            "pattern": "^[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Set Key",
            "type": "string"
          },
          "stimuli": {
            "items": {
              "$ref": "#/components/schemas/PinnedStimulusRevision"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Stimuli",
            "type": "array"
          }
        },
        "required": [
          "set_key",
          "lifecycle",
          "locale_surfaces",
          "stimuli",
          "members",
          "presentation"
        ],
        "title": "StimulusSetContent",
        "type": "object"
      },
      "StimulusSetHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/StimulusSetRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimulus_set_id": {
            "title": "Stimulus Set Id",
            "type": "string"
          }
        },
        "required": ["stimulus_set_id", "revisions"],
        "title": "StimulusSetHistoryResponse",
        "type": "object"
      },
      "StimulusSetLocaleSurface": {
        "additionalProperties": false,
        "properties": {
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "name": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "shared_context": {
            "$ref": "#/components/schemas/StimulusRichContent"
          },
          "shared_directions": {
            "$ref": "#/components/schemas/StimulusRichContent"
          }
        },
        "required": ["locale", "name", "shared_directions", "shared_context"],
        "title": "StimulusSetLocaleSurface",
        "type": "object"
      },
      "StimulusSetPreviewRequest": {
        "additionalProperties": false,
        "properties": {
          "device": {
            "enum": ["desktop", "tablet", "mobile"],
            "title": "Device",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "input_mode": {
            "enum": ["keyboard", "pointer", "touch", "switch"],
            "title": "Input Mode",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "viewport_width": {
            "maximum": 4096.0,
            "minimum": 240.0,
            "title": "Viewport Width",
            "type": "integer"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "locale",
          "device",
          "input_mode",
          "viewport_width"
        ],
        "title": "StimulusSetPreviewRequest",
        "type": "object"
      },
      "StimulusSetPreviewResponse": {
        "additionalProperties": false,
        "properties": {
          "compatible": {
            "title": "Compatible",
            "type": "boolean"
          },
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/StimulusSetConflict"
            },
            "title": "Conflicts",
            "type": "array"
          },
          "device": {
            "enum": ["desktop", "tablet", "mobile"],
            "title": "Device",
            "type": "string"
          },
          "input_mode": {
            "enum": ["keyboard", "pointer", "touch", "switch"],
            "title": "Input Mode",
            "type": "string"
          },
          "item_members": {
            "items": {
              "$ref": "#/components/schemas/PinnedItemRevision"
            },
            "title": "Item Members",
            "type": "array"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "protected_material_visible": {
            "const": false,
            "default": false,
            "title": "Protected Material Visible",
            "type": "boolean"
          },
          "revision": {
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "shared_context": {
            "$ref": "#/components/schemas/StimulusRichContent"
          },
          "shared_directions": {
            "$ref": "#/components/schemas/StimulusRichContent"
          },
          "stimulus_revisions": {
            "items": {
              "$ref": "#/components/schemas/StimulusRevisionResponse"
            },
            "title": "Stimulus Revisions",
            "type": "array"
          },
          "stimulus_set_id": {
            "title": "Stimulus Set Id",
            "type": "string"
          },
          "viewport_width": {
            "title": "Viewport Width",
            "type": "integer"
          }
        },
        "required": [
          "stimulus_set_id",
          "revision",
          "revision_sha256",
          "locale",
          "device",
          "input_mode",
          "viewport_width",
          "shared_directions",
          "shared_context",
          "stimulus_revisions",
          "item_members",
          "conflicts",
          "compatible"
        ],
        "title": "StimulusSetPreviewResponse",
        "type": "object"
      },
      "StimulusSetRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/StimulusSetContent"
          },
          "expected_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision"
          },
          "expected_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Revision Sha256"
          },
          "idempotency_key": {
            "pattern": "^stimulus-set:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimulus_set_id": {
            "anyOf": [
              {
                "pattern": "^stimulus-set-[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stimulus Set Id"
          }
        },
        "required": ["idempotency_key", "reason", "content"],
        "title": "StimulusSetRevisionRequest",
        "type": "object"
      },
      "StimulusSetRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "content": {
            "$ref": "#/components/schemas/StimulusSetContent"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.8.0",
            "default": "4.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "stimulus_set_id": {
            "pattern": "^stimulus-set-[a-f0-9]{40}$",
            "title": "Stimulus Set Id",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "stimulus_set_id",
          "tenant_id",
          "revision",
          "actor_id",
          "actor_role",
          "reason",
          "content",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "StimulusSetRevisionResponse",
        "type": "object"
      },
      "StopCondition": {
        "additionalProperties": false,
        "description": "A condition that ends a step, and what it does. Nothing falls back.\n\n``on_trigger`` has two values and neither continues quietly. A \"degrade\" or\n\"use a smaller model\" value is deliberately absent: a plan that silently\nsubstitutes something for what it was told to do produced a result nobody\nauthorised.",
        "properties": {
          "condition": {
            "enum": [
              "budget_exhausted",
              "deadline_exceeded",
              "grant_expired",
              "evidence_unavailable",
              "refusal_from_tool",
              "policy_violation_detected"
            ],
            "title": "Condition",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "on_trigger": {
            "enum": ["hard_stop", "refuse_and_report"],
            "title": "On Trigger",
            "type": "string"
          }
        },
        "required": ["condition", "on_trigger", "detail"],
        "title": "StopCondition",
        "type": "object"
      },
      "StructuredCulturalReviewFinding": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "enum": [
              "translation_accuracy",
              "register",
              "terminology",
              "cultural_framing",
              "regional_fit",
              "stereotype",
              "harm",
              "omission",
              "source_context"
            ],
            "title": "Category",
            "type": "string"
          },
          "disposition": {
            "enum": ["accepted", "change_required", "not_applicable"],
            "title": "Disposition",
            "type": "string"
          },
          "evidence_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "title": "Evidence Ids",
            "type": "array"
          },
          "finding_id": {
            "maxLength": 120,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{1,119}$",
            "title": "Finding Id",
            "type": "string"
          },
          "severity": {
            "enum": ["note", "minor", "major", "blocking"],
            "title": "Severity",
            "type": "string"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Summary",
            "type": "string"
          }
        },
        "required": ["finding_id", "category", "severity", "disposition", "summary"],
        "title": "StructuredCulturalReviewFinding",
        "type": "object"
      },
      "Subject": {
        "additionalProperties": false,
        "description": "What the event is about, whose it is, and the versions it saw and left.\n\nThe learner digest lives here, in the header, because it is a key: retention\ndrops payloads and never headers, and a learner's right to read their own\nchain must survive the purge.",
        "properties": {
          "kind": {
            "enum": ["signal", "case"],
            "title": "Kind",
            "type": "string"
          },
          "learner_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Learner Digest",
            "type": "string"
          },
          "signal_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Signal Id",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "version_after": {
            "minimum": 0.0,
            "title": "Version After",
            "type": "integer"
          },
          "version_before": {
            "minimum": 0.0,
            "title": "Version Before",
            "type": "integer"
          }
        },
        "required": [
          "kind",
          "subject_id",
          "signal_id",
          "learner_digest",
          "version_before",
          "version_after"
        ],
        "title": "Subject",
        "type": "object"
      },
      "SubjectGuard": {
        "additionalProperties": false,
        "description": "What is true of the subject right now, and therefore what may be quoted.\n\nThe three flags are facts about the subject the caller does not choose:\nwhether it is a learner's own work, whether an assessment using it is open,\nand whether its source is licensed private.",
        "properties": {
          "assessment_window_open": {
            "default": false,
            "title": "Assessment Window Open",
            "type": "boolean"
          },
          "is_learner_work": {
            "default": false,
            "title": "Is Learner Work",
            "type": "boolean"
          },
          "source_is_private": {
            "default": false,
            "title": "Source Is Private",
            "type": "boolean"
          }
        },
        "title": "SubjectGuard",
        "type": "object"
      },
      "SubjectProjection": {
        "additionalProperties": false,
        "description": "What a reviewer sees of a subject. No identifier, no free text.\n\n``subject_digest`` is a salted hash. A projection that named the person\nwould make every review a disclosure, and there is no field for one here.",
        "properties": {
          "evidence": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/AcceptedEvidence"
            },
            "maxItems": 200,
            "title": "Evidence",
            "type": "array"
          },
          "is_synthetic": {
            "title": "Is Synthetic",
            "type": "boolean"
          },
          "projected_at": {
            "format": "date-time",
            "title": "Projected At",
            "type": "string"
          },
          "subject_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Digest",
            "type": "string"
          }
        },
        "required": ["subject_digest", "is_synthetic", "projected_at"],
        "title": "SubjectProjection",
        "type": "object"
      },
      "SubjectRefs": {
        "additionalProperties": false,
        "properties": {
          "attempt_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attempt Id"
          },
          "case_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Case Id"
          },
          "item_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Item Id"
          },
          "purged_sequences": {
            "default": [],
            "items": {
              "type": "integer"
            },
            "maxItems": 10000,
            "title": "Purged Sequences",
            "type": "array"
          }
        },
        "title": "SubjectRefs",
        "type": "object"
      },
      "SubmissionCreate": {
        "description": "Schema for submitting answers to an assessment.",
        "properties": {
          "answers": {
            "description": "JSON object mapping question_id to the student's answer",
            "title": "Answers",
            "type": "string"
          },
          "assessment_id": {
            "format": "uuid",
            "title": "Assessment Id",
            "type": "string"
          }
        },
        "required": ["assessment_id", "answers"],
        "title": "SubmissionCreate",
        "type": "object"
      },
      "SubmissionResponse": {
        "description": "Submission data returned in API responses.",
        "properties": {
          "academic_integrity_verdict": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AcademicIntegrityVerdictResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "answers": {
            "title": "Answers",
            "type": "string"
          },
          "assessment_id": {
            "format": "uuid",
            "title": "Assessment Id",
            "type": "string"
          },
          "attempt_number": {
            "title": "Attempt Number",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "graded_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Graded At"
          },
          "grader_notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grader Notes"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "is_auto_graded": {
            "title": "Is Auto Graded",
            "type": "boolean"
          },
          "passed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Passed"
          },
          "points_earned": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Points Earned"
          },
          "points_possible": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Points Possible"
          },
          "score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "submitted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Submitted At"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "user_id": {
            "format": "uuid",
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "answers",
          "attempt_number",
          "is_auto_graded",
          "assessment_id",
          "user_id",
          "created_at",
          "updated_at"
        ],
        "title": "SubmissionResponse",
        "type": "object"
      },
      "SupportOptions": {
        "additionalProperties": false,
        "description": "What the tenant offers. The two literals are the item's promises, not options.",
        "properties": {
          "accessibility_support": {
            "const": true,
            "default": true,
            "title": "Accessibility Support",
            "type": "boolean"
          },
          "contact_route": {
            "maxLength": 200,
            "minLength": 3,
            "title": "Contact Route",
            "type": "string"
          },
          "representative_permitted": {
            "const": true,
            "default": true,
            "title": "Representative Permitted",
            "type": "boolean"
          }
        },
        "required": ["contact_route"],
        "title": "SupportOptions",
        "type": "object"
      },
      "SupportedEvaluatorInput": {
        "additionalProperties": false,
        "properties": {
          "constraints": {
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Constraints",
            "type": "array"
          },
          "input_kind": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Input Kind",
            "type": "string"
          },
          "max_bytes": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Bytes"
          },
          "media_type": {
            "maxLength": 160,
            "minLength": 3,
            "title": "Media Type",
            "type": "string"
          },
          "schema_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Schema Id",
            "type": "string"
          },
          "schema_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Schema Sha256",
            "type": "string"
          },
          "schema_version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "input_kind",
          "media_type",
          "schema_id",
          "schema_version",
          "schema_sha256",
          "constraints"
        ],
        "title": "SupportedEvaluatorInput",
        "type": "object"
      },
      "SurfaceEnforcement": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "reason_code": {
            "pattern": "^exposure_[a-z0-9_]{3,100}$",
            "title": "Reason Code",
            "type": "string"
          },
          "surface": {
            "enum": ["pool", "assembly", "delivery", "export"],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["surface", "allowed", "reason_code"],
        "title": "SurfaceEnforcement",
        "type": "object"
      },
      "SurfaceStates": {
        "additionalProperties": false,
        "description": "One row of the matrix: a surface in every state.\n\nA row with a missing state is a state nobody decided about for that\nsurface, so a filtered view has its own model with its own invariant\nrather than being a matrix with holes in it.",
        "properties": {
          "cells": {
            "items": {
              "$ref": "#/components/schemas/StateCell"
            },
            "title": "Cells",
            "type": "array"
          },
          "surface": {
            "enum": [
              "route",
              "list",
              "detail",
              "editor",
              "preview",
              "media",
              "job",
              "review",
              "publication",
              "integration"
            ],
            "title": "Surface",
            "type": "string"
          }
        },
        "required": ["surface", "cells"],
        "title": "SurfaceStates",
        "type": "object"
      },
      "SurvivalProbe": {
        "additionalProperties": false,
        "properties": {
          "anchor_kind": {
            "enum": ["entity", "field", "text", "region", "timecode", "item_option", "rubric_cell"],
            "title": "Anchor Kind",
            "type": "string"
          },
          "change": {
            "maxLength": 80,
            "minLength": 3,
            "title": "Change",
            "type": "string"
          },
          "needs_attention": {
            "title": "Needs Attention",
            "type": "boolean"
          },
          "original_preserved": {
            "title": "Original Preserved",
            "type": "boolean"
          },
          "status": {
            "enum": ["exact", "shifted", "ambiguous", "orphaned"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["anchor_kind", "change", "status", "original_preserved", "needs_attention"],
        "title": "SurvivalProbe",
        "type": "object"
      },
      "SymbolicResponse": {
        "additionalProperties": false,
        "properties": {
          "canonical_expression": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Canonical Expression",
            "type": "string"
          },
          "canonical_expression_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Canonical Expression Sha256",
            "type": "string"
          },
          "equivalence": {
            "$ref": "#/components/schemas/MathEquivalencePolicy"
          },
          "response_type": {
            "const": "symbolic",
            "default": "symbolic",
            "title": "Response Type",
            "type": "string"
          },
          "variables": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Variables",
            "type": "array"
          }
        },
        "required": [
          "equivalence",
          "canonical_expression",
          "canonical_expression_sha256",
          "variables"
        ],
        "title": "SymbolicResponse",
        "type": "object"
      },
      "SyntheticCohort": {
        "additionalProperties": false,
        "properties": {
          "allocation": {
            "items": {
              "$ref": "#/components/schemas/PersonaAllocation"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Allocation",
            "type": "array"
          },
          "allocation_method": {
            "const": "largest-remainder-hare-quota-v1",
            "title": "Allocation Method",
            "type": "string"
          },
          "cohort_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Cohort Sha256",
            "type": "string"
          },
          "learners": {
            "items": {
              "$ref": "#/components/schemas/SyntheticLearner"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Learners",
            "type": "array"
          },
          "specification": {
            "$ref": "#/components/schemas/CohortSpecification"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": [
          "specification",
          "learners",
          "allocation",
          "allocation_method",
          "cohort_sha256"
        ],
        "title": "SyntheticCohort",
        "type": "object"
      },
      "SyntheticLearner": {
        "additionalProperties": false,
        "properties": {
          "generated_from_seed": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Generated From Seed",
            "type": "string"
          },
          "history_length": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "History Length",
            "type": "integer"
          },
          "integrity_mode": {
            "enum": ["open", "monitored", "proctored", "lockdown"],
            "title": "Integrity Mode",
            "type": "string"
          },
          "learner_ref": {
            "pattern": "^synthetic:[a-f0-9]{16}$",
            "title": "Learner Ref",
            "type": "string"
          },
          "learning_gain_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Learning Gain Basis Points",
            "type": "integer"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "mastery_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Mastery Basis Points",
            "type": "integer"
          },
          "ordinal": {
            "maximum": 2000.0,
            "minimum": 1.0,
            "title": "Ordinal",
            "type": "integer"
          },
          "pacing_items_per_day": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Pacing Items Per Day",
            "type": "integer"
          },
          "persona_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Persona Id",
            "type": "string"
          },
          "preference_tags": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Preference Tags",
            "type": "array"
          },
          "prerequisite_satisfaction_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Prerequisite Satisfaction Basis Points",
            "type": "integer"
          },
          "supports": {
            "default": [],
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "title": "Supports",
            "type": "array"
          },
          "synthetic": {
            "const": true,
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          }
        },
        "required": [
          "learner_ref",
          "ordinal",
          "persona_id",
          "prerequisite_satisfaction_basis_points",
          "mastery_basis_points",
          "history_length",
          "pacing_items_per_day",
          "learning_gain_basis_points",
          "locale",
          "integrity_mode",
          "generated_from_seed"
        ],
        "title": "SyntheticLearner",
        "type": "object"
      },
      "SyntheticLearnerState": {
        "additionalProperties": false,
        "description": "A made-up learner. There is no field here that could hold a real one.\n\nNo identifier, no name, no roster reference: a preview cannot be pointed at\na person by configuration, because the shape has nowhere to put one.",
        "properties": {
          "current_objective_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Current Objective Id",
            "type": "string"
          },
          "declared_supports": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 8,
            "title": "Declared Supports",
            "type": "array"
          },
          "is_synthetic": {
            "const": true,
            "default": true,
            "title": "Is Synthetic",
            "type": "boolean"
          },
          "label": {
            "maxLength": 60,
            "minLength": 3,
            "pattern": "^synthetic-[a-z0-9-]{2,}$",
            "title": "Label",
            "type": "string"
          },
          "mastery_estimate_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Mastery Estimate Basis Points",
            "type": "integer"
          },
          "prior_attempts": {
            "maximum": 20.0,
            "minimum": 0.0,
            "title": "Prior Attempts",
            "type": "integer"
          }
        },
        "required": [
          "label",
          "prior_attempts",
          "mastery_estimate_basis_points",
          "current_objective_id"
        ],
        "title": "SyntheticLearnerState",
        "type": "object"
      },
      "SystemResourcesResponse": {
        "properties": {
          "cpu_usage": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Cpu Usage",
            "type": "integer"
          },
          "disk_usage": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Disk Usage",
            "type": "integer"
          },
          "memory_usage": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Memory Usage",
            "type": "integer"
          },
          "network_in": {
            "minimum": 0.0,
            "title": "Network In",
            "type": "integer"
          },
          "network_out": {
            "minimum": 0.0,
            "title": "Network Out",
            "type": "integer"
          }
        },
        "required": ["cpu_usage", "memory_usage", "disk_usage", "network_in", "network_out"],
        "title": "SystemResourcesResponse",
        "type": "object"
      },
      "TableFacts": {
        "additionalProperties": false,
        "description": "What the metadata actually says about one table.",
        "properties": {
          "columns": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Columns",
            "type": "array"
          },
          "has_tenant_column": {
            "title": "Has Tenant Column",
            "type": "boolean"
          },
          "has_tenant_leading_index": {
            "title": "Has Tenant Leading Index",
            "type": "boolean"
          },
          "indexes": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Indexes",
            "type": "array"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          },
          "payload_columns": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Payload Columns",
            "type": "array"
          },
          "unique_constraints": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "title": "Unique Constraints",
            "type": "array"
          }
        },
        "required": ["name", "columns", "has_tenant_column", "has_tenant_leading_index"],
        "title": "TableFacts",
        "type": "object"
      },
      "TamperProbe": {
        "additionalProperties": false,
        "description": "One edit to a finished export, and whether the validator noticed.",
        "properties": {
          "detected": {
            "title": "Detected",
            "type": "boolean"
          },
          "edit": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Edit",
            "type": "string"
          },
          "finding": {
            "anyOf": [
              {
                "enum": [
                  "file_digest_mismatch",
                  "manifest_digest_mismatch",
                  "signature_invalid",
                  "signature_absent",
                  "row_count_mismatch",
                  "undeclared_file",
                  "missing_file",
                  "section_not_total",
                  "redaction_not_declared",
                  "unsafe_file_name",
                  "expired"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Finding"
          }
        },
        "required": ["edit", "detected"],
        "title": "TamperProbe",
        "type": "object"
      },
      "TargetCapability": {
        "additionalProperties": false,
        "description": "One feature at one target, declared and/or probed.",
        "properties": {
          "declared": {
            "anyOf": [
              {
                "enum": [
                  "supported",
                  "partially_supported",
                  "unsupported",
                  "extension_required",
                  "unknown"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Declared"
          },
          "detail": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "feature": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Feature",
            "type": "string"
          },
          "probed": {
            "anyOf": [
              {
                "enum": [
                  "supported",
                  "partially_supported",
                  "unsupported",
                  "extension_required",
                  "unknown"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Probed"
          },
          "probed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Probed At"
          },
          "profile": {
            "maxLength": 80,
            "minLength": 2,
            "title": "Profile",
            "type": "string"
          },
          "standard": {
            "enum": ["qti", "scorm", "common_cartridge", "thin_common_cartridge"],
            "title": "Standard",
            "type": "string"
          },
          "version": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["standard", "profile", "version", "feature"],
        "title": "TargetCapability",
        "type": "object"
      },
      "TargetPublication": {
        "additionalProperties": false,
        "description": "One target: every attempt at it, and every facet of the result.",
        "properties": {
          "attempts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicationAttempt"
            },
            "title": "Attempts",
            "type": "array"
          },
          "detail": {
            "maxLength": 800,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "facets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FacetVerification"
            },
            "title": "Facets",
            "type": "array"
          },
          "status": {
            "enum": ["pending", "in_flight", "published", "partial", "failed", "unknown"],
            "title": "Status",
            "type": "string"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id", "status", "detail"],
        "title": "TargetPublication",
        "type": "object"
      },
      "TargetReport": {
        "description": "What one target's writes and read-backs came out as.\n\nThere is no status field. It is computed from these, which is the only way\na failed sync cannot appear published.",
        "properties": {
          "attempts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PublicationAttempt"
            },
            "title": "Attempts",
            "type": "array"
          },
          "facets": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FacetVerification"
            },
            "title": "Facets",
            "type": "array"
          },
          "target_id": {
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id"],
        "title": "TargetReport",
        "type": "object"
      },
      "TargetSchedule": {
        "additionalProperties": false,
        "description": "When one target is written, and what has to happen first.",
        "properties": {
          "at_instant": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At Instant"
          },
          "at_local": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LocalPublicationTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "depends_on": {
            "default": [],
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "title": "Depends On",
            "type": "array"
          },
          "embargo_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Embargo Until"
          },
          "target_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Target Id",
            "type": "string"
          }
        },
        "required": ["target_id"],
        "title": "TargetSchedule",
        "type": "object"
      },
      "TaxonomyEntry": {
        "additionalProperties": false,
        "description": "One term in one taxonomy, at one version.",
        "properties": {
          "aliases": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Alias"
            },
            "maxItems": 40,
            "title": "Aliases",
            "type": "array"
          },
          "labels": {
            "items": {
              "$ref": "#/components/schemas/Label"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Labels",
            "type": "array"
          },
          "lifecycle": {
            "enum": ["draft", "published", "deprecated", "superseded", "retired"],
            "title": "Lifecycle",
            "type": "string"
          },
          "owner": {
            "maxLength": 120,
            "minLength": 2,
            "title": "Owner",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 600,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "ref": {
            "$ref": "#/components/schemas/TaxonomyRef"
          },
          "schema_version": {
            "const": "9.9.0",
            "default": "9.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "superseded_by": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TaxonomyRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "version": {
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": ["ref", "version", "lifecycle", "labels", "owner", "updated_at"],
        "title": "TaxonomyEntry",
        "type": "object"
      },
      "TaxonomyImpactPreview": {
        "additionalProperties": false,
        "description": "What a change to one entry would touch, before it is made.\n\nNamed `Taxonomy\u2026` because the sequencing-overlay cell already publishes an\n`ImpactPreview`; two models sharing a name across the package is what the\nduplicate-name gates catch, and checking before committing is cheaper than\nafter.",
        "properties": {
          "breaking": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Breaking",
            "type": "array"
          },
          "change": {
            "enum": ["rename", "deprecate", "supersede", "retire", "alias"],
            "title": "Change",
            "type": "string"
          },
          "preview_version": {
            "minimum": 1.0,
            "title": "Preview Version",
            "type": "integer"
          },
          "ref": {
            "$ref": "#/components/schemas/TaxonomyRef"
          },
          "schema_version": {
            "const": "9.9.0",
            "default": "9.9.0",
            "title": "Schema Version",
            "type": "string"
          },
          "unqueried": {
            "default": [],
            "items": {
              "enum": [
                "course",
                "item",
                "objective",
                "standard",
                "build",
                "credential",
                "search",
                "integration"
              ],
              "type": "string"
            },
            "maxItems": 20,
            "title": "Unqueried",
            "type": "array"
          },
          "uses": {
            "items": {
              "$ref": "#/components/schemas/UseCount"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Uses",
            "type": "array"
          }
        },
        "required": ["ref", "change", "uses", "preview_version"],
        "title": "TaxonomyImpactPreview",
        "type": "object"
      },
      "TaxonomyListing": {
        "additionalProperties": false,
        "description": "One taxonomy, as an editor sees it.",
        "properties": {
          "code_owned": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Code Owned",
            "type": "array"
          },
          "collisions": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Collisions",
            "type": "array"
          },
          "entries": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TaxonomyEntry"
            },
            "title": "Entries",
            "type": "array"
          },
          "taxonomy": {
            "enum": [
              "subject",
              "discipline",
              "objective",
              "standard",
              "credential",
              "modality",
              "level",
              "audience"
            ],
            "title": "Taxonomy",
            "type": "string"
          },
          "unknown_behaviour": {
            "default": "reject",
            "title": "Unknown Behaviour",
            "type": "string"
          }
        },
        "required": ["taxonomy"],
        "title": "TaxonomyListing",
        "type": "object"
      },
      "TaxonomyRef": {
        "additionalProperties": false,
        "description": "A code, and which taxonomy it belongs to. Never a bare string.",
        "properties": {
          "code": {
            "maxLength": 80,
            "minLength": 1,
            "pattern": "^[a-z][a-z0-9_.-]{0,79}$",
            "title": "Code",
            "type": "string"
          },
          "taxonomy": {
            "enum": [
              "subject",
              "discipline",
              "objective",
              "standard",
              "credential",
              "modality",
              "level",
              "audience"
            ],
            "title": "Taxonomy",
            "type": "string"
          }
        },
        "required": ["taxonomy", "code"],
        "title": "TaxonomyRef",
        "type": "object"
      },
      "TeachingMediaAcceptanceGate": {
        "additionalProperties": false,
        "properties": {
          "can_accept": {
            "title": "Can Accept",
            "type": "boolean"
          },
          "failing_domains": {
            "items": {
              "enum": [
                "source",
                "correctness",
                "code_data",
                "renderer",
                "provenance",
                "rights",
                "safety",
                "accessibility",
                "technical",
                "critic"
              ],
              "type": "string"
            },
            "title": "Failing Domains",
            "type": "array"
          },
          "gate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Gate Sha256",
            "type": "string"
          },
          "incomplete_stage_ids": {
            "items": {
              "type": "string"
            },
            "title": "Incomplete Stage Ids",
            "type": "array"
          },
          "missing_artifact_roles": {
            "items": {
              "type": "string"
            },
            "title": "Missing Artifact Roles",
            "type": "array"
          },
          "missing_domains": {
            "items": {
              "enum": [
                "source",
                "correctness",
                "code_data",
                "renderer",
                "provenance",
                "rights",
                "safety",
                "accessibility",
                "technical",
                "critic"
              ],
              "type": "string"
            },
            "title": "Missing Domains",
            "type": "array"
          },
          "passed_domains": {
            "items": {
              "enum": [
                "source",
                "correctness",
                "code_data",
                "renderer",
                "provenance",
                "rights",
                "safety",
                "accessibility",
                "technical",
                "critic"
              ],
              "type": "string"
            },
            "title": "Passed Domains",
            "type": "array"
          },
          "required_domains": {
            "items": {
              "enum": [
                "source",
                "correctness",
                "code_data",
                "renderer",
                "provenance",
                "rights",
                "safety",
                "accessibility",
                "technical",
                "critic"
              ],
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 10,
            "title": "Required Domains",
            "type": "array"
          },
          "stale_evidence_ids": {
            "items": {
              "type": "string"
            },
            "title": "Stale Evidence Ids",
            "type": "array"
          }
        },
        "required": [
          "required_domains",
          "passed_domains",
          "missing_domains",
          "failing_domains",
          "incomplete_stage_ids",
          "missing_artifact_roles",
          "stale_evidence_ids",
          "can_accept",
          "gate_sha256"
        ],
        "title": "TeachingMediaAcceptanceGate",
        "type": "object"
      },
      "TeachingMediaAnimationSpec": {
        "additionalProperties": false,
        "properties": {
          "asset_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "title": "Asset Refs",
            "type": "array"
          },
          "captions": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaCaptionCue"
            },
            "maxItems": 20000,
            "minItems": 1,
            "title": "Captions",
            "type": "array"
          },
          "code": {
            "$ref": "#/components/schemas/TeachingMediaCodeBinding"
          },
          "datasets": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaDatasetSlice"
            },
            "maxItems": 100,
            "title": "Datasets",
            "type": "array"
          },
          "description": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "environment_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Environment Id",
            "type": "string"
          },
          "environment_lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Lock Sha256",
            "type": "string"
          },
          "expected_duration_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 3600.0,
            "title": "Expected Duration Seconds",
            "type": "number"
          },
          "fps": {
            "maximum": 120.0,
            "minimum": 1.0,
            "title": "Fps",
            "type": "integer"
          },
          "frame_validation_interval": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Frame Validation Interval",
            "type": "integer"
          },
          "height": {
            "maximum": 4320.0,
            "minimum": 240.0,
            "title": "Height",
            "type": "integer"
          },
          "kind": {
            "const": "animation",
            "default": "animation",
            "title": "Kind",
            "type": "string"
          },
          "nonanimated_equivalent": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Nonanimated Equivalent",
            "type": "string"
          },
          "sandbox": {
            "$ref": "#/components/schemas/TeachingMediaSandboxSpec"
          },
          "scene_name": {
            "pattern": "^[A-Z][A-Za-z0-9_]{2,119}$",
            "title": "Scene Name",
            "type": "string"
          },
          "seed": {
            "maximum": 2147483647.0,
            "minimum": 0.0,
            "title": "Seed",
            "type": "integer"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "width": {
            "maximum": 7680.0,
            "minimum": 320.0,
            "title": "Width",
            "type": "integer"
          }
        },
        "required": [
          "scene_name",
          "source_ids",
          "code",
          "environment_id",
          "environment_lock_sha256",
          "seed",
          "sandbox",
          "width",
          "height",
          "fps",
          "expected_duration_seconds",
          "frame_validation_interval",
          "captions",
          "description",
          "nonanimated_equivalent"
        ],
        "title": "TeachingMediaAnimationSpec",
        "type": "object"
      },
      "TeachingMediaArtifact": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "pattern": "^media-artifact-[a-f0-9]{40}$",
            "title": "Artifact Id",
            "type": "string"
          },
          "artifact_revision": {
            "minimum": 1.0,
            "title": "Artifact Revision",
            "type": "integer"
          },
          "byte_length": {
            "maximum": 10000000000.0,
            "minimum": 0.0,
            "title": "Byte Length",
            "type": "integer"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "duration_ms": {
            "anyOf": [
              {
                "maximum": 86400000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Ms"
          },
          "height": {
            "anyOf": [
              {
                "maximum": 16384.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Height"
          },
          "lineage_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Lineage Sha256",
            "type": "string"
          },
          "locator": {
            "maxLength": 2048,
            "pattern": "^(?:/|[a-z][a-z0-9+.-]*://)",
            "title": "Locator",
            "type": "string"
          },
          "media_type": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Media Type",
            "type": "string"
          },
          "renderer": {
            "$ref": "#/components/schemas/TeachingMediaRendererRef"
          },
          "role": {
            "enum": [
              "editable_spec",
              "accessible_export",
              "downloadable_text",
              "primary",
              "preview",
              "data_table",
              "transcript",
              "captions",
              "audio_description",
              "nonanimated_equivalent",
              "rendition",
              "render_log",
              "critic_report"
            ],
            "title": "Role",
            "type": "string"
          },
          "source_stage_id": {
            "pattern": "^media-stage-[a-z0-9-]{3,119}$",
            "title": "Source Stage Id",
            "type": "string"
          },
          "width": {
            "anyOf": [
              {
                "maximum": 16384.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Width"
          }
        },
        "required": [
          "artifact_id",
          "artifact_revision",
          "role",
          "media_type",
          "locator",
          "content_sha256",
          "byte_length",
          "source_stage_id",
          "renderer",
          "lineage_sha256"
        ],
        "title": "TeachingMediaArtifact",
        "type": "object"
      },
      "TeachingMediaAudioSpec": {
        "additionalProperties": false,
        "properties": {
          "downloadable_text": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Downloadable Text",
            "type": "string"
          },
          "kind": {
            "const": "audio",
            "default": "audio",
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "output_formats": {
            "items": {
              "enum": ["wav", "mp3", "ogg", "opus"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Output Formats",
            "type": "array"
          },
          "peak_dbfs": {
            "maximum": -1.0,
            "minimum": -6.0,
            "title": "Peak Dbfs",
            "type": "number"
          },
          "pronunciations": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaPronunciation"
            },
            "maxItems": 2000,
            "title": "Pronunciations",
            "type": "array"
          },
          "script": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaScriptSegment"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Script",
            "type": "array"
          },
          "target_loudness_lufs": {
            "maximum": -14.0,
            "minimum": -24.0,
            "title": "Target Loudness Lufs",
            "type": "number"
          },
          "transcript": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Transcript",
            "type": "string"
          },
          "voice": {
            "$ref": "#/components/schemas/TeachingMediaVoiceApproval"
          }
        },
        "required": [
          "script",
          "voice",
          "locale",
          "target_loudness_lufs",
          "peak_dbfs",
          "transcript",
          "downloadable_text",
          "output_formats"
        ],
        "title": "TeachingMediaAudioSpec",
        "type": "object"
      },
      "TeachingMediaCaptionCue": {
        "additionalProperties": false,
        "properties": {
          "cue_id": {
            "pattern": "^cue-[a-z0-9-]{2,119}$",
            "title": "Cue Id",
            "type": "string"
          },
          "end_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 100000.0,
            "title": "End Seconds",
            "type": "number"
          },
          "start_seconds": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "text": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["cue_id", "start_seconds", "end_seconds", "text"],
        "title": "TeachingMediaCaptionCue",
        "type": "object"
      },
      "TeachingMediaChartScale": {
        "additionalProperties": false,
        "properties": {
          "channel": {
            "enum": ["x", "y", "color", "size", "shape"],
            "title": "Channel",
            "type": "string"
          },
          "column_id": {
            "title": "Column Id",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "scale_type": {
            "enum": ["linear", "log", "time", "ordinal", "quantile"],
            "title": "Scale Type",
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          },
          "zero_baseline": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zero Baseline"
          }
        },
        "required": ["channel", "column_id", "scale_type", "label"],
        "title": "TeachingMediaChartScale",
        "type": "object"
      },
      "TeachingMediaChartSpec": {
        "additionalProperties": false,
        "properties": {
          "chart_type": {
            "enum": ["bar", "line", "scatter", "area", "histogram", "box", "network", "heatmap"],
            "title": "Chart Type",
            "type": "string"
          },
          "data_table_markdown": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Data Table Markdown",
            "type": "string"
          },
          "dataset": {
            "$ref": "#/components/schemas/TeachingMediaDatasetSlice"
          },
          "kind": {
            "const": "chart",
            "default": "chart",
            "title": "Kind",
            "type": "string"
          },
          "narrative_alternative": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Narrative Alternative",
            "type": "string"
          },
          "render_format": {
            "enum": ["svg", "png", "html"],
            "title": "Render Format",
            "type": "string"
          },
          "render_spec": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Render Spec",
            "type": "string"
          },
          "scales": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaChartScale"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Scales",
            "type": "array"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "statistical_checks": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaStatisticalCheck"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Statistical Checks",
            "type": "array"
          },
          "transform": {
            "$ref": "#/components/schemas/TeachingMediaCodeBinding"
          }
        },
        "required": [
          "chart_type",
          "source_ids",
          "dataset",
          "transform",
          "scales",
          "statistical_checks",
          "data_table_markdown",
          "narrative_alternative",
          "render_spec",
          "render_format"
        ],
        "title": "TeachingMediaChartSpec",
        "type": "object"
      },
      "TeachingMediaCodeBinding": {
        "additionalProperties": false,
        "properties": {
          "code_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Code Id",
            "type": "string"
          },
          "dependency_lock_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dependency Lock Sha256",
            "type": "string"
          },
          "language": {
            "enum": ["mermaid", "vega-lite", "javascript", "python", "python-manim", "json"],
            "title": "Language",
            "type": "string"
          },
          "revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision",
            "type": "string"
          },
          "source": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Source",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "code_id",
          "revision",
          "language",
          "source",
          "source_sha256",
          "dependency_lock_sha256"
        ],
        "title": "TeachingMediaCodeBinding",
        "type": "object"
      },
      "TeachingMediaContentBinding": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Block Id",
            "type": "string"
          },
          "block_kind": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Block Kind",
            "type": "string"
          },
          "block_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Sha256",
            "type": "string"
          }
        },
        "required": ["block_id", "block_sha256", "block_kind"],
        "title": "TeachingMediaContentBinding",
        "type": "object"
      },
      "TeachingMediaContentSelector": {
        "additionalProperties": false,
        "properties": {
          "block_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Block Id",
            "type": "string"
          }
        },
        "required": ["block_id"],
        "title": "TeachingMediaContentSelector",
        "type": "object"
      },
      "TeachingMediaCreateRequest": {
        "additionalProperties": false,
        "properties": {
          "budget_minor_units": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Budget Minor Units",
            "type": "integer"
          },
          "content_refs": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaContentSelector"
            },
            "maxItems": 10000,
            "title": "Content Refs",
            "type": "array"
          },
          "expected_witness": {
            "$ref": "#/components/schemas/TeachingMediaLessonWitness"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "kind": {
            "enum": ["diagram", "chart", "presentation", "audio", "video", "animation"],
            "title": "Kind",
            "type": "string"
          },
          "model": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TeachingMediaModelRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "objective_refs": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaObjectiveSelector"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Objective Refs",
            "type": "array"
          },
          "renderer_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,119}$",
            "title": "Renderer Id",
            "type": "string"
          },
          "renderer_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Renderer Version",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaSourceSelector"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          },
          "spec": {
            "discriminator": {
              "mapping": {
                "animation": "#/components/schemas/TeachingMediaAnimationSpec",
                "audio": "#/components/schemas/TeachingMediaAudioSpec",
                "chart": "#/components/schemas/TeachingMediaChartSpec",
                "diagram": "#/components/schemas/TeachingMediaDiagramSpec",
                "presentation": "#/components/schemas/TeachingMediaPresentationSpec",
                "video": "#/components/schemas/TeachingMediaVideoSpec"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/TeachingMediaDiagramSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaChartSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaPresentationSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaAudioSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaVideoSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaAnimationSpec"
              }
            ],
            "title": "Spec"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "title",
          "kind",
          "expected_witness",
          "objective_refs",
          "source_refs",
          "spec",
          "renderer_id",
          "renderer_version",
          "budget_minor_units",
          "idempotency_key"
        ],
        "title": "TeachingMediaCreateRequest",
        "type": "object"
      },
      "TeachingMediaDatasetColumn": {
        "additionalProperties": false,
        "properties": {
          "column_id": {
            "pattern": "^[a-z][a-z0-9_-]{1,79}$",
            "title": "Column Id",
            "type": "string"
          },
          "data_type": {
            "enum": ["string", "integer", "number", "date", "datetime", "boolean"],
            "title": "Data Type",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          }
        },
        "required": ["column_id", "label", "data_type"],
        "title": "TeachingMediaDatasetColumn",
        "type": "object"
      },
      "TeachingMediaDatasetSlice": {
        "additionalProperties": false,
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaDatasetColumn"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Columns",
            "type": "array"
          },
          "dataset_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Dataset Id",
            "type": "string"
          },
          "dataset_revision": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Dataset Revision",
            "type": "string"
          },
          "dataset_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dataset Sha256",
            "type": "string"
          },
          "rows": {
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "maxItems": 10000,
            "minItems": 1,
            "title": "Rows",
            "type": "array"
          },
          "slice_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Slice Locator",
            "type": "string"
          }
        },
        "required": [
          "dataset_id",
          "dataset_revision",
          "slice_locator",
          "columns",
          "rows",
          "dataset_sha256"
        ],
        "title": "TeachingMediaDatasetSlice",
        "type": "object"
      },
      "TeachingMediaDecision": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["admin", "instructor"],
            "title": "Actor Role",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "decision": {
            "enum": ["accept", "reject"],
            "title": "Decision",
            "type": "string"
          },
          "decision_id": {
            "pattern": "^media-decision-[a-f0-9]{40}$",
            "title": "Decision Id",
            "type": "string"
          },
          "decision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Decision Sha256",
            "type": "string"
          },
          "gate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Gate Sha256",
            "type": "string"
          },
          "project_id": {
            "pattern": "^media-project-[a-f0-9]{40}$",
            "title": "Project Id",
            "type": "string"
          },
          "project_revision": {
            "minimum": 1.0,
            "title": "Project Revision",
            "type": "integer"
          },
          "project_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Project Revision Sha256",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "decision_id",
          "project_id",
          "project_revision",
          "project_revision_sha256",
          "gate_sha256",
          "decision",
          "actor_id",
          "actor_role",
          "reason",
          "decision_sha256",
          "created_at"
        ],
        "title": "TeachingMediaDecision",
        "type": "object"
      },
      "TeachingMediaDecisionRequest": {
        "additionalProperties": false,
        "properties": {
          "decision": {
            "enum": ["accept", "reject"],
            "title": "Decision",
            "type": "string"
          },
          "expected_gate_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Gate Sha256",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "decision",
          "expected_revision",
          "expected_revision_sha256",
          "expected_gate_sha256",
          "reason",
          "idempotency_key"
        ],
        "title": "TeachingMediaDecisionRequest",
        "type": "object"
      },
      "TeachingMediaDiagramElement": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Description",
            "type": "string"
          },
          "element_id": {
            "pattern": "^element-[a-z0-9-]{2,119}$",
            "title": "Element Id",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "semantic_role": {
            "enum": ["concept", "process", "decision", "entity", "annotation", "axis", "legend"],
            "title": "Semantic Role",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          }
        },
        "required": ["element_id", "label", "semantic_role", "description", "source_ids"],
        "title": "TeachingMediaDiagramElement",
        "type": "object"
      },
      "TeachingMediaDiagramRelationship": {
        "additionalProperties": false,
        "properties": {
          "from_element_id": {
            "title": "From Element Id",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "relation": {
            "enum": [
              "causes",
              "contains",
              "precedes",
              "supports",
              "contrasts",
              "maps_to",
              "depends_on"
            ],
            "title": "Relation",
            "type": "string"
          },
          "relationship_id": {
            "pattern": "^relationship-[a-z0-9-]{2,119}$",
            "title": "Relationship Id",
            "type": "string"
          },
          "to_element_id": {
            "title": "To Element Id",
            "type": "string"
          }
        },
        "required": ["relationship_id", "from_element_id", "to_element_id", "label", "relation"],
        "title": "TeachingMediaDiagramRelationship",
        "type": "object"
      },
      "TeachingMediaDiagramSpec": {
        "additionalProperties": false,
        "properties": {
          "alt_text": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Alt Text",
            "type": "string"
          },
          "diagram_type": {
            "enum": [
              "flowchart",
              "sequence",
              "concept_map",
              "timeline",
              "tree",
              "state",
              "illustration"
            ],
            "title": "Diagram Type",
            "type": "string"
          },
          "editable_spec": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Editable Spec",
            "type": "string"
          },
          "editable_vector_format": {
            "enum": ["svg", "mermaid", "canvas-json"],
            "title": "Editable Vector Format",
            "type": "string"
          },
          "elements": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaDiagramElement"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Elements",
            "type": "array"
          },
          "kind": {
            "const": "diagram",
            "default": "diagram",
            "title": "Kind",
            "type": "string"
          },
          "long_description": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Long Description",
            "type": "string"
          },
          "relationships": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaDiagramRelationship"
            },
            "maxItems": 1000,
            "title": "Relationships",
            "type": "array"
          }
        },
        "required": [
          "diagram_type",
          "elements",
          "editable_vector_format",
          "editable_spec",
          "alt_text",
          "long_description"
        ],
        "title": "TeachingMediaDiagramSpec",
        "type": "object"
      },
      "TeachingMediaEvidence": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256s": {
            "items": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Artifact Sha256S",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "current": {
            "default": true,
            "title": "Current",
            "type": "boolean"
          },
          "domain": {
            "enum": [
              "source",
              "correctness",
              "code_data",
              "renderer",
              "provenance",
              "rights",
              "safety",
              "accessibility",
              "technical",
              "critic"
            ],
            "title": "Domain",
            "type": "string"
          },
          "evaluator": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Evaluator",
            "type": "string"
          },
          "evaluator_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Evaluator Version",
            "type": "string"
          },
          "evidence_id": {
            "pattern": "^media-evidence-[a-f0-9]{40}$",
            "title": "Evidence Id",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "evidence_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Evidence Sha256",
            "type": "string"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "title": "Findings",
            "type": "array"
          },
          "input_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Revision Sha256",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "fail", "needs_review"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "evidence_id",
          "domain",
          "status",
          "evidence_ref",
          "evidence_sha256",
          "evaluator",
          "evaluator_version",
          "input_revision_sha256",
          "created_at"
        ],
        "title": "TeachingMediaEvidence",
        "type": "object"
      },
      "TeachingMediaLessonWitness": {
        "additionalProperties": false,
        "properties": {
          "block_document_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Block Document Sha256",
            "type": "string"
          },
          "course_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Course Id",
            "type": "string"
          },
          "course_revision": {
            "minimum": 1.0,
            "title": "Course Revision",
            "type": "integer"
          },
          "dossier_revision": {
            "minimum": 0.0,
            "title": "Dossier Revision",
            "type": "integer"
          },
          "dossier_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Dossier Sha256",
            "type": "string"
          },
          "lesson_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Lesson Id",
            "type": "string"
          },
          "lesson_revision": {
            "minimum": 1.0,
            "title": "Lesson Revision",
            "type": "integer"
          },
          "module_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Module Id",
            "type": "string"
          },
          "module_revision": {
            "minimum": 1.0,
            "title": "Module Revision",
            "type": "integer"
          },
          "tenant_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "lesson_id",
          "lesson_revision",
          "module_id",
          "module_revision",
          "course_id",
          "course_revision",
          "tenant_id",
          "dossier_revision",
          "dossier_sha256",
          "block_document_sha256"
        ],
        "title": "TeachingMediaLessonWitness",
        "type": "object"
      },
      "TeachingMediaModelRef": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "model_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Model Version",
            "type": "string"
          },
          "prompt_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Prompt Version",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          }
        },
        "required": ["provider", "model", "model_version", "prompt_version", "config_sha256"],
        "title": "TeachingMediaModelRef",
        "type": "object"
      },
      "TeachingMediaObjectiveBinding": {
        "additionalProperties": false,
        "properties": {
          "authority_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Authority Ref",
            "type": "string"
          },
          "objective_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Objective Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          },
          "statement_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Statement Sha256",
            "type": "string"
          }
        },
        "required": ["objective_id", "revision_id", "statement_sha256", "authority_ref"],
        "title": "TeachingMediaObjectiveBinding",
        "type": "object"
      },
      "TeachingMediaObjectiveSelector": {
        "additionalProperties": false,
        "properties": {
          "objective_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Objective Id",
            "type": "string"
          },
          "revision_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Revision Id",
            "type": "string"
          }
        },
        "required": ["objective_id", "revision_id"],
        "title": "TeachingMediaObjectiveSelector",
        "type": "object"
      },
      "TeachingMediaPresentationSpec": {
        "additionalProperties": false,
        "properties": {
          "accessible_export_required": {
            "const": true,
            "default": true,
            "title": "Accessible Export Required",
            "type": "boolean"
          },
          "export_formats": {
            "items": {
              "enum": ["pptx", "pdf", "html"],
              "type": "string"
            },
            "maxItems": 3,
            "minItems": 1,
            "title": "Export Formats",
            "type": "array"
          },
          "kind": {
            "const": "presentation",
            "default": "presentation",
            "title": "Kind",
            "type": "string"
          },
          "layout_engine": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Layout Engine",
            "type": "string"
          },
          "media_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 2000,
            "title": "Media Refs",
            "type": "array"
          },
          "slides": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaSlide"
            },
            "maxItems": 500,
            "minItems": 1,
            "title": "Slides",
            "type": "array"
          },
          "theme_id": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Theme Id",
            "type": "string"
          }
        },
        "required": ["slides", "theme_id", "layout_engine", "export_formats"],
        "title": "TeachingMediaPresentationSpec",
        "type": "object"
      },
      "TeachingMediaProjectCatalog": {
        "additionalProperties": false,
        "properties": {
          "catalog_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Catalog Sha256",
            "type": "string"
          },
          "lesson_id": {
            "title": "Lesson Id",
            "type": "string"
          },
          "projects": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaProjectRevision"
            },
            "title": "Projects",
            "type": "array"
          }
        },
        "required": ["lesson_id", "projects", "catalog_sha256"],
        "title": "TeachingMediaProjectCatalog",
        "type": "object"
      },
      "TeachingMediaProjectHistory": {
        "additionalProperties": false,
        "properties": {
          "current": {
            "$ref": "#/components/schemas/TeachingMediaProjectRevision"
          },
          "decisions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TeachingMediaDecision"
            },
            "title": "Decisions",
            "type": "array"
          },
          "project_id": {
            "pattern": "^media-project-[a-f0-9]{40}$",
            "title": "Project Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaProjectRevision"
            },
            "minItems": 1,
            "title": "Revisions",
            "type": "array"
          }
        },
        "required": ["project_id", "current", "revisions"],
        "title": "TeachingMediaProjectHistory",
        "type": "object"
      },
      "TeachingMediaProjectRevision": {
        "additionalProperties": false,
        "properties": {
          "acceptance_gate": {
            "$ref": "#/components/schemas/TeachingMediaAcceptanceGate"
          },
          "budget_minor_units": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Budget Minor Units",
            "type": "integer"
          },
          "content": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaContentBinding"
            },
            "maxItems": 10000,
            "title": "Content",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "currency": {
            "const": "USD",
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaEvidence"
            },
            "maxItems": 20000,
            "title": "Evidence",
            "type": "array"
          },
          "kind": {
            "enum": ["diagram", "chart", "presentation", "audio", "video", "animation"],
            "title": "Kind",
            "type": "string"
          },
          "model": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TeachingMediaModelRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "objectives": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaObjectiveBinding"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Objectives",
            "type": "array"
          },
          "owner_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Owner Id",
            "type": "string"
          },
          "owner_role": {
            "enum": ["admin", "instructor"],
            "title": "Owner Role",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "project_id": {
            "pattern": "^media-project-[a-f0-9]{40}$",
            "title": "Project Id",
            "type": "string"
          },
          "renderer": {
            "$ref": "#/components/schemas/TeachingMediaRendererRef"
          },
          "revised_at": {
            "format": "date-time",
            "title": "Revised At",
            "type": "string"
          },
          "revision": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaSourceBinding"
            },
            "maxItems": 2000,
            "minItems": 1,
            "title": "Sources",
            "type": "array"
          },
          "spec": {
            "discriminator": {
              "mapping": {
                "animation": "#/components/schemas/TeachingMediaAnimationSpec",
                "audio": "#/components/schemas/TeachingMediaAudioSpec",
                "chart": "#/components/schemas/TeachingMediaChartSpec",
                "diagram": "#/components/schemas/TeachingMediaDiagramSpec",
                "presentation": "#/components/schemas/TeachingMediaPresentationSpec",
                "video": "#/components/schemas/TeachingMediaVideoSpec"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/TeachingMediaDiagramSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaChartSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaPresentationSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaAudioSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaVideoSpec"
              },
              {
                "$ref": "#/components/schemas/TeachingMediaAnimationSpec"
              }
            ],
            "title": "Spec"
          },
          "spec_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Spec Sha256",
            "type": "string"
          },
          "spent_minor_units": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Spent Minor Units",
            "type": "integer"
          },
          "stages": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaStage"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Stages",
            "type": "array"
          },
          "state": {
            "enum": [
              "draft",
              "in_progress",
              "blocked",
              "ready",
              "accepted",
              "rejected",
              "cancelled"
            ],
            "title": "State",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/TeachingMediaLessonWitness"
          }
        },
        "required": [
          "project_id",
          "revision",
          "revision_sha256",
          "state",
          "title",
          "kind",
          "witness",
          "objectives",
          "sources",
          "spec",
          "spec_sha256",
          "renderer",
          "stages",
          "acceptance_gate",
          "budget_minor_units",
          "spent_minor_units",
          "owner_id",
          "owner_role",
          "created_at",
          "revised_at"
        ],
        "title": "TeachingMediaProjectRevision",
        "type": "object"
      },
      "TeachingMediaPronunciation": {
        "additionalProperties": false,
        "properties": {
          "ipa": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ipa",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "term": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Term",
            "type": "string"
          }
        },
        "required": ["term", "ipa", "locale"],
        "title": "TeachingMediaPronunciation",
        "type": "object"
      },
      "TeachingMediaRendererRef": {
        "additionalProperties": false,
        "properties": {
          "deterministic": {
            "title": "Deterministic",
            "type": "boolean"
          },
          "environment_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Environment Sha256",
            "type": "string"
          },
          "renderer_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,119}$",
            "title": "Renderer Id",
            "type": "string"
          },
          "sandbox_profile": {
            "enum": [
              "vector-isolate-v1",
              "data-render-isolate-v1",
              "document-export-isolate-v1",
              "audio-worker-isolate-v1",
              "video-worker-isolate-v1",
              "manim-worker-isolate-v1"
            ],
            "title": "Sandbox Profile",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaToolRef"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Tools",
            "type": "array"
          },
          "version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "renderer_id",
          "version",
          "environment_sha256",
          "deterministic",
          "sandbox_profile",
          "tools"
        ],
        "title": "TeachingMediaRendererRef",
        "type": "object"
      },
      "TeachingMediaRendererRegistry": {
        "additionalProperties": false,
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaRendererRegistryEntry"
            },
            "maxItems": 6,
            "minItems": 6,
            "title": "Entries",
            "type": "array"
          },
          "registry_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Registry Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "1.0.0",
            "default": "1.0.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["entries", "registry_sha256"],
        "title": "TeachingMediaRendererRegistry",
        "type": "object"
      },
      "TeachingMediaRendererRegistryEntry": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "enum": ["diagram", "chart", "presentation", "audio", "video", "animation"],
            "title": "Kind",
            "type": "string"
          },
          "output_media_types": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "title": "Output Media Types",
            "type": "array"
          },
          "renderer": {
            "$ref": "#/components/schemas/TeachingMediaRendererRef"
          },
          "required_stages": {
            "items": {
              "enum": [
                "specification",
                "source_binding",
                "data_binding",
                "transform",
                "script",
                "storyboard",
                "synthesis",
                "render",
                "statistics",
                "synchronization",
                "frame_validation",
                "critic",
                "accessibility",
                "technical"
              ],
              "type": "string"
            },
            "minItems": 1,
            "title": "Required Stages",
            "type": "array"
          }
        },
        "required": ["kind", "renderer", "required_stages", "output_media_types"],
        "title": "TeachingMediaRendererRegistryEntry",
        "type": "object"
      },
      "TeachingMediaRendition": {
        "additionalProperties": false,
        "properties": {
          "bitrate_kbps": {
            "maximum": 500000.0,
            "minimum": 16.0,
            "title": "Bitrate Kbps",
            "type": "integer"
          },
          "format": {
            "enum": ["mp4", "webm", "mov", "m3u8", "mp3"],
            "title": "Format",
            "type": "string"
          },
          "height": {
            "anyOf": [
              {
                "maximum": 16384.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Height"
          },
          "rendition_id": {
            "pattern": "^rendition-[a-z0-9-]{2,119}$",
            "title": "Rendition Id",
            "type": "string"
          },
          "role": {
            "enum": ["primary", "low_bandwidth", "offline", "audio_only"],
            "title": "Role",
            "type": "string"
          },
          "width": {
            "anyOf": [
              {
                "maximum": 16384.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Width"
          }
        },
        "required": ["rendition_id", "role", "format", "bitrate_kbps"],
        "title": "TeachingMediaRendition",
        "type": "object"
      },
      "TeachingMediaSandboxSpec": {
        "additionalProperties": false,
        "properties": {
          "max_cpu_seconds": {
            "maximum": 3600.0,
            "minimum": 1.0,
            "title": "Max Cpu Seconds",
            "type": "integer"
          },
          "max_memory_mb": {
            "maximum": 32768.0,
            "minimum": 128.0,
            "title": "Max Memory Mb",
            "type": "integer"
          },
          "network_access": {
            "const": false,
            "default": false,
            "title": "Network Access",
            "type": "boolean"
          },
          "profile": {
            "const": "manim-worker-isolate-v1",
            "title": "Profile",
            "type": "string"
          },
          "timeout_seconds": {
            "maximum": 3600.0,
            "minimum": 1.0,
            "title": "Timeout Seconds",
            "type": "integer"
          },
          "writable_filesystem": {
            "const": "job_directory_only",
            "default": "job_directory_only",
            "title": "Writable Filesystem",
            "type": "string"
          }
        },
        "required": ["profile", "max_cpu_seconds", "max_memory_mb", "timeout_seconds"],
        "title": "TeachingMediaSandboxSpec",
        "type": "object"
      },
      "TeachingMediaScriptSegment": {
        "additionalProperties": false,
        "properties": {
          "end_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 100000.0,
            "title": "End Seconds",
            "type": "number"
          },
          "segment_id": {
            "pattern": "^segment-[a-z0-9-]{2,119}$",
            "title": "Segment Id",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "start_seconds": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "text": {
            "maxLength": 50000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": ["segment_id", "text", "source_ids", "start_seconds", "end_seconds"],
        "title": "TeachingMediaScriptSegment",
        "type": "object"
      },
      "TeachingMediaSlide": {
        "additionalProperties": false,
        "properties": {
          "duration_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 3600.0,
            "title": "Duration Seconds",
            "type": "number"
          },
          "elements": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaSlideElement"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Elements",
            "type": "array"
          },
          "reading_order": {
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Reading Order",
            "type": "array"
          },
          "slide_id": {
            "pattern": "^slide-[a-z0-9-]{2,119}$",
            "title": "Slide Id",
            "type": "string"
          },
          "speaker_notes": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Speaker Notes",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "slide_id",
          "title",
          "elements",
          "reading_order",
          "speaker_notes",
          "duration_seconds"
        ],
        "title": "TeachingMediaSlide",
        "type": "object"
      },
      "TeachingMediaSlideElement": {
        "additionalProperties": false,
        "properties": {
          "alt_text": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alt Text"
          },
          "content": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "contrast_ratio": {
            "maximum": 21.0,
            "minimum": 4.5,
            "title": "Contrast Ratio",
            "type": "number"
          },
          "element_id": {
            "pattern": "^slide-element-[a-z0-9-]{2,119}$",
            "title": "Element Id",
            "type": "string"
          },
          "kind": {
            "enum": ["heading", "body", "image", "diagram", "chart", "code", "citation"],
            "title": "Kind",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          }
        },
        "required": ["element_id", "kind", "content", "source_ids", "contrast_ratio"],
        "title": "TeachingMediaSlideElement",
        "type": "object"
      },
      "TeachingMediaSourceBinding": {
        "additionalProperties": false,
        "properties": {
          "authority_status": {
            "const": "trusted",
            "title": "Authority Status",
            "type": "string"
          },
          "citation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Citation Id",
            "type": "string"
          },
          "citation_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Citation Locator",
            "type": "string"
          },
          "currency_status": {
            "const": "current",
            "title": "Currency Status",
            "type": "string"
          },
          "license": {
            "maxLength": 255,
            "minLength": 1,
            "title": "License",
            "type": "string"
          },
          "protected": {
            "title": "Protected",
            "type": "boolean"
          },
          "rights_status": {
            "const": "cleared",
            "title": "Rights Status",
            "type": "string"
          },
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "source_version_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Version Id",
            "type": "string"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "source_id",
          "source_version_id",
          "source_sha256",
          "title",
          "citation_id",
          "citation_locator",
          "authority_status",
          "currency_status",
          "rights_status",
          "license",
          "protected"
        ],
        "title": "TeachingMediaSourceBinding",
        "type": "object"
      },
      "TeachingMediaSourceSelector": {
        "additionalProperties": false,
        "properties": {
          "source_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Id",
            "type": "string"
          },
          "source_version_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Source Version Id",
            "type": "string"
          }
        },
        "required": ["source_id", "source_version_id"],
        "title": "TeachingMediaSourceSelector",
        "type": "object"
      },
      "TeachingMediaStage": {
        "additionalProperties": false,
        "properties": {
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaArtifact"
            },
            "maxItems": 10000,
            "title": "Artifacts",
            "type": "array"
          },
          "attempt": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Attempt",
            "type": "integer"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "cost_minor_units": {
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "error": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TeachingMediaStageError"
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 10000,
            "title": "Evidence Ids",
            "type": "array"
          },
          "input_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Input Sha256",
            "type": "string"
          },
          "kind": {
            "enum": [
              "specification",
              "source_binding",
              "data_binding",
              "transform",
              "script",
              "storyboard",
              "synthesis",
              "render",
              "statistics",
              "synchronization",
              "frame_validation",
              "critic",
              "accessibility",
              "technical"
            ],
            "title": "Kind",
            "type": "string"
          },
          "order": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Order",
            "type": "integer"
          },
          "output_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Output Sha256"
          },
          "progress_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Progress Percent",
            "type": "integer"
          },
          "stage_id": {
            "pattern": "^media-stage-[a-z0-9-]{3,119}$",
            "title": "Stage Id",
            "type": "string"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "state": {
            "enum": ["pending", "running", "succeeded", "partial", "failed", "cancelled"],
            "title": "State",
            "type": "string"
          },
          "worker_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Worker Id"
          },
          "worker_receipt_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Worker Receipt Sha256"
          },
          "worker_version": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Worker Version"
          }
        },
        "required": [
          "stage_id",
          "kind",
          "order",
          "state",
          "attempt",
          "progress_percent",
          "input_sha256",
          "cost_minor_units"
        ],
        "title": "TeachingMediaStage",
        "type": "object"
      },
      "TeachingMediaStageError": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "pattern": "^[a-z][a-z0-9_]{2,79}$",
            "title": "Code",
            "type": "string"
          },
          "message": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "retryable": {
            "title": "Retryable",
            "type": "boolean"
          }
        },
        "required": ["code", "message", "retryable"],
        "title": "TeachingMediaStageError",
        "type": "object"
      },
      "TeachingMediaStageEventRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "start",
              "progress",
              "complete",
              "partial",
              "fail",
              "cancel",
              "retry",
              "regenerate"
            ],
            "title": "Action",
            "type": "string"
          },
          "artifacts": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaArtifact"
            },
            "maxItems": 10000,
            "title": "Artifacts",
            "type": "array"
          },
          "cost_minor_units": {
            "default": 0,
            "maximum": 1000000000.0,
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "error": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TeachingMediaStageError"
              },
              {
                "type": "null"
              }
            ]
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaEvidence"
            },
            "maxItems": 10000,
            "title": "Evidence",
            "type": "array"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "expected_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "message": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "progress_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Progress Percent"
          },
          "stage_id": {
            "pattern": "^media-stage-[a-z0-9-]{3,119}$",
            "title": "Stage Id",
            "type": "string"
          },
          "worker_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Worker Id"
          },
          "worker_receipt_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Worker Receipt Sha256"
          },
          "worker_version": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Worker Version"
          }
        },
        "required": [
          "expected_revision",
          "expected_revision_sha256",
          "stage_id",
          "action",
          "message",
          "idempotency_key"
        ],
        "title": "TeachingMediaStageEventRequest",
        "type": "object"
      },
      "TeachingMediaStatisticalCheck": {
        "additionalProperties": false,
        "properties": {
          "check_id": {
            "pattern": "^stat-[a-z0-9-]{2,119}$",
            "title": "Check Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "kind": {
            "enum": [
              "missingness",
              "range",
              "outlier",
              "sample_size",
              "aggregation",
              "uncertainty"
            ],
            "title": "Kind",
            "type": "string"
          },
          "status": {
            "enum": ["pass", "fail", "needs_review"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["check_id", "kind", "status", "detail"],
        "title": "TeachingMediaStatisticalCheck",
        "type": "object"
      },
      "TeachingMediaToolRef": {
        "additionalProperties": false,
        "properties": {
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "tool_id": {
            "pattern": "^[a-z][a-z0-9._-]{2,119}$",
            "title": "Tool Id",
            "type": "string"
          },
          "version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["tool_id", "version", "config_sha256"],
        "title": "TeachingMediaToolRef",
        "type": "object"
      },
      "TeachingMediaVideoScene": {
        "additionalProperties": false,
        "properties": {
          "end_seconds": {
            "exclusiveMinimum": 0.0,
            "maximum": 100000.0,
            "title": "End Seconds",
            "type": "number"
          },
          "media_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "title": "Media Refs",
            "type": "array"
          },
          "narration": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Narration",
            "type": "string"
          },
          "scene_id": {
            "pattern": "^scene-[a-z0-9-]{2,119}$",
            "title": "Scene Id",
            "type": "string"
          },
          "source_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source Ids",
            "type": "array"
          },
          "start_seconds": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Start Seconds",
            "type": "number"
          },
          "title": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "visual_description": {
            "maxLength": 10000,
            "minLength": 1,
            "title": "Visual Description",
            "type": "string"
          }
        },
        "required": [
          "scene_id",
          "title",
          "visual_description",
          "narration",
          "source_ids",
          "start_seconds",
          "end_seconds"
        ],
        "title": "TeachingMediaVideoScene",
        "type": "object"
      },
      "TeachingMediaVideoSpec": {
        "additionalProperties": false,
        "properties": {
          "audio_description": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Audio Description",
            "type": "string"
          },
          "captions": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaCaptionCue"
            },
            "maxItems": 20000,
            "minItems": 1,
            "title": "Captions",
            "type": "array"
          },
          "kind": {
            "const": "video",
            "default": "video",
            "title": "Kind",
            "type": "string"
          },
          "max_sync_drift_ms": {
            "maximum": 250.0,
            "minimum": 0.0,
            "title": "Max Sync Drift Ms",
            "type": "integer"
          },
          "renditions": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaRendition"
            },
            "maxItems": 50,
            "minItems": 2,
            "title": "Renditions",
            "type": "array"
          },
          "scenes": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaVideoScene"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Scenes",
            "type": "array"
          },
          "script": {
            "items": {
              "$ref": "#/components/schemas/TeachingMediaScriptSegment"
            },
            "maxItems": 5000,
            "minItems": 1,
            "title": "Script",
            "type": "array"
          },
          "storyboard": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Storyboard",
            "type": "string"
          },
          "transcript": {
            "maxLength": 500000,
            "minLength": 1,
            "title": "Transcript",
            "type": "string"
          }
        },
        "required": [
          "script",
          "storyboard",
          "scenes",
          "captions",
          "transcript",
          "audio_description",
          "renditions",
          "max_sync_drift_ms"
        ],
        "title": "TeachingMediaVideoSpec",
        "type": "object"
      },
      "TeachingMediaVoiceApproval": {
        "additionalProperties": false,
        "properties": {
          "approval_status": {
            "const": "approved",
            "title": "Approval Status",
            "type": "string"
          },
          "consent_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Expires At"
          },
          "consent_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Consent Ref",
            "type": "string"
          },
          "consent_status": {
            "enum": ["granted", "not_required"],
            "title": "Consent Status",
            "type": "string"
          },
          "provider": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Provider",
            "type": "string"
          },
          "voice_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Voice Id",
            "type": "string"
          },
          "voice_version": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Voice Version",
            "type": "string"
          }
        },
        "required": [
          "voice_id",
          "voice_version",
          "provider",
          "approval_status",
          "consent_status",
          "consent_ref"
        ],
        "title": "TeachingMediaVoiceApproval",
        "type": "object"
      },
      "TemplateApplicability": {
        "additionalProperties": false,
        "properties": {
          "content_kinds": {
            "items": {
              "enum": [
                "course",
                "lesson",
                "item",
                "assessment",
                "answer",
                "rationale",
                "feedback",
                "hint"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "minItems": 1,
            "title": "Content Kinds",
            "type": "array"
          },
          "locales": {
            "default": [],
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 40,
            "title": "Locales",
            "type": "array"
          },
          "risks": {
            "items": {
              "enum": ["low", "moderate", "high", "critical"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Risks",
            "type": "array"
          },
          "targets": {
            "default": [],
            "items": {
              "enum": ["learner-web", "learner-mobile", "lms-qti", "print"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": ["content_kinds", "risks"],
        "title": "TemplateApplicability",
        "type": "object"
      },
      "TemplateDiffView": {
        "additionalProperties": false,
        "description": "What changed between two versions of a template, and what it costs.\n\nA criterion added after somebody was assessed does not apply to them\nretrospectively, and a criterion removed does not un-assess them. Saying\nwhich is which is the difference between a version bump and a quiet\nre-definition of what an award means.",
        "properties": {
          "achievement_changed": {
            "default": false,
            "title": "Achievement Changed",
            "type": "boolean"
          },
          "added_criteria": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Added Criteria",
            "type": "array"
          },
          "changed_criteria": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Changed Criteria",
            "type": "array"
          },
          "from_version": {
            "title": "From Version",
            "type": "integer"
          },
          "quorum_changed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quorum Changed"
          },
          "raises_the_bar": {
            "default": false,
            "title": "Raises The Bar",
            "type": "boolean"
          },
          "removed_criteria": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Removed Criteria",
            "type": "array"
          },
          "template_id": {
            "title": "Template Id",
            "type": "string"
          },
          "to_version": {
            "title": "To Version",
            "type": "integer"
          },
          "validity_changed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Validity Changed"
          }
        },
        "required": ["template_id", "from_version", "to_version"],
        "title": "TemplateDiffView",
        "type": "object"
      },
      "TenantDataPolicy": {
        "additionalProperties": false,
        "description": "What this tenant permits, and for how long.",
        "properties": {
          "permitted_purposes": {
            "default": [],
            "items": {
              "enum": ["model_training", "model_evaluation", "quality_monitoring"],
              "type": "string"
            },
            "maxItems": 3,
            "title": "Permitted Purposes",
            "type": "array"
          },
          "requires_opt_in": {
            "title": "Requires Opt In",
            "type": "boolean"
          },
          "retention_days": {
            "maximum": 3650.0,
            "minimum": 1.0,
            "title": "Retention Days",
            "type": "integer"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["tenant_id", "retention_days", "requires_opt_in"],
        "title": "TenantDataPolicy",
        "type": "object"
      },
      "TextAnchor": {
        "additionalProperties": false,
        "description": "A quoted run, with the text on either side of it, so it can be found again.",
        "properties": {
          "kind": {
            "const": "text",
            "default": "text",
            "title": "Kind",
            "type": "string"
          },
          "path": {
            "maxLength": 200,
            "pattern": "^[a-z][a-z0-9_]*(?:\\.[a-z0-9_]+)*$",
            "title": "Path",
            "type": "string"
          },
          "prefix": {
            "default": "",
            "maxLength": 200,
            "title": "Prefix",
            "type": "string"
          },
          "quote": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Quote",
            "type": "string"
          },
          "start": {
            "minimum": 0.0,
            "title": "Start",
            "type": "integer"
          },
          "suffix": {
            "default": "",
            "maxLength": 200,
            "title": "Suffix",
            "type": "string"
          }
        },
        "required": ["path", "quote", "start"],
        "title": "TextAnchor",
        "type": "object"
      },
      "TextPreview": {
        "additionalProperties": false,
        "description": "A previewed text conversation and what checking it found.",
        "properties": {
          "findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PreviewFinding"
            },
            "maxItems": 60,
            "title": "Findings",
            "type": "array"
          },
          "produced_no_side_effects": {
            "const": true,
            "default": true,
            "title": "Produced No Side Effects",
            "type": "boolean"
          },
          "turns": {
            "items": {
              "$ref": "#/components/schemas/PreviewTurn"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Turns",
            "type": "array"
          }
        },
        "required": ["turns"],
        "title": "TextPreview",
        "type": "object"
      },
      "ThreadMigration": {
        "additionalProperties": false,
        "description": "A thread carried to a new subject revision, with its anchor's fate recorded.",
        "properties": {
          "anchor_in_force": {
            "discriminator": {
              "mapping": {
                "entity": "#/components/schemas/EntityAnchor",
                "field": "#/components/schemas/FieldAnchor",
                "item_option": "#/components/schemas/ItemOptionAnchor",
                "region": "#/components/schemas/RegionAnchor",
                "rubric_cell": "#/components/schemas/RubricCellAnchor",
                "text": "#/components/schemas/TextAnchor",
                "timecode": "#/components/schemas/TimecodeAnchor"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/EntityAnchor"
              },
              {
                "$ref": "#/components/schemas/FieldAnchor"
              },
              {
                "$ref": "#/components/schemas/TextAnchor"
              },
              {
                "$ref": "#/components/schemas/RegionAnchor"
              },
              {
                "$ref": "#/components/schemas/TimecodeAnchor"
              },
              {
                "$ref": "#/components/schemas/ItemOptionAnchor"
              },
              {
                "$ref": "#/components/schemas/RubricCellAnchor"
              }
            ],
            "title": "Anchor In Force"
          },
          "migrated_subject": {
            "$ref": "#/components/schemas/CommentSubject"
          },
          "needs_attention": {
            "title": "Needs Attention",
            "type": "boolean"
          },
          "resolution": {
            "$ref": "#/components/schemas/AnchorResolution"
          },
          "thread_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Thread Id",
            "type": "string"
          }
        },
        "required": [
          "thread_id",
          "resolution",
          "migrated_subject",
          "anchor_in_force",
          "needs_attention"
        ],
        "title": "ThreadMigration",
        "type": "object"
      },
      "ThreadView": {
        "additionalProperties": false,
        "description": "A thread as one reader sees it, with the navigation an assistive reader needs.",
        "properties": {
          "anchor": {
            "discriminator": {
              "mapping": {
                "entity": "#/components/schemas/EntityAnchor",
                "field": "#/components/schemas/FieldAnchor",
                "item_option": "#/components/schemas/ItemOptionAnchor",
                "region": "#/components/schemas/RegionAnchor",
                "rubric_cell": "#/components/schemas/RubricCellAnchor",
                "text": "#/components/schemas/TextAnchor",
                "timecode": "#/components/schemas/TimecodeAnchor"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/EntityAnchor"
              },
              {
                "$ref": "#/components/schemas/FieldAnchor"
              },
              {
                "$ref": "#/components/schemas/TextAnchor"
              },
              {
                "$ref": "#/components/schemas/RegionAnchor"
              },
              {
                "$ref": "#/components/schemas/TimecodeAnchor"
              },
              {
                "$ref": "#/components/schemas/ItemOptionAnchor"
              },
              {
                "$ref": "#/components/schemas/RubricCellAnchor"
              }
            ],
            "title": "Anchor"
          },
          "anchor_description": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Anchor Description",
            "type": "string"
          },
          "anchor_status": {
            "enum": ["exact", "shifted", "ambiguous", "orphaned"],
            "title": "Anchor Status",
            "type": "string"
          },
          "comments": {
            "items": {
              "$ref": "#/components/schemas/CommentRecord"
            },
            "title": "Comments",
            "type": "array"
          },
          "of_total": {
            "minimum": 1.0,
            "title": "Of Total",
            "type": "integer"
          },
          "position": {
            "minimum": 1.0,
            "title": "Position",
            "type": "integer"
          },
          "reply_count": {
            "minimum": 0.0,
            "title": "Reply Count",
            "type": "integer"
          },
          "status": {
            "enum": ["open", "resolved"],
            "title": "Status",
            "type": "string"
          },
          "subject": {
            "$ref": "#/components/schemas/CommentSubject"
          },
          "thread_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Thread Id",
            "type": "string"
          },
          "visibility": {
            "enum": ["author_only", "reviewers", "content_team", "institution"],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "thread_id",
          "subject",
          "anchor",
          "anchor_status",
          "status",
          "visibility",
          "comments",
          "anchor_description",
          "position",
          "of_total",
          "reply_count"
        ],
        "title": "ThreadView",
        "type": "object"
      },
      "ThreadViewsResponse": {
        "additionalProperties": false,
        "properties": {
          "views": {
            "items": {
              "$ref": "#/components/schemas/ThreadView"
            },
            "title": "Views",
            "type": "array"
          }
        },
        "required": ["views"],
        "title": "ThreadViewsResponse",
        "type": "object"
      },
      "ThresholdRule-Input": {
        "additionalProperties": false,
        "properties": {
          "measurement_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Measurement Id",
            "type": "string"
          },
          "metric_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Metric Id",
            "type": "string"
          },
          "operator": {
            "enum": ["at_most", "at_least", "equal"],
            "title": "Operator",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "remediation": {
            "$ref": "#/components/schemas/RuleRemediation"
          },
          "requirement": {
            "enum": ["mandatory", "advisory"],
            "title": "Requirement",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Rule Id",
            "type": "string"
          },
          "threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
                "type": "string"
              }
            ],
            "title": "Threshold"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          }
        },
        "required": [
          "rule_id",
          "measurement_id",
          "metric_id",
          "operator",
          "threshold",
          "unit",
          "requirement",
          "remediation",
          "rationale"
        ],
        "title": "ThresholdRule",
        "type": "object"
      },
      "ThresholdRule-Output": {
        "additionalProperties": false,
        "properties": {
          "measurement_id": {
            "maxLength": 180,
            "minLength": 1,
            "title": "Measurement Id",
            "type": "string"
          },
          "metric_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Metric Id",
            "type": "string"
          },
          "operator": {
            "enum": ["at_most", "at_least", "equal"],
            "title": "Operator",
            "type": "string"
          },
          "rationale": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "remediation": {
            "$ref": "#/components/schemas/RuleRemediation"
          },
          "requirement": {
            "enum": ["mandatory", "advisory"],
            "title": "Requirement",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Rule Id",
            "type": "string"
          },
          "threshold": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Threshold",
            "type": "string"
          },
          "unit": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Unit",
            "type": "string"
          }
        },
        "required": [
          "rule_id",
          "measurement_id",
          "metric_id",
          "operator",
          "threshold",
          "unit",
          "requirement",
          "remediation",
          "rationale"
        ],
        "title": "ThresholdRule",
        "type": "object"
      },
      "ThresholdSnapshot-Input": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Sha256"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/ThresholdRule-Input"
            },
            "minItems": 1,
            "title": "Rules",
            "type": "array"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["version", "rules"],
        "title": "ThresholdSnapshot",
        "type": "object"
      },
      "ThresholdSnapshot-Output": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Sha256"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/ThresholdRule-Output"
            },
            "minItems": 1,
            "title": "Rules",
            "type": "array"
          },
          "version": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          }
        },
        "required": ["version", "rules"],
        "title": "ThresholdSnapshot",
        "type": "object"
      },
      "TierBudget": {
        "additionalProperties": false,
        "properties": {
          "minimum_samples": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Minimum Samples",
            "type": "integer"
          },
          "targets": {
            "items": {
              "$ref": "#/components/schemas/PercentileTarget"
            },
            "maxItems": 3,
            "minItems": 3,
            "title": "Targets",
            "type": "array"
          },
          "tier": {
            "enum": ["desktop_broadband", "laptop_wifi", "tablet_4g", "phone_3g"],
            "title": "Tier",
            "type": "string"
          }
        },
        "required": ["tier", "targets", "minimum_samples"],
        "title": "TierBudget",
        "type": "object"
      },
      "TierProfile": {
        "additionalProperties": false,
        "properties": {
          "degraded_count": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Degraded Count",
            "type": "integer"
          },
          "error_count": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Error Count",
            "type": "integer"
          },
          "observations": {
            "items": {
              "$ref": "#/components/schemas/PercentileObservation"
            },
            "maxItems": 3,
            "title": "Observations",
            "type": "array"
          },
          "samples": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Samples",
            "type": "integer"
          },
          "tier": {
            "enum": ["desktop_broadband", "laptop_wifi", "tablet_4g", "phone_3g"],
            "title": "Tier",
            "type": "string"
          },
          "unavailable_count": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Unavailable Count",
            "type": "integer"
          }
        },
        "required": [
          "tier",
          "samples",
          "observations",
          "error_count",
          "degraded_count",
          "unavailable_count"
        ],
        "title": "TierProfile",
        "type": "object"
      },
      "TimecodeAnchor": {
        "additionalProperties": false,
        "properties": {
          "asset_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Asset Sha256",
            "type": "string"
          },
          "end_ms": {
            "minimum": 0.0,
            "title": "End Ms",
            "type": "integer"
          },
          "kind": {
            "const": "timecode",
            "default": "timecode",
            "title": "Kind",
            "type": "string"
          },
          "start_ms": {
            "minimum": 0.0,
            "title": "Start Ms",
            "type": "integer"
          }
        },
        "required": ["asset_sha256", "start_ms", "end_ms"],
        "title": "TimecodeAnchor",
        "type": "object"
      },
      "TokenResponse": {
        "description": "JWT token pair returned on successful authentication.",
        "properties": {
          "access_token": {
            "title": "Access Token",
            "type": "string"
          },
          "expires_in": {
            "description": "Access token lifetime in seconds",
            "title": "Expires In",
            "type": "integer"
          },
          "refresh_token": {
            "title": "Refresh Token",
            "type": "string"
          },
          "token_type": {
            "default": "bearer",
            "title": "Token Type",
            "type": "string"
          }
        },
        "required": ["access_token", "refresh_token", "expires_in"],
        "title": "TokenResponse",
        "type": "object"
      },
      "ToolAllowance": {
        "additionalProperties": false,
        "description": "What the configuration asks for, before anything is intersected.",
        "properties": {
          "budget_minor_units": {
            "maximum": 10000000.0,
            "minimum": 1.0,
            "title": "Budget Minor Units",
            "type": "integer"
          },
          "escalation_role": {
            "enum": ["course_owner", "instructor", "support_lead"],
            "title": "Escalation Role",
            "type": "string"
          },
          "model_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Model Id",
            "type": "string"
          },
          "provider": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Provider",
            "type": "string"
          },
          "requested_tools": {
            "default": [],
            "items": {
              "enum": [
                "tool:read-source-revision",
                "tool:search-corpus",
                "tool:render-preview",
                "tool:speak",
                "tool:caption"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "title": "Requested Tools",
            "type": "array"
          },
          "retention": {
            "$ref": "#/components/schemas/RetentionSettings"
          }
        },
        "required": ["model_id", "provider", "budget_minor_units", "retention", "escalation_role"],
        "title": "ToolAllowance",
        "type": "object"
      },
      "ToolCallView": {
        "additionalProperties": false,
        "description": "One tool call as a viewer sees it: everything but the values.",
        "properties": {
          "call_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Call Id",
            "type": "string"
          },
          "cost_minor_units": {
            "minimum": 0.0,
            "title": "Cost Minor Units",
            "type": "integer"
          },
          "duration_ms": {
            "maximum": 3600000.0,
            "minimum": 0.0,
            "title": "Duration Ms",
            "type": "integer"
          },
          "error": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RedactedPayload"
              },
              {
                "type": "null"
              }
            ]
          },
          "inputs": {
            "$ref": "#/components/schemas/RedactedPayload"
          },
          "outputs": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/RedactedPayload"
              },
              {
                "type": "null"
              }
            ]
          },
          "purpose": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Purpose",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "status": {
            "enum": ["succeeded", "failed", "refused", "timed_out"],
            "title": "Status",
            "type": "string"
          },
          "tool_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Tool Id",
            "type": "string"
          },
          "tool_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Tool Version",
            "type": "string"
          }
        },
        "required": [
          "call_id",
          "tool_id",
          "tool_version",
          "purpose",
          "status",
          "started_at",
          "duration_ms",
          "cost_minor_units",
          "inputs"
        ],
        "title": "ToolCallView",
        "type": "object"
      },
      "ToolGrant": {
        "additionalProperties": false,
        "properties": {
          "ref": {
            "$ref": "#/components/schemas/MaterialRef"
          },
          "scopes": {
            "items": {
              "maxLength": 80,
              "pattern": "^[a-z][a-z0-9._:-]{1,79}$",
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Scopes",
            "type": "array"
          }
        },
        "required": ["ref", "scopes"],
        "title": "ToolGrant",
        "type": "object"
      },
      "TrainingBypassProbe": {
        "additionalProperties": false,
        "description": "One attempt to get material trained on that governance did not clear.",
        "properties": {
          "actor": {
            "enum": ["intake_alone", "curator_action", "unauthorized_role"],
            "title": "Actor",
            "type": "string"
          },
          "attempted": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Attempted",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "mechanism": {
            "enum": ["absent_field", "type_boundary", "derived_value", "quorum_check"],
            "title": "Mechanism",
            "type": "string"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refused": {
            "title": "Refused",
            "type": "boolean"
          },
          "verb": {
            "enum": ["admit", "train", "deanonymise", "contaminate", "withdraw"],
            "title": "Verb",
            "type": "string"
          }
        },
        "required": ["probe_id", "attempted", "refused", "verb", "actor", "mechanism", "detail"],
        "title": "TrainingBypassProbe",
        "type": "object"
      },
      "TrainingCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "registry",
              "eligibility",
              "minimisation",
              "quality",
              "ledger",
              "promotion",
              "withdrawal"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "TrainingCorpusCaseResult",
        "type": "object"
      },
      "TrainingCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "registry",
              "eligibility",
              "minimisation",
              "quality",
              "ledger",
              "promotion",
              "withdrawal"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "maximum": 100000.0,
            "minimum": 1.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "TrainingCorpusMetric",
        "type": "object"
      },
      "TrainingEvaluationReport": {
        "additionalProperties": false,
        "description": "Corpus outcomes, the minimisation matrix, and every bypass probe.",
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/TrainingCorpusCaseResult"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.19-training-intake-v1",
            "default": "metis-m6.19-training-intake-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_probe_refused": {
            "title": "Every Probe Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "type": "string"
            },
            "maxItems": 60,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/TrainingCorpusMetric"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "minimisation_matrix": {
            "items": {
              "$ref": "#/components/schemas/MinimisationCell"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Minimisation Matrix",
            "type": "array"
          },
          "probes": {
            "items": {
              "$ref": "#/components/schemas/TrainingBypassProbe"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Probes",
            "type": "array"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "cases",
          "metrics",
          "fixture_families",
          "probes",
          "every_probe_refused",
          "minimisation_matrix"
        ],
        "title": "TrainingEvaluationReport",
        "type": "object"
      },
      "TransitionBody": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "expected_revision": {
            "minimum": 1.0,
            "title": "Expected Revision",
            "type": "integer"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "to_state": {
            "enum": ["draft", "in_review", "approved", "published", "withdrawn"],
            "title": "To State",
            "type": "string"
          }
        },
        "required": ["to_state", "expected_revision", "idempotency_key", "detail"],
        "title": "TransitionBody",
        "type": "object"
      },
      "TranslationMatch": {
        "additionalProperties": false,
        "description": "One candidate, with everything that decides whether to take it.",
        "properties": {
          "band": {
            "enum": ["exact", "high", "fuzzy", "weak"],
            "title": "Band",
            "type": "string"
          },
          "context_match": {
            "title": "Context Match",
            "type": "boolean"
          },
          "entry_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Entry Id",
            "type": "string"
          },
          "origin": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Origin",
            "type": "string"
          },
          "origin_revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Origin Revision",
            "type": "string"
          },
          "rights": {
            "enum": [
              "owned",
              "licensed_redistributable",
              "licensed_internal_only",
              "learner_contributed",
              "unknown"
            ],
            "title": "Rights",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "target_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Target Text",
            "type": "string"
          }
        },
        "required": [
          "entry_id",
          "target_text",
          "score",
          "band",
          "context_match",
          "origin",
          "origin_revision",
          "rights"
        ],
        "title": "TranslationMatch",
        "type": "object"
      },
      "TranslationMemoryEntry": {
        "additionalProperties": false,
        "description": "One source/target pair somebody already approved, and its provenance.",
        "properties": {
          "entry_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Entry Id",
            "type": "string"
          },
          "kind": {
            "anyOf": [
              {
                "enum": [
                  "title",
                  "prose",
                  "stem",
                  "answer",
                  "distractor",
                  "rationale",
                  "rubric",
                  "interaction_label",
                  "alt_text",
                  "long_description",
                  "caption",
                  "transcript",
                  "voice_script",
                  "mathml",
                  "ssml",
                  "metadata",
                  "standards_label"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kind"
          },
          "origin": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Origin",
            "type": "string"
          },
          "origin_revision": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Origin Revision",
            "type": "string"
          },
          "owner": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Owner",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "rights": {
            "enum": [
              "owned",
              "licensed_redistributable",
              "licensed_internal_only",
              "learner_contributed",
              "unknown"
            ],
            "title": "Rights",
            "type": "string"
          },
          "source_locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Source Locale",
            "type": "string"
          },
          "source_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Source Text",
            "type": "string"
          },
          "target_locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Target Locale",
            "type": "string"
          },
          "target_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Target Text",
            "type": "string"
          },
          "visibility": {
            "default": "tenant",
            "enum": ["tenant", "shared"],
            "title": "Visibility",
            "type": "string"
          },
          "withdrawn_reason": {
            "anyOf": [
              {
                "maxLength": 400,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Withdrawn Reason"
          }
        },
        "required": [
          "entry_id",
          "source_locale",
          "target_locale",
          "source_text",
          "target_text",
          "origin",
          "origin_revision",
          "rights",
          "owner",
          "recorded_at"
        ],
        "title": "TranslationMemoryEntry",
        "type": "object"
      },
      "TranslationSuggestion": {
        "additionalProperties": false,
        "description": "What a translator is shown for one unit. Not a decision.",
        "properties": {
          "glossary": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/LocaleGlossaryTerm"
            },
            "title": "Glossary",
            "type": "array"
          },
          "matches": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TranslationMatch"
            },
            "title": "Matches",
            "type": "array"
          },
          "source_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Digest",
            "type": "string"
          },
          "target_locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Target Locale",
            "type": "string"
          },
          "unit_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Unit Id",
            "type": "string"
          },
          "withheld": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/WithheldMatch"
            },
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": ["unit_id", "target_locale", "source_digest"],
        "title": "TranslationSuggestion",
        "type": "object"
      },
      "TranslationUnit": {
        "additionalProperties": false,
        "description": "One segment, in one target locale.",
        "properties": {
          "binding": {
            "$ref": "#/components/schemas/UnitSourceBinding"
          },
          "element_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Element Id"
          },
          "field_path": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Field Path",
            "type": "string"
          },
          "kind": {
            "enum": [
              "title",
              "prose",
              "stem",
              "answer",
              "distractor",
              "rationale",
              "rubric",
              "interaction_label",
              "alt_text",
              "long_description",
              "caption",
              "transcript",
              "voice_script",
              "mathml",
              "ssml",
              "metadata",
              "standards_label"
            ],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Locale",
            "type": "string"
          },
          "origin": {
            "default": "none",
            "enum": ["human", "memory", "machine", "none"],
            "title": "Origin",
            "type": "string"
          },
          "reviewer": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewer"
          },
          "source_locale": {
            "maxLength": 16,
            "pattern": "^[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?$",
            "title": "Source Locale",
            "type": "string"
          },
          "source_text": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Source Text",
            "type": "string"
          },
          "status": {
            "default": "untranslated",
            "enum": [
              "untranslated",
              "machine",
              "draft",
              "in_review",
              "approved",
              "rejected",
              "stale"
            ],
            "title": "Status",
            "type": "string"
          },
          "target_text": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Text"
          },
          "translator": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Translator"
          },
          "unit_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Unit Id",
            "type": "string"
          },
          "updated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At"
          },
          "version": {
            "default": 1,
            "minimum": 1.0,
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "unit_id",
          "locale",
          "source_locale",
          "kind",
          "field_path",
          "source_text",
          "binding"
        ],
        "title": "TranslationUnit",
        "type": "object"
      },
      "TrendPoint": {
        "additionalProperties": false,
        "description": "One metric at one window, on one content revision.",
        "properties": {
          "content_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Revision Sha256",
            "type": "string"
          },
          "measured": {
            "$ref": "#/components/schemas/MeasuredValue"
          },
          "revision_changed_since_previous": {
            "title": "Revision Changed Since Previous",
            "type": "boolean"
          },
          "window": {
            "$ref": "#/components/schemas/AnalyticsWindow"
          }
        },
        "required": [
          "window",
          "content_revision_sha256",
          "measured",
          "revision_changed_since_previous"
        ],
        "title": "TrendPoint",
        "type": "object"
      },
      "TriageAction": {
        "additionalProperties": false,
        "description": "One decision about a capture that does not convert it.",
        "properties": {
          "action": {
            "enum": ["assign", "defer", "archive", "reject", "mark_duplicate"],
            "title": "Action",
            "type": "string"
          },
          "actor": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Actor",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "subject": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject"
          }
        },
        "required": ["action", "actor", "reason"],
        "title": "TriageAction",
        "type": "object"
      },
      "TriageAttribution": {
        "additionalProperties": false,
        "description": "Which rules did the clustering, and at which version.",
        "properties": {
          "method": {
            "const": "shared-target-revision-and-source-clustering-v1",
            "title": "Method",
            "type": "string"
          },
          "model_id": {
            "title": "Model Id",
            "type": "null"
          },
          "rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "rule_version": {
            "maxLength": 40,
            "minLength": 1,
            "title": "Rule Version",
            "type": "string"
          }
        },
        "required": ["rule_id", "rule_version", "method"],
        "title": "TriageAttribution",
        "type": "object"
      },
      "TutorBindingProjection": {
        "additionalProperties": false,
        "properties": {
          "binding": {
            "$ref": "#/components/schemas/TutorBindingResponse"
          },
          "revision_current": {
            "title": "Revision Current",
            "type": "boolean"
          }
        },
        "required": ["binding", "revision_current"],
        "title": "TutorBindingProjection",
        "type": "object"
      },
      "TutorBindingRequest": {
        "additionalProperties": false,
        "properties": {
          "catalogue": {
            "items": {
              "$ref": "#/components/schemas/MaterialRecord"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Catalogue",
            "type": "array"
          },
          "changes": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MaterialChange"
            },
            "maxItems": 64,
            "title": "Changes",
            "type": "array"
          },
          "configuration": {
            "$ref": "#/components/schemas/TutorConfigRevision"
          },
          "grant": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AuthorityGrant"
              },
              {
                "type": "null"
              }
            ]
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "prior_sessions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TutorSessionRecord"
            },
            "maxItems": 2000,
            "title": "Prior Sessions",
            "type": "array"
          },
          "proposed_revision": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TutorConfigRevision"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_version": {
            "const": "6.7.0",
            "default": "6.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "start_session_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Session Id"
          }
        },
        "required": ["idempotency_key", "configuration", "catalogue"],
        "title": "TutorBindingRequest",
        "type": "object"
      },
      "TutorBindingResponse": {
        "additionalProperties": false,
        "properties": {
          "activatable": {
            "title": "Activatable",
            "type": "boolean"
          },
          "activation": {
            "$ref": "#/components/schemas/BindingActivationDecision"
          },
          "authored_by": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Authored By",
            "type": "string"
          },
          "binding_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Binding Id",
            "type": "string"
          },
          "blast_radius": {
            "$ref": "#/components/schemas/BlastRadiusReport"
          },
          "blocking_reason_codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 64,
            "title": "Blocking Reason Codes",
            "type": "array"
          },
          "compatibility": {
            "items": {
              "$ref": "#/components/schemas/CompatibilityFinding"
            },
            "maxItems": 64,
            "title": "Compatibility",
            "type": "array"
          },
          "configuration": {
            "$ref": "#/components/schemas/TutorConfigRevision"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "engine": {
            "$ref": "#/components/schemas/BindingEngineWitness"
          },
          "idempotency_key": {
            "title": "Idempotency Key",
            "type": "string"
          },
          "migration": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MigrationRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "resolution": {
            "$ref": "#/components/schemas/ResolutionReport"
          },
          "schema_version": {
            "const": "6.7.0",
            "default": "6.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "session": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TutorSessionRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "binding_id",
          "idempotency_key",
          "configuration",
          "resolution",
          "compatibility",
          "activation",
          "blast_radius",
          "session",
          "migration",
          "activatable",
          "blocking_reason_codes",
          "engine",
          "request_sha256",
          "authored_by",
          "tenant_id",
          "created_at",
          "self_sha256"
        ],
        "title": "TutorBindingResponse",
        "type": "object"
      },
      "TutorBindingWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "bindings": {
            "items": {
              "$ref": "#/components/schemas/TutorBindingProjection"
            },
            "title": "Bindings",
            "type": "array"
          },
          "evaluation": {
            "$ref": "#/components/schemas/BindingEvaluationReport"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.7.0",
            "default": "6.7.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/BindingWorkspaceSummary"
          }
        },
        "required": ["generated_at", "summary", "evaluation", "bindings"],
        "title": "TutorBindingWorkspaceResponse",
        "type": "object"
      },
      "TutorConfigRevision": {
        "additionalProperties": false,
        "properties": {
          "author_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Author Id",
            "type": "string"
          },
          "authored_at": {
            "format": "date-time",
            "title": "Authored At",
            "type": "string"
          },
          "config_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Config Id",
            "type": "string"
          },
          "course": {
            "$ref": "#/components/schemas/MaterialRef"
          },
          "delivery": {
            "$ref": "#/components/schemas/DeliveryPolicy"
          },
          "hint_policy": {
            "$ref": "#/components/schemas/MaterialRef"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MaterialRef"
            },
            "maxItems": 200,
            "title": "Items",
            "type": "array"
          },
          "lifecycle": {
            "enum": ["draft", "in_review", "approved", "active", "deactivated"],
            "title": "Lifecycle",
            "type": "string"
          },
          "pedagogy": {
            "$ref": "#/components/schemas/MaterialRef"
          },
          "persona": {
            "$ref": "#/components/schemas/MaterialRef"
          },
          "prompt": {
            "$ref": "#/components/schemas/PromptTemplate"
          },
          "revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "sources": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MaterialRef"
            },
            "maxItems": 64,
            "title": "Sources",
            "type": "array"
          },
          "title": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Title",
            "type": "string"
          },
          "tools": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ToolGrant"
            },
            "maxItems": 32,
            "title": "Tools",
            "type": "array"
          },
          "version": {
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$",
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "config_id",
          "revision_id",
          "revision_sha256",
          "version",
          "title",
          "author_id",
          "lifecycle",
          "persona",
          "pedagogy",
          "hint_policy",
          "prompt",
          "course",
          "delivery",
          "authored_at"
        ],
        "title": "TutorConfigRevision",
        "type": "object"
      },
      "TutorDimensionVerdict": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "dimension": {
            "enum": [
              "support",
              "sufficiency",
              "faithfulness",
              "contradiction",
              "currency",
              "hint_ladder",
              "scaffolding",
              "direct_answer",
              "learner_agency",
              "cognitive_demand",
              "tone",
              "accessibility",
              "assessment_mode"
            ],
            "title": "Dimension",
            "type": "string"
          },
          "state": {
            "enum": ["pass", "block", "manual_review", "abstain", "not_applicable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": ["dimension", "state", "detail"],
        "title": "TutorDimensionVerdict",
        "type": "object"
      },
      "TutorEmbodimentEvaluationResponse": {
        "description": "Persisted embodiment-quality evaluation for a tutoring session.",
        "properties": {
          "delivery_mode": {
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Delivery Mode",
            "type": "string"
          },
          "embodiment_fidelity": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "findings": {
            "items": {
              "type": "string"
            },
            "title": "Findings",
            "type": "array"
          },
          "overall_score": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Overall Score",
            "type": "number"
          },
          "recovery_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "representation_id": {
            "title": "Representation Id",
            "type": "string"
          },
          "representation_kind": {
            "enum": ["text_tutor", "live_voice_tutor", "live_avatar_tutor"],
            "title": "Representation Kind",
            "type": "string"
          },
          "requested_delivery_mode": {
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Requested Delivery Mode",
            "type": "string"
          },
          "research_basis": {
            "items": {
              "type": "string"
            },
            "title": "Research Basis",
            "type": "array"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "speech_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          },
          "status": {
            "enum": ["pass", "review", "fail"],
            "title": "Status",
            "type": "string"
          },
          "sync_quality": {
            "$ref": "#/components/schemas/MediaEvaluationMetricResponse"
          }
        },
        "required": [
          "session_id",
          "delivery_mode",
          "requested_delivery_mode",
          "representation_id",
          "representation_kind",
          "overall_score",
          "speech_quality",
          "sync_quality",
          "embodiment_fidelity",
          "recovery_quality",
          "status",
          "evaluated_at"
        ],
        "title": "TutorEmbodimentEvaluationResponse",
        "type": "object"
      },
      "TutorHumanReview": {
        "additionalProperties": false,
        "description": "Appended beside the verdict. It cannot turn a block into a release.",
        "properties": {
          "action": {
            "enum": ["accept_policy_verdict", "request_regeneration", "defer"],
            "title": "Action",
            "type": "string"
          },
          "note": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Note",
            "type": "string"
          },
          "overrides_policy_verdict": {
            "const": false,
            "default": false,
            "title": "Overrides Policy Verdict",
            "type": "boolean"
          },
          "review_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Review Id",
            "type": "string"
          },
          "reviewed_at": {
            "format": "date-time",
            "title": "Reviewed At",
            "type": "string"
          },
          "reviewer_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Reviewer Id",
            "type": "string"
          },
          "reviewer_role": {
            "const": "admin",
            "default": "admin",
            "title": "Reviewer Role",
            "type": "string"
          }
        },
        "required": ["review_id", "reviewer_id", "action", "note", "reviewed_at"],
        "title": "TutorHumanReview",
        "type": "object"
      },
      "TutorPersona": {
        "additionalProperties": false,
        "description": "Who the tutor is, versioned, and what it says about itself.",
        "properties": {
          "applicability": {
            "$ref": "#/components/schemas/Applicability"
          },
          "disclosure": {
            "enum": ["states_it_is_a_tutor", "states_it_is_an_ai_tutor"],
            "title": "Disclosure",
            "type": "string"
          },
          "display_name": {
            "maxLength": 80,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "language": {
            "pattern": "^[a-z]{2}(-[A-Z]{2})?$",
            "title": "Language",
            "type": "string"
          },
          "persona_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Persona Id",
            "type": "string"
          },
          "persona_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Persona Version",
            "type": "string"
          },
          "tone": {
            "enum": ["warm", "neutral", "brisk"],
            "title": "Tone",
            "type": "string"
          }
        },
        "required": [
          "persona_id",
          "persona_version",
          "display_name",
          "language",
          "tone",
          "disclosure",
          "applicability"
        ],
        "title": "TutorPersona",
        "type": "object"
      },
      "TutorPolicyVerdict": {
        "additionalProperties": false,
        "description": "The worst required dimension, never a mean of the dimensions.",
        "properties": {
          "averaged": {
            "const": false,
            "default": false,
            "title": "Averaged",
            "type": "boolean"
          },
          "determined_by": {
            "enum": [
              "support",
              "sufficiency",
              "faithfulness",
              "contradiction",
              "currency",
              "hint_ladder",
              "scaffolding",
              "direct_answer",
              "learner_agency",
              "cognitive_demand",
              "tone",
              "accessibility",
              "assessment_mode"
            ],
            "title": "Determined By",
            "type": "string"
          },
          "dimensions": {
            "items": {
              "$ref": "#/components/schemas/TutorDimensionVerdict"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Dimensions",
            "type": "array"
          },
          "outcome": {
            "enum": ["pass", "block", "manual_review"],
            "title": "Outcome",
            "type": "string"
          }
        },
        "required": ["dimensions", "outcome", "determined_by"],
        "title": "TutorPolicyVerdict",
        "type": "object"
      },
      "TutorPreviewProjection": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "preview_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Preview Id",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "response": {
            "$ref": "#/components/schemas/TutorPreviewResponse"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["preview_id", "tenant_id", "created_at", "record_sha256", "response"],
        "title": "TutorPreviewProjection",
        "type": "object"
      },
      "TutorPreviewRequest": {
        "additionalProperties": false,
        "description": "What a caller asks to preview. There is no field for a real learner.",
        "properties": {
          "accessibility_mode": {
            "default": "default",
            "enum": [
              "default",
              "keyboard_only",
              "screen_reader",
              "high_contrast",
              "captions_required",
              "extended_time"
            ],
            "title": "Accessibility Mode",
            "type": "string"
          },
          "allowance": {
            "$ref": "#/components/schemas/ToolAllowance"
          },
          "bounds": {
            "$ref": "#/components/schemas/PedagogyBounds"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "learner": {
            "$ref": "#/components/schemas/SyntheticLearnerState"
          },
          "modality": {
            "enum": ["text", "voice"],
            "title": "Modality",
            "type": "string"
          },
          "persona": {
            "$ref": "#/components/schemas/TutorPersona"
          }
        },
        "required": ["idempotency_key", "persona", "bounds", "allowance", "learner", "modality"],
        "title": "TutorPreviewRequest",
        "type": "object"
      },
      "TutorPreviewResponse": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "items": {
              "$ref": "#/components/schemas/AccessibilityBehaviour"
            },
            "maxItems": 6,
            "minItems": 1,
            "title": "Accessibility",
            "type": "array"
          },
          "bounds": {
            "$ref": "#/components/schemas/PedagogyBounds"
          },
          "escalation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EscalationRecord"
              },
              {
                "type": "null"
              }
            ]
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "grant": {
            "$ref": "#/components/schemas/EffectiveGrant"
          },
          "learner": {
            "$ref": "#/components/schemas/SyntheticLearnerState"
          },
          "modality_checks": {
            "items": {
              "$ref": "#/components/schemas/ModalityCheck"
            },
            "maxItems": 24,
            "minItems": 1,
            "title": "Modality Checks",
            "type": "array"
          },
          "persona": {
            "$ref": "#/components/schemas/TutorPersona"
          },
          "preview_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Preview Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.17.0",
            "default": "6.17.0",
            "title": "Schema Version",
            "type": "string"
          },
          "summary": {
            "$ref": "#/components/schemas/SessionSummary"
          },
          "text": {
            "$ref": "#/components/schemas/TextPreview"
          },
          "voice": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VoicePreview"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "preview_id",
          "generated_at",
          "persona",
          "bounds",
          "grant",
          "learner",
          "text",
          "accessibility",
          "summary",
          "modality_checks"
        ],
        "title": "TutorPreviewResponse",
        "type": "object"
      },
      "TutorResponseClaim": {
        "additionalProperties": false,
        "description": "One classified segment of the tutor turn and the revisions it cites.",
        "properties": {
          "citations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ClaimCitation"
            },
            "maxItems": 16,
            "title": "Citations",
            "type": "array"
          },
          "claim_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Claim Id",
            "type": "string"
          },
          "kind": {
            "enum": ["factual", "procedural", "hint", "pedagogical", "motivational", "safety"],
            "title": "Kind",
            "type": "string"
          },
          "proposition": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Proposition",
            "type": "string"
          },
          "rule_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Rule Id",
            "type": "string"
          },
          "span": {
            "$ref": "#/components/schemas/TutorResponseSpan"
          }
        },
        "required": ["claim_id", "kind", "rule_id", "span", "proposition"],
        "title": "TutorResponseClaim",
        "type": "object"
      },
      "TutorResponseCorpusCaseResult": {
        "additionalProperties": false,
        "properties": {
          "case_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Case Id",
            "type": "string"
          },
          "dimension": {
            "enum": ["decomposition", "grounding", "pedagogy", "separation", "enforcement"],
            "title": "Dimension",
            "type": "string"
          },
          "expected_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Expected Code",
            "type": "string"
          },
          "expected_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Expected Outcome",
            "type": "string"
          },
          "fixture_family": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Fixture Family",
            "type": "string"
          },
          "matched": {
            "title": "Matched",
            "type": "boolean"
          },
          "observed_code": {
            "maxLength": 160,
            "minLength": 1,
            "title": "Observed Code",
            "type": "string"
          },
          "observed_outcome": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Observed Outcome",
            "type": "string"
          }
        },
        "required": [
          "case_id",
          "fixture_family",
          "dimension",
          "expected_outcome",
          "observed_outcome",
          "expected_code",
          "observed_code",
          "matched"
        ],
        "title": "TutorResponseCorpusCaseResult",
        "type": "object"
      },
      "TutorResponseCorpusMetric": {
        "additionalProperties": false,
        "properties": {
          "confidence_level": {
            "const": "0.95",
            "default": "0.95",
            "title": "Confidence Level",
            "type": "string"
          },
          "dimension": {
            "enum": ["decomposition", "grounding", "pedagogy", "separation", "enforcement"],
            "title": "Dimension",
            "type": "string"
          },
          "match_rate": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Match Rate",
            "type": "number"
          },
          "matched": {
            "minimum": 0.0,
            "title": "Matched",
            "type": "integer"
          },
          "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
          },
          "uncertainty_method": {
            "const": "wilson_score",
            "default": "wilson_score",
            "title": "Uncertainty Method",
            "type": "string"
          },
          "wilson_high": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson High",
            "type": "number"
          },
          "wilson_low": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Wilson Low",
            "type": "number"
          }
        },
        "required": ["dimension", "matched", "total", "match_rate", "wilson_low", "wilson_high"],
        "title": "TutorResponseCorpusMetric",
        "type": "object"
      },
      "TutorResponseDecomposition": {
        "additionalProperties": false,
        "description": "Claims that reconstruct the tutor turn exactly \u2014 no gap, overlap or loss.",
        "properties": {
          "claims": {
            "items": {
              "$ref": "#/components/schemas/TutorResponseClaim"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Claims",
            "type": "array"
          },
          "reconstructs_response": {
            "const": true,
            "default": true,
            "title": "Reconstructs Response",
            "type": "boolean"
          },
          "response_length": {
            "exclusiveMinimum": 0.0,
            "title": "Response Length",
            "type": "integer"
          },
          "response_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Sha256",
            "type": "string"
          },
          "unmatched_default_count": {
            "minimum": 0.0,
            "title": "Unmatched Default Count",
            "type": "integer"
          }
        },
        "required": ["response_sha256", "response_length", "claims", "unmatched_default_count"],
        "title": "TutorResponseDecomposition",
        "type": "object"
      },
      "TutorResponseEngineWitness": {
        "additionalProperties": false,
        "properties": {
          "cognitive_demand_method": {
            "const": "anderson-krathwohl-2001-verb-table-v1",
            "title": "Cognitive Demand Method",
            "type": "string"
          },
          "currency_method": {
            "const": "delegated-to-m6.7-resolve-material-v1",
            "title": "Currency Method",
            "type": "string"
          },
          "decomposition_method": {
            "const": "contiguous-span-partition-v1",
            "title": "Decomposition Method",
            "type": "string"
          },
          "engine_id": {
            "const": "metis-tutor-response-grounding",
            "title": "Engine Id",
            "type": "string"
          },
          "engine_version": {
            "const": "6.8.0",
            "title": "Engine Version",
            "type": "string"
          },
          "readability_method": {
            "const": "flesch-kincaid-grade-level-v1",
            "title": "Readability Method",
            "type": "string"
          },
          "rules_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Rules Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "6.8.0",
            "default": "6.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "support_method": {
            "const": "normalized-lexical-containment-v1",
            "title": "Support Method",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/GroundingToolWitness"
            },
            "maxItems": 20,
            "minItems": 3,
            "title": "Tools",
            "type": "array"
          },
          "unsupported_behavior": {
            "const": "abstain_and_escalate_rather_than_assume_support",
            "title": "Unsupported Behavior",
            "type": "string"
          }
        },
        "required": [
          "engine_id",
          "engine_version",
          "decomposition_method",
          "support_method",
          "currency_method",
          "readability_method",
          "cognitive_demand_method",
          "tools",
          "rules_sha256",
          "unsupported_behavior"
        ],
        "title": "TutorResponseEngineWitness",
        "type": "object"
      },
      "TutorResponseEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "cases": {
            "items": {
              "$ref": "#/components/schemas/TutorResponseCorpusCaseResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Cases",
            "type": "array"
          },
          "corpus_id": {
            "const": "metis-m6.8-tutor-response-grounding-v1",
            "title": "Corpus Id",
            "type": "string"
          },
          "every_ungrounded_presentation_refused": {
            "title": "Every Ungrounded Presentation Refused",
            "type": "boolean"
          },
          "fixture_families": {
            "items": {
              "maxLength": 160,
              "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Fixture Families",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "metrics": {
            "items": {
              "$ref": "#/components/schemas/TutorResponseCorpusMetric"
            },
            "maxItems": 10,
            "minItems": 1,
            "title": "Metrics",
            "type": "array"
          },
          "schema_version": {
            "const": "6.8.0",
            "default": "6.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "ungrounded_presentation_probes": {
            "items": {
              "$ref": "#/components/schemas/UngroundedPresentationProbe"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Ungrounded Presentation Probes",
            "type": "array"
          },
          "witness": {
            "$ref": "#/components/schemas/TutorResponseEngineWitness"
          }
        },
        "required": [
          "corpus_id",
          "generated_at",
          "witness",
          "cases",
          "metrics",
          "fixture_families",
          "ungrounded_presentation_probes",
          "every_ungrounded_presentation_refused"
        ],
        "title": "TutorResponseEvaluationReport",
        "type": "object"
      },
      "TutorResponseEvaluationRequest": {
        "additionalProperties": false,
        "properties": {
          "assessment": {
            "$ref": "#/components/schemas/AssessmentContext"
          },
          "catalogue": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MaterialRecord"
            },
            "maxItems": 400,
            "title": "Catalogue",
            "type": "array"
          },
          "idempotency_key": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Idempotency Key",
            "type": "string"
          },
          "policy": {
            "$ref": "#/components/schemas/PedagogyPolicy"
          },
          "turn": {
            "$ref": "#/components/schemas/TutorTurn"
          }
        },
        "required": ["idempotency_key", "turn", "policy", "assessment"],
        "title": "TutorResponseEvaluationRequest",
        "type": "object"
      },
      "TutorResponseEvaluationResponse": {
        "additionalProperties": false,
        "description": "Raw evaluator output, the verdict, and enforcement \u2014 each kept separate.",
        "properties": {
          "citation_currency": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CitationCurrency"
            },
            "maxItems": 200,
            "title": "Citation Currency",
            "type": "array"
          },
          "claim_grounding": {
            "items": {
              "$ref": "#/components/schemas/ClaimGroundingResult"
            },
            "maxItems": 400,
            "minItems": 1,
            "title": "Claim Grounding",
            "type": "array"
          },
          "decomposition": {
            "$ref": "#/components/schemas/TutorResponseDecomposition"
          },
          "enforcement": {
            "$ref": "#/components/schemas/EnforcementDecision"
          },
          "evaluated_at": {
            "format": "date-time",
            "title": "Evaluated At",
            "type": "string"
          },
          "evaluation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluation Id",
            "type": "string"
          },
          "evaluator_errors": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/EvaluatorError"
            },
            "maxItems": 200,
            "title": "Evaluator Errors",
            "type": "array"
          },
          "measurement": {
            "$ref": "#/components/schemas/PedagogyMeasurement"
          },
          "pedagogy_findings": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PedagogyFinding"
            },
            "maxItems": 200,
            "title": "Pedagogy Findings",
            "type": "array"
          },
          "policy_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Policy Id",
            "type": "string"
          },
          "policy_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Policy Revision Sha256",
            "type": "string"
          },
          "policy_verdict": {
            "$ref": "#/components/schemas/TutorPolicyVerdict"
          },
          "raw_contradiction": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RawContradictionResult"
            },
            "maxItems": 400,
            "title": "Raw Contradiction",
            "type": "array"
          },
          "raw_faithfulness": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RawFaithfulnessResult"
            },
            "maxItems": 800,
            "title": "Raw Faithfulness",
            "type": "array"
          },
          "raw_sufficiency": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RawSufficiencyResult"
            },
            "maxItems": 800,
            "title": "Raw Sufficiency",
            "type": "array"
          },
          "raw_support": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RawSupportResult"
            },
            "maxItems": 800,
            "title": "Raw Support",
            "type": "array"
          },
          "schema_version": {
            "const": "6.8.0",
            "default": "6.8.0",
            "title": "Schema Version",
            "type": "string"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "turn_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Turn Id",
            "type": "string"
          },
          "witness": {
            "$ref": "#/components/schemas/TutorResponseEngineWitness"
          }
        },
        "required": [
          "evaluation_id",
          "turn_id",
          "session_id",
          "policy_id",
          "policy_revision_sha256",
          "evaluated_at",
          "witness",
          "decomposition",
          "claim_grounding",
          "measurement",
          "policy_verdict",
          "enforcement"
        ],
        "title": "TutorResponseEvaluationResponse",
        "type": "object"
      },
      "TutorResponseProjection": {
        "additionalProperties": false,
        "description": "One stored verdict joined to the reviews appended beside it.",
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "enforced_action": {
            "enum": ["release", "redact", "regenerate", "block", "escalate"],
            "title": "Enforced Action",
            "type": "string"
          },
          "evaluation": {
            "$ref": "#/components/schemas/TutorResponseEvaluationResponse"
          },
          "evaluation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluation Id",
            "type": "string"
          },
          "outcome_after_review": {
            "enum": ["pass", "block", "manual_review"],
            "title": "Outcome After Review",
            "type": "string"
          },
          "record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Record Sha256",
            "type": "string"
          },
          "reviews": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TutorHumanReview"
            },
            "maxItems": 50,
            "title": "Reviews",
            "type": "array"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          },
          "turn_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Turn Id",
            "type": "string"
          }
        },
        "required": [
          "evaluation_id",
          "turn_id",
          "session_id",
          "tenant_id",
          "created_at",
          "record_sha256",
          "evaluation",
          "enforced_action",
          "outcome_after_review"
        ],
        "title": "TutorResponseProjection",
        "type": "object"
      },
      "TutorResponseReviewRequest": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["accept_policy_verdict", "request_regeneration", "defer"],
            "title": "Action",
            "type": "string"
          },
          "note": {
            "maxLength": 2000,
            "minLength": 10,
            "title": "Note",
            "type": "string"
          }
        },
        "required": ["action", "note"],
        "title": "TutorResponseReviewRequest",
        "type": "object"
      },
      "TutorResponseSpan": {
        "additionalProperties": false,
        "description": "A half-open character range of the tutor turn, bound to its exact text.",
        "properties": {
          "end_char": {
            "exclusiveMinimum": 0.0,
            "title": "End Char",
            "type": "integer"
          },
          "exact_text": {
            "maxLength": 8000,
            "minLength": 1,
            "title": "Exact Text",
            "type": "string"
          },
          "exact_text_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Exact Text Sha256",
            "type": "string"
          },
          "start_char": {
            "minimum": 0.0,
            "title": "Start Char",
            "type": "integer"
          }
        },
        "required": ["start_char", "end_char", "exact_text", "exact_text_sha256"],
        "title": "TutorResponseSpan",
        "type": "object"
      },
      "TutorResponseWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "blocked_count": {
            "minimum": 0.0,
            "title": "Blocked Count",
            "type": "integer"
          },
          "evaluation": {
            "$ref": "#/components/schemas/TutorResponseEvaluationReport"
          },
          "evaluation_count": {
            "minimum": 0.0,
            "title": "Evaluation Count",
            "type": "integer"
          },
          "evaluations": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TutorResponseWorkspaceSummary"
            },
            "maxItems": 500,
            "title": "Evaluations",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "manual_review_count": {
            "minimum": 0.0,
            "title": "Manual Review Count",
            "type": "integer"
          },
          "schema_version": {
            "const": "6.8.0",
            "default": "6.8.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": [
          "generated_at",
          "evaluation",
          "evaluation_count",
          "blocked_count",
          "manual_review_count"
        ],
        "title": "TutorResponseWorkspaceResponse",
        "type": "object"
      },
      "TutorResponseWorkspaceSummary": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": ["release", "redact", "regenerate", "block", "escalate"],
            "title": "Action",
            "type": "string"
          },
          "blocking_pedagogy_finding_count": {
            "minimum": 0.0,
            "title": "Blocking Pedagogy Finding Count",
            "type": "integer"
          },
          "claim_count": {
            "minimum": 1.0,
            "title": "Claim Count",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "evaluation_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Evaluation Id",
            "type": "string"
          },
          "every_presented_claim_is_grounded": {
            "title": "Every Presented Claim Is Grounded",
            "type": "boolean"
          },
          "outcome": {
            "enum": ["pass", "block", "manual_review"],
            "title": "Outcome",
            "type": "string"
          },
          "presented_claim_count": {
            "minimum": 0.0,
            "title": "Presented Claim Count",
            "type": "integer"
          },
          "turn_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Turn Id",
            "type": "string"
          },
          "ungrounded_claim_count": {
            "minimum": 0.0,
            "title": "Ungrounded Claim Count",
            "type": "integer"
          }
        },
        "required": [
          "evaluation_id",
          "turn_id",
          "created_at",
          "outcome",
          "action",
          "claim_count",
          "ungrounded_claim_count",
          "blocking_pedagogy_finding_count",
          "presented_claim_count",
          "every_presented_claim_is_grounded"
        ],
        "title": "TutorResponseWorkspaceSummary",
        "type": "object"
      },
      "TutorSessionRecord": {
        "additionalProperties": false,
        "description": "Append-only. A migration mints a new revision; it never edits this.",
        "properties": {
          "config_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Config Id",
            "type": "string"
          },
          "config_revision_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Config Revision Id",
            "type": "string"
          },
          "config_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Revision Sha256",
            "type": "string"
          },
          "effective_materials": {
            "items": {
              "$ref": "#/components/schemas/EffectiveMaterial"
            },
            "maxItems": 400,
            "title": "Effective Materials",
            "type": "array"
          },
          "refusal_detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refusal Detail"
          },
          "rewritten_by_migration": {
            "const": false,
            "default": false,
            "title": "Rewritten By Migration",
            "type": "boolean"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "started_at": {
            "format": "date-time",
            "title": "Started At",
            "type": "string"
          },
          "state": {
            "enum": ["started", "refused_material_does_not_resolve", "refused_not_activatable"],
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "config_id",
          "config_revision_id",
          "config_revision_sha256",
          "started_at",
          "state",
          "refusal_detail",
          "effective_materials"
        ],
        "title": "TutorSessionRecord",
        "type": "object"
      },
      "TutorTurn": {
        "additionalProperties": false,
        "description": "The learner prompt and the tutor turn to be evaluated.",
        "properties": {
          "citation_anchors": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/CitationAnchor"
            },
            "maxItems": 200,
            "title": "Citation Anchors",
            "type": "array"
          },
          "config_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Revision Sha256",
            "type": "string"
          },
          "learner_message": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Learner Message",
            "type": "string"
          },
          "media_references": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/MediaReference"
            },
            "maxItems": 32,
            "title": "Media References",
            "type": "array"
          },
          "response_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Response Sha256",
            "type": "string"
          },
          "response_text": {
            "maxLength": 40000,
            "minLength": 1,
            "title": "Response Text",
            "type": "string"
          },
          "session_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Session Id",
            "type": "string"
          },
          "turn_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Turn Id",
            "type": "string"
          }
        },
        "required": [
          "turn_id",
          "session_id",
          "config_revision_sha256",
          "learner_message",
          "response_text",
          "response_sha256"
        ],
        "title": "TutorTurn",
        "type": "object"
      },
      "TutoringDeliveryFallbackDisclosureResponse": {
        "description": "Learner-visible disclosure for one delivery fallback stage.",
        "properties": {
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "message": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Message",
            "type": "string"
          },
          "mode": {
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Mode",
            "type": "string"
          },
          "status": {
            "enum": ["active", "fallback_active", "unavailable", "standby"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["mode", "status", "label", "message"],
        "title": "TutoringDeliveryFallbackDisclosureResponse",
        "type": "object"
      },
      "TutoringDeliveryFallbackResponse": {
        "description": "Resolved tutoring delivery path after runtime fallback evaluation.",
        "properties": {
          "active_mode": {
            "default": "text",
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Active Mode",
            "type": "string"
          },
          "evaluated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluated At"
          },
          "fallback_chain": {
            "items": {
              "enum": ["text", "live_voice", "live_avatar"],
              "type": "string"
            },
            "title": "Fallback Chain",
            "type": "array"
          },
          "fallback_disclosures": {
            "items": {
              "$ref": "#/components/schemas/TutoringDeliveryFallbackDisclosureResponse"
            },
            "title": "Fallback Disclosures",
            "type": "array"
          },
          "fidelity_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fidelity Threshold"
          },
          "latency_budget_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latency Budget Ms"
          },
          "measured_fidelity": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measured Fidelity"
          },
          "measured_latency_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measured Latency Ms"
          },
          "reason": {
            "anyOf": [
              {
                "enum": [
                  "avatar-runtime-unavailable",
                  "avatar-latency-budget-exceeded",
                  "avatar-fidelity-budget-failed",
                  "voice-runtime-unavailable",
                  "voice-latency-budget-exceeded",
                  "voice-fidelity-budget-failed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "requested_mode": {
            "default": "text",
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Requested Mode",
            "type": "string"
          },
          "state": {
            "default": "native",
            "enum": ["native", "fallback"],
            "title": "State",
            "type": "string"
          },
          "summary": {
            "default": "Text tutoring is active for this session.",
            "title": "Summary",
            "type": "string"
          }
        },
        "title": "TutoringDeliveryFallbackResponse",
        "type": "object"
      },
      "TutoringDeliveryHealthUpdate": {
        "description": "Runtime health signals used to refresh tutoring fallback state.",
        "properties": {
          "avatar_fidelity": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Fidelity"
          },
          "avatar_latency_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Latency Ms"
          },
          "avatar_runtime_available": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Runtime Available"
          },
          "voice_fidelity": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Fidelity"
          },
          "voice_latency_ms": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Latency Ms"
          },
          "voice_runtime_available": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Runtime Available"
          }
        },
        "title": "TutoringDeliveryHealthUpdate",
        "type": "object"
      },
      "TutoringLiveVoiceAudioConfigResponse": {
        "description": "Audio transport settings for the Psyche realtime voice bridge.",
        "properties": {
          "automatic_gain_control": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Automatic Gain Control"
          },
          "channels": {
            "default": 1,
            "minimum": 1.0,
            "title": "Channels",
            "type": "integer"
          },
          "codec": {
            "title": "Codec",
            "type": "string"
          },
          "echo_cancellation": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Echo Cancellation"
          },
          "noise_suppression": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Noise Suppression"
          },
          "sample_rate_hz": {
            "minimum": 8000.0,
            "title": "Sample Rate Hz",
            "type": "integer"
          }
        },
        "required": ["codec", "sample_rate_hz"],
        "title": "TutoringLiveVoiceAudioConfigResponse",
        "type": "object"
      },
      "TutoringLiveVoiceClientConfigResponse": {
        "description": "Client handshake settings for the Psyche realtime voice bridge.",
        "properties": {
          "event_source": {
            "enum": ["psyche-openai-realtime", "psyche-local-realtime", "psyche-custom-realtime"],
            "title": "Event Source",
            "type": "string"
          },
          "input_audio": {
            "$ref": "#/components/schemas/TutoringLiveVoiceAudioConfigResponse"
          },
          "output_audio": {
            "$ref": "#/components/schemas/TutoringLiveVoiceAudioConfigResponse"
          },
          "protocol": {
            "const": "websocket",
            "default": "websocket",
            "title": "Protocol",
            "type": "string"
          },
          "transcript": {
            "$ref": "#/components/schemas/TutoringLiveVoiceTranscriptConfigResponse"
          },
          "vad": {
            "$ref": "#/components/schemas/TutoringLiveVoiceVadConfigResponse"
          },
          "websocket_url": {
            "title": "Websocket Url",
            "type": "string"
          }
        },
        "required": [
          "websocket_url",
          "event_source",
          "input_audio",
          "output_audio",
          "vad",
          "transcript"
        ],
        "title": "TutoringLiveVoiceClientConfigResponse",
        "type": "object"
      },
      "TutoringLiveVoiceConfig": {
        "description": "Live voice tutoring configuration.",
        "properties": {
          "preferred_language": {
            "default": "en",
            "maxLength": 32,
            "minLength": 2,
            "title": "Preferred Language",
            "type": "string"
          },
          "session_duration_minutes": {
            "default": 30,
            "maximum": 120.0,
            "minimum": 5.0,
            "title": "Session Duration Minutes",
            "type": "integer"
          },
          "transcript_mode": {
            "default": "captions_and_transcript",
            "enum": ["captions", "captions_and_transcript"],
            "title": "Transcript Mode",
            "type": "string"
          },
          "voice_pack_id": {
            "default": "instant-tutor-voice-pack",
            "maxLength": 255,
            "minLength": 1,
            "title": "Voice Pack Id",
            "type": "string"
          }
        },
        "title": "TutoringLiveVoiceConfig",
        "type": "object"
      },
      "TutoringLiveVoiceResumeRequest": {
        "description": "Resume a paused or interrupted live voice tutoring runtime.",
        "properties": {
          "reason": {
            "default": "manual",
            "enum": ["manual", "network-recovery", "learner-return"],
            "title": "Reason",
            "type": "string"
          }
        },
        "title": "TutoringLiveVoiceResumeRequest",
        "type": "object"
      },
      "TutoringLiveVoiceRuntimeEvent": {
        "description": "Incremental runtime signal from the Psyche voice bridge.",
        "properties": {
          "event_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Event At"
          },
          "event_type": {
            "enum": [
              "learner_speech_started",
              "learner_speech_stopped",
              "tutor_response_started",
              "tutor_response_stopped",
              "interruption_detected",
              "connection_lost",
              "session_paused",
              "session_resumed",
              "partial_transcript",
              "final_transcript"
            ],
            "title": "Event Type",
            "type": "string"
          },
          "speaker": {
            "anyOf": [
              {
                "enum": ["learner", "tutor", "system"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Speaker"
          },
          "transcript_delta": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transcript Delta"
          }
        },
        "required": ["event_type"],
        "title": "TutoringLiveVoiceRuntimeEvent",
        "type": "object"
      },
      "TutoringLiveVoiceRuntimeResponse": {
        "description": "Provisioned live voice runtime details for a tutoring session.",
        "properties": {
          "active_speaker": {
            "anyOf": [
              {
                "enum": ["learner", "tutor", "system"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active Speaker"
          },
          "client_config": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TutoringLiveVoiceClientConfigResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "connect_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Connect Url"
          },
          "enabled": {
            "default": false,
            "title": "Enabled",
            "type": "boolean"
          },
          "event_log": {
            "items": {
              "$ref": "#/components/schemas/TutoringPsycheRuntimeEventResponse"
            },
            "title": "Event Log",
            "type": "array"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "interruption_count": {
            "default": 0,
            "minimum": 0.0,
            "title": "Interruption Count",
            "type": "integer"
          },
          "interruption_recovery_state": {
            "default": "stable",
            "enum": ["stable", "recovering", "resume_ready"],
            "title": "Interruption Recovery State",
            "type": "string"
          },
          "last_interruption_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Interruption At"
          },
          "last_provisioned_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Provisioned At"
          },
          "last_transcript_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Transcript At"
          },
          "mode_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mode Summary"
          },
          "partial_transcript": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Partial Transcript"
          },
          "preferred_language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preferred Language"
          },
          "resume_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resume Token"
          },
          "resume_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resume Url"
          },
          "runtime_provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Runtime Provider"
          },
          "runtime_status": {
            "default": "offline",
            "enum": ["online", "degraded", "offline"],
            "title": "Runtime Status",
            "type": "string"
          },
          "runtime_tier": {
            "const": "realtime_voice_session",
            "default": "realtime_voice_session",
            "title": "Runtime Tier",
            "type": "string"
          },
          "session_duration_minutes": {
            "default": 30,
            "maximum": 120.0,
            "minimum": 5.0,
            "title": "Session Duration Minutes",
            "type": "integer"
          },
          "session_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Token"
          },
          "stream_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stream Id"
          },
          "supports_barge_in": {
            "default": true,
            "title": "Supports Barge In",
            "type": "boolean"
          },
          "supports_partial_transcripts": {
            "default": true,
            "title": "Supports Partial Transcripts",
            "type": "boolean"
          },
          "supports_session_resume": {
            "default": true,
            "title": "Supports Session Resume",
            "type": "boolean"
          },
          "supports_text_fallback": {
            "default": true,
            "title": "Supports Text Fallback",
            "type": "boolean"
          },
          "supports_turn_taking": {
            "default": true,
            "title": "Supports Turn Taking",
            "type": "boolean"
          },
          "transcript_history": {
            "items": {
              "$ref": "#/components/schemas/TutoringLiveVoiceTranscriptEntryResponse"
            },
            "title": "Transcript History",
            "type": "array"
          },
          "transcript_mode": {
            "default": "captions_and_transcript",
            "enum": ["captions", "captions_and_transcript"],
            "title": "Transcript Mode",
            "type": "string"
          },
          "transport_state": {
            "default": "not_requested",
            "enum": [
              "not_requested",
              "provisioning",
              "ready",
              "active",
              "paused",
              "ended",
              "failed"
            ],
            "title": "Transport State",
            "type": "string"
          },
          "turn_state": {
            "default": "idle",
            "enum": [
              "idle",
              "learner_listening",
              "learner_speaking",
              "processing",
              "tutor_speaking",
              "interrupted",
              "resume_ready"
            ],
            "title": "Turn State",
            "type": "string"
          },
          "voice_pack_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Pack Id"
          }
        },
        "title": "TutoringLiveVoiceRuntimeResponse",
        "type": "object"
      },
      "TutoringLiveVoiceTranscriptConfigResponse": {
        "description": "Transcript stream settings for live voice tutoring.",
        "properties": {
          "finals": {
            "default": true,
            "title": "Finals",
            "type": "boolean"
          },
          "language": {
            "default": "en",
            "title": "Language",
            "type": "string"
          },
          "partials": {
            "default": true,
            "title": "Partials",
            "type": "boolean"
          }
        },
        "title": "TutoringLiveVoiceTranscriptConfigResponse",
        "type": "object"
      },
      "TutoringLiveVoiceTranscriptEntryResponse": {
        "description": "One retained realtime transcript item.",
        "properties": {
          "confidence": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "is_final": {
            "title": "Is Final",
            "type": "boolean"
          },
          "language": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "text": {
            "title": "Text",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          }
        },
        "required": ["text", "is_final", "timestamp"],
        "title": "TutoringLiveVoiceTranscriptEntryResponse",
        "type": "object"
      },
      "TutoringLiveVoiceVadConfigResponse": {
        "description": "Voice activity detection settings for realtime turn-taking.",
        "properties": {
          "enabled": {
            "default": true,
            "title": "Enabled",
            "type": "boolean"
          },
          "interruption_window_ms": {
            "default": 700,
            "minimum": 0.0,
            "title": "Interruption Window Ms",
            "type": "integer"
          },
          "silence_end_ms": {
            "default": 520,
            "minimum": 0.0,
            "title": "Silence End Ms",
            "type": "integer"
          },
          "speech_start_ms": {
            "default": 180,
            "minimum": 0.0,
            "title": "Speech Start Ms",
            "type": "integer"
          }
        },
        "title": "TutoringLiveVoiceVadConfigResponse",
        "type": "object"
      },
      "TutoringMessageCreate": {
        "description": "Schema for sending a message in a tutoring session.",
        "properties": {
          "content": {
            "minLength": 1,
            "title": "Content",
            "type": "string"
          },
          "message_type": {
            "default": "text",
            "pattern": "^(text|code|image|suggestion|feedback)$",
            "title": "Message Type",
            "type": "string"
          }
        },
        "required": ["content"],
        "title": "TutoringMessageCreate",
        "type": "object"
      },
      "TutoringMessageResponse": {
        "description": "Tutoring message data returned in API responses.",
        "properties": {
          "content": {
            "title": "Content",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "evidence_bundle": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EvidenceBundleResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "message_type": {
            "title": "Message Type",
            "type": "string"
          },
          "metadata_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata Json"
          },
          "model_used": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Used"
          },
          "sender_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sender Name"
          },
          "sender_type": {
            "title": "Sender Type",
            "type": "string"
          },
          "session_id": {
            "format": "uuid",
            "title": "Session Id",
            "type": "string"
          },
          "tokens_used": {
            "title": "Tokens Used",
            "type": "integer"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "content",
          "sender_type",
          "message_type",
          "tokens_used",
          "session_id",
          "created_at",
          "updated_at"
        ],
        "title": "TutoringMessageResponse",
        "type": "object"
      },
      "TutoringPsycheRuntimeEventResponse": {
        "description": "One Psyche runtime event retained for learner-visible recovery.",
        "properties": {
          "correlation_id": {
            "format": "uuid",
            "title": "Correlation Id",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "payload": {
            "additionalProperties": true,
            "title": "Payload",
            "type": "object"
          },
          "source": {
            "const": "psyche",
            "default": "psyche",
            "title": "Source",
            "type": "string"
          },
          "target": {
            "const": "metis",
            "default": "metis",
            "title": "Target",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": ["id", "type", "correlation_id", "timestamp"],
        "title": "TutoringPsycheRuntimeEventResponse",
        "type": "object"
      },
      "TutoringRepresentationConsentLogEntryResponse": {
        "description": "Append-only consent and governance event for a tutoring session.",
        "properties": {
          "actor": {
            "default": "system",
            "enum": ["system", "runtime", "operator"],
            "title": "Actor",
            "type": "string"
          },
          "consent_status": {
            "default": "not-required",
            "enum": ["not-required", "pending", "granted", "expired", "revoked", "blocked"],
            "title": "Consent Status",
            "type": "string"
          },
          "detail": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "Detail",
            "type": "string"
          },
          "event_type": {
            "enum": [
              "representation-resolved",
              "consent-verified",
              "runtime-provision-allowed",
              "fallback-applied",
              "runtime-access-blocked"
            ],
            "title": "Event Type",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "release_status": {
            "default": "approved",
            "enum": ["draft", "review", "approved", "restricted", "revoked", "retired"],
            "title": "Release Status",
            "type": "string"
          },
          "representation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Representation Id",
            "type": "string"
          }
        },
        "required": ["event_type", "representation_id", "detail", "recorded_at"],
        "title": "TutoringRepresentationConsentLogEntryResponse",
        "type": "object"
      },
      "TutoringSessionCreate": {
        "description": "Schema for starting a new tutoring session.",
        "properties": {
          "course_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "delivery_mode": {
            "default": "text",
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Delivery Mode",
            "type": "string"
          },
          "integrity_mode": {
            "default": "teach",
            "enum": ["teach", "hint", "practice", "do-not-complete-for-me"],
            "title": "Integrity Mode",
            "type": "string"
          },
          "lesson_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "live_voice": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TutoringLiveVoiceConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "requires_approved_sources": {
            "default": false,
            "title": "Requires Approved Sources",
            "type": "boolean"
          },
          "risk_assessment_id": {
            "anyOf": [
              {
                "pattern": "^riskassess_[a-f0-9]{40}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Risk Assessment Id"
          },
          "source_package_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "topic": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Topic",
            "type": "string"
          },
          "tutor_type": {
            "default": "ai",
            "pattern": "^(ai|human|hybrid)$",
            "title": "Tutor Type",
            "type": "string"
          }
        },
        "required": ["topic"],
        "title": "TutoringSessionCreate",
        "type": "object"
      },
      "TutoringSessionResponse": {
        "description": "Tutoring session data returned in API responses.",
        "properties": {
          "ai_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ai Model"
          },
          "consent_log": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TutoringRepresentationConsentLogEntryResponse"
            },
            "title": "Consent Log",
            "type": "array"
          },
          "course_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Course Id"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "delivery_fallback": {
            "$ref": "#/components/schemas/TutoringDeliveryFallbackResponse",
            "default": {
              "active_mode": "text",
              "fallback_chain": ["text"],
              "fallback_disclosures": [],
              "requested_mode": "text",
              "state": "native",
              "summary": "Text tutoring is active for this session."
            }
          },
          "delivery_mode": {
            "default": "text",
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Delivery Mode",
            "type": "string"
          },
          "ended_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended At"
          },
          "escalation_reason": {
            "anyOf": [
              {
                "enum": ["low-confidence", "safety-sensitive", "policy-sensitive"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Escalation Reason"
          },
          "estimated_cost": {
            "title": "Estimated Cost",
            "type": "number"
          },
          "handoff_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Handoff Summary"
          },
          "handoff_target": {
            "anyOf": [
              {
                "enum": ["human-tutor", "teacher", "guardian", "institution"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Handoff Target"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "integrity_mode": {
            "default": "teach",
            "enum": ["teach", "hint", "practice", "do-not-complete-for-me"],
            "title": "Integrity Mode",
            "type": "string"
          },
          "integrity_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Integrity Summary"
          },
          "lesson_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lesson Id"
          },
          "live_voice": {
            "$ref": "#/components/schemas/TutoringLiveVoiceRuntimeResponse",
            "default": {
              "enabled": false,
              "event_log": [],
              "interruption_count": 0,
              "interruption_recovery_state": "stable",
              "runtime_status": "offline",
              "runtime_tier": "realtime_voice_session",
              "session_duration_minutes": 30,
              "supports_barge_in": true,
              "supports_partial_transcripts": true,
              "supports_session_resume": true,
              "supports_text_fallback": true,
              "supports_turn_taking": true,
              "transcript_history": [],
              "transcript_mode": "captions_and_transcript",
              "transport_state": "not_requested",
              "turn_state": "idle"
            }
          },
          "messages": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/TutoringMessageResponse"
            },
            "title": "Messages",
            "type": "array"
          },
          "oversight_context": {
            "default": "independent",
            "enum": ["independent", "minor-supervised", "managed-program"],
            "title": "Oversight Context",
            "type": "string"
          },
          "oversight_roles": {
            "default": [],
            "items": {
              "enum": ["teacher", "guardian", "institution"],
              "type": "string"
            },
            "title": "Oversight Roles",
            "type": "array"
          },
          "oversight_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Oversight Summary"
          },
          "requested_delivery_mode": {
            "default": "text",
            "enum": ["text", "live_voice", "live_avatar"],
            "title": "Requested Delivery Mode",
            "type": "string"
          },
          "requires_approved_sources": {
            "default": false,
            "title": "Requires Approved Sources",
            "type": "boolean"
          },
          "risk_assessment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Risk Assessment Id"
          },
          "risk_evidence_evaluation_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Risk Evidence Evaluation Sha256"
          },
          "satisfaction_rating": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Satisfaction Rating"
          },
          "source_constraint_status": {
            "default": "unconstrained",
            "enum": ["unconstrained", "review_only", "approved", "blocked"],
            "title": "Source Constraint Status",
            "type": "string"
          },
          "source_package_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Package Id"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          },
          "teacher_representation": {
            "$ref": "#/components/schemas/TutoringTeacherRepresentationSafetyResponse"
          },
          "tokens_used": {
            "title": "Tokens Used",
            "type": "integer"
          },
          "topic": {
            "title": "Topic",
            "type": "string"
          },
          "tutor_type": {
            "title": "Tutor Type",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "user_id": {
            "format": "uuid",
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "topic",
          "status",
          "tutor_type",
          "tokens_used",
          "estimated_cost",
          "teacher_representation",
          "user_id",
          "created_at",
          "updated_at"
        ],
        "title": "TutoringSessionResponse",
        "type": "object"
      },
      "TutoringSessionUpdate": {
        "description": "Schema for updating a tutoring session.",
        "properties": {
          "satisfaction_rating": {
            "anyOf": [
              {
                "maximum": 5.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Satisfaction Rating"
          },
          "status": {
            "anyOf": [
              {
                "pattern": "^(active|completed|abandoned|escalated)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary"
          }
        },
        "title": "TutoringSessionUpdate",
        "type": "object"
      },
      "TutoringTeacherRepresentationSafetyResponse": {
        "description": "Resolved safety, approval, and disclosure posture for the active teacher representation.",
        "properties": {
          "approval_summary": {
            "default": "Metis-approved teacher representation is active.",
            "title": "Approval Summary",
            "type": "string"
          },
          "audit_trail_required": {
            "default": true,
            "title": "Audit Trail Required",
            "type": "boolean"
          },
          "avatar_teacher_profile_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Teacher Profile Id"
          },
          "blocked_uses": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Blocked Uses",
            "type": "array"
          },
          "can_provision_live_runtime": {
            "default": false,
            "title": "Can Provision Live Runtime",
            "type": "boolean"
          },
          "consent_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Consent Expires At"
          },
          "consent_status": {
            "default": "not-required",
            "enum": ["not-required", "pending", "granted", "expired", "revoked", "blocked"],
            "title": "Consent Status",
            "type": "string"
          },
          "consent_summary": {
            "default": "No separate likeness consent is required for this representation.",
            "title": "Consent Summary",
            "type": "string"
          },
          "disclosure_label": {
            "default": "AI-generated tutor",
            "title": "Disclosure Label",
            "type": "string"
          },
          "disclosure_review_required": {
            "default": false,
            "title": "Disclosure Review Required",
            "type": "boolean"
          },
          "disclosure_status": {
            "default": "ready",
            "enum": ["not-required", "required", "ready"],
            "title": "Disclosure Status",
            "type": "string"
          },
          "display_name": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Display Name",
            "type": "string"
          },
          "kind": {
            "default": "text_tutor",
            "enum": ["text_tutor", "live_voice_tutor", "live_avatar_tutor"],
            "title": "Kind",
            "type": "string"
          },
          "likeness_consent_record_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Likeness Consent Record Ids",
            "type": "array"
          },
          "misuse_prevention_summary": {
            "default": "Generic tutoring safeguards are active.",
            "title": "Misuse Prevention Summary",
            "type": "string"
          },
          "misuse_risk": {
            "default": "low",
            "enum": ["low", "medium", "high"],
            "title": "Misuse Risk",
            "type": "string"
          },
          "operator_review_required": {
            "default": false,
            "title": "Operator Review Required",
            "type": "boolean"
          },
          "prohibited_contexts": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Prohibited Contexts",
            "type": "array"
          },
          "release_status": {
            "default": "approved",
            "enum": ["draft", "review", "approved", "restricted", "revoked", "retired"],
            "title": "Release Status",
            "type": "string"
          },
          "representation_id": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Representation Id",
            "type": "string"
          },
          "safety_review_required": {
            "default": false,
            "title": "Safety Review Required",
            "type": "boolean"
          },
          "suitable_oversight_contexts": {
            "default": ["independent", "minor-supervised", "managed-program"],
            "items": {
              "enum": ["independent", "minor-supervised", "managed-program"],
              "type": "string"
            },
            "title": "Suitable Oversight Contexts",
            "type": "array"
          },
          "synthetic": {
            "default": true,
            "title": "Synthetic",
            "type": "boolean"
          },
          "voice_consent_record_ids": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Voice Consent Record Ids",
            "type": "array"
          },
          "voice_pack_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voice Pack Id"
          },
          "watermark_required": {
            "default": false,
            "title": "Watermark Required",
            "type": "boolean"
          }
        },
        "required": ["representation_id", "display_name"],
        "title": "TutoringTeacherRepresentationSafetyResponse",
        "type": "object"
      },
      "TypeScriptEvidenceRecord": {
        "description": "Exact hash-bound EvidenceRecord emitted by @metis/verification.",
        "properties": {
          "contentSha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Contentsha256",
            "type": "string"
          },
          "createdAt": {
            "minimum": 0.0,
            "title": "Createdat",
            "type": "integer"
          },
          "decision": {
            "enum": ["pass", "needs-human", "block"],
            "title": "Decision",
            "type": "string"
          },
          "model": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Model",
            "type": "string"
          },
          "runId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Runid",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "verifierResults": {
            "items": {
              "$ref": "#/components/schemas/TypeScriptVerifierResult"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Verifierresults",
            "type": "array"
          }
        },
        "required": [
          "runId",
          "model",
          "contentSha256",
          "decision",
          "score",
          "verifierResults",
          "createdAt"
        ],
        "title": "TypeScriptEvidenceRecord",
        "type": "object"
      },
      "TypeScriptVerifierResult": {
        "additionalProperties": true,
        "description": "Release-relevant subset of a TypeScript Metis verifier result.",
        "properties": {
          "confidence": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Confidence",
            "type": "number"
          },
          "critique": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Critique"
          },
          "detail": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          },
          "notConfigured": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notconfigured"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          },
          "verifier": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Verifier",
            "type": "string"
          }
        },
        "required": ["verifier", "score", "confidence", "passed"],
        "title": "TypeScriptVerifierResult",
        "type": "object"
      },
      "TypedEventField": {
        "additionalProperties": false,
        "properties": {
          "field_name": {
            "pattern": "^[a-z][a-z0-9_.-]{1,127}$",
            "title": "Field Name",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "value_type": {
            "enum": ["string", "integer", "number", "boolean"],
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": ["field_name", "value_type", "required"],
        "title": "TypedEventField",
        "type": "object"
      },
      "TypedEventSchema": {
        "additionalProperties": false,
        "properties": {
          "event_name": {
            "pattern": "^[a-z][a-z0-9_.-]{2,127}$",
            "title": "Event Name",
            "type": "string"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/TypedEventField"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Fields",
            "type": "array"
          }
        },
        "required": ["event_name", "fields"],
        "title": "TypedEventSchema",
        "type": "object"
      },
      "TypedStateField": {
        "additionalProperties": false,
        "properties": {
          "field_name": {
            "pattern": "^[a-z][a-z0-9_.-]{1,127}$",
            "title": "Field Name",
            "type": "string"
          },
          "initial_value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ],
            "title": "Initial Value"
          },
          "learner_writable": {
            "title": "Learner Writable",
            "type": "boolean"
          },
          "sensitive": {
            "const": false,
            "default": false,
            "title": "Sensitive",
            "type": "boolean"
          },
          "value_type": {
            "enum": ["string", "integer", "number", "boolean"],
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": ["field_name", "value_type", "initial_value", "learner_writable"],
        "title": "TypedStateField",
        "type": "object"
      },
      "UiStateMatrix": {
        "additionalProperties": false,
        "description": "Every surface in every state. The evidence M9.16.b asks for.",
        "properties": {
          "cells": {
            "items": {
              "$ref": "#/components/schemas/StateCell"
            },
            "title": "Cells",
            "type": "array"
          }
        },
        "required": ["cells"],
        "title": "UiStateMatrix",
        "type": "object"
      },
      "Uncertainty": {
        "additionalProperties": false,
        "description": "What the claim admits it does not know.",
        "properties": {
          "confidence": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "expressed_in_text": {
            "title": "Expressed In Text",
            "type": "boolean"
          },
          "note": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          }
        },
        "required": ["expressed_in_text"],
        "title": "Uncertainty",
        "type": "object"
      },
      "UncertaintyInterval": {
        "additionalProperties": false,
        "properties": {
          "coverage_basis_points": {
            "anyOf": [
              {
                "maximum": 10000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coverage Basis Points"
          },
          "kind": {
            "enum": ["credible_interval", "standard_error", "none"],
            "title": "Kind",
            "type": "string"
          },
          "lower_x1000": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lower X1000"
          },
          "standard_error_x1000": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Standard Error X1000"
          },
          "upper_x1000": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Upper X1000"
          }
        },
        "required": ["kind"],
        "title": "UncertaintyInterval",
        "type": "object"
      },
      "UngroundedPresentationProbe": {
        "additionalProperties": false,
        "description": "One attempt to present an ungrounded claim as supported, and its refusal.",
        "properties": {
          "presentation_refused": {
            "title": "Presentation Refused",
            "type": "boolean"
          },
          "probe_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Probe Id",
            "type": "string"
          },
          "refusal_detail": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Refusal Detail",
            "type": "string"
          },
          "ungrounded_reason": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Ungrounded Reason",
            "type": "string"
          }
        },
        "required": ["probe_id", "ungrounded_reason", "presentation_refused", "refusal_detail"],
        "title": "UngroundedPresentationProbe",
        "type": "object"
      },
      "UnitResponse": {
        "additionalProperties": false,
        "properties": {
          "accepted_units": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Accepted Units",
            "type": "array"
          },
          "canonical_unit": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Canonical Unit",
            "type": "string"
          },
          "dimensionality": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Dimensionality",
            "type": "string"
          },
          "equivalence": {
            "$ref": "#/components/schemas/MathEquivalencePolicy"
          },
          "expected_value": {
            "maxLength": 80,
            "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,18})?$",
            "title": "Expected Value",
            "type": "string"
          },
          "response_type": {
            "const": "unit",
            "default": "unit",
            "title": "Response Type",
            "type": "string"
          }
        },
        "required": [
          "equivalence",
          "expected_value",
          "canonical_unit",
          "accepted_units",
          "dimensionality"
        ],
        "title": "UnitResponse",
        "type": "object"
      },
      "UnitSourceBinding": {
        "additionalProperties": false,
        "description": "The exact thing a target was written against.",
        "properties": {
          "revision": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Revision",
            "type": "string"
          },
          "segment_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Segment Digest",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_kind": {
            "enum": ["item", "lesson", "course", "rubric", "media", "objective"],
            "title": "Subject Kind",
            "type": "string"
          }
        },
        "required": ["subject_kind", "subject_id", "revision", "segment_digest"],
        "title": "UnitSourceBinding",
        "type": "object"
      },
      "UnitTransitionRequest": {
        "properties": {
          "target_text": {
            "anyOf": [
              {
                "maxLength": 20000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Text"
          },
          "to_status": {
            "enum": [
              "untranslated",
              "machine",
              "draft",
              "in_review",
              "approved",
              "rejected",
              "stale"
            ],
            "title": "To Status",
            "type": "string"
          }
        },
        "required": ["to_status"],
        "title": "UnitTransitionRequest",
        "type": "object"
      },
      "UnsureReferral": {
        "additionalProperties": false,
        "description": "The safe path: an unsure reviewer is routed to a coordinator, never cleared by silence.",
        "properties": {
          "answered_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Answered At"
          },
          "answered_by_digest": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Answered By Digest"
          },
          "declaration_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Declaration Id",
            "type": "string"
          },
          "outcome": {
            "anyOf": [
              {
                "enum": ["is_a_conflict", "not_a_conflict"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Outcome"
          },
          "question": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Question",
            "type": "string"
          },
          "raised_at": {
            "format": "date-time",
            "title": "Raised At",
            "type": "string"
          },
          "referral_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Referral Id",
            "type": "string"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          }
        },
        "required": ["referral_id", "declaration_id", "reviewer_digest", "raised_at", "question"],
        "title": "UnsureReferral",
        "type": "object"
      },
      "UptimeInfoResponse": {
        "properties": {
          "current": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Current",
            "type": "number"
          },
          "last30_days": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Last30 Days",
            "type": "number"
          },
          "last90_days": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Last90 Days",
            "type": "number"
          },
          "last_incident": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Incident"
          }
        },
        "required": ["current", "last30_days", "last90_days"],
        "title": "UptimeInfoResponse",
        "type": "object"
      },
      "UrgencyRatification": {
        "additionalProperties": false,
        "description": "The record that makes an event urgent enough to break quiet hours.\n\nUrgency is ratified by a named person against a named incident; a\nnotification cannot declare itself urgent.",
        "properties": {
          "basis": {
            "enum": ["integrity_incident", "safety_incident"],
            "title": "Basis",
            "type": "string"
          },
          "incident_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Incident Id",
            "type": "string"
          },
          "ratification_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Ratification Id",
            "type": "string"
          },
          "ratified_at": {
            "format": "date-time",
            "title": "Ratified At",
            "type": "string"
          },
          "ratified_by_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Ratified By Digest",
            "type": "string"
          },
          "ratified_by_role": {
            "enum": ["integrity_lead", "safety_lead", "operator"],
            "title": "Ratified By Role",
            "type": "string"
          },
          "reason": {
            "maxLength": 600,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "ratification_id",
          "basis",
          "incident_id",
          "ratified_by_digest",
          "ratified_by_role",
          "ratified_at",
          "reason"
        ],
        "title": "UrgencyRatification",
        "type": "object"
      },
      "UrlIngestionInput": {
        "description": "A remote URL to snapshot into Metis ingestion storage.",
        "properties": {
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "license_uri": {
            "anyOf": [
              {
                "format": "uri",
                "maxLength": 2083,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "License Uri"
          },
          "rights_status": {
            "default": "unknown",
            "enum": ["unknown", "unchecked", "declared", "permitted", "restricted"],
            "title": "Rights Status",
            "type": "string"
          },
          "url": {
            "format": "uri",
            "maxLength": 2083,
            "minLength": 1,
            "title": "Url",
            "type": "string"
          }
        },
        "required": ["label", "url"],
        "title": "UrlIngestionInput",
        "type": "object"
      },
      "UseCount": {
        "additionalProperties": false,
        "description": "How many times one entry is used, at one kind of site.",
        "properties": {
          "count": {
            "minimum": 0.0,
            "title": "Count",
            "type": "integer"
          },
          "counted": {
            "default": true,
            "title": "Counted",
            "type": "boolean"
          },
          "site": {
            "enum": [
              "course",
              "item",
              "objective",
              "standard",
              "build",
              "credential",
              "search",
              "integration"
            ],
            "title": "Site",
            "type": "string"
          }
        },
        "required": ["site", "count"],
        "title": "UseCount",
        "type": "object"
      },
      "UserAssessmentSummaryResponse": {
        "properties": {
          "course_title": {
            "title": "Course Title",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "passed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Passed"
          },
          "score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "submitted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Submitted At"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "course_title"],
        "title": "UserAssessmentSummaryResponse",
        "type": "object"
      },
      "UserCourseSummaryResponse": {
        "properties": {
          "enrolled_at": {
            "format": "date-time",
            "title": "Enrolled At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_accessed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Accessed At"
          },
          "progress_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Progress Percent",
            "type": "number"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": ["id", "title", "status", "progress_percent", "enrolled_at"],
        "title": "UserCourseSummaryResponse",
        "type": "object"
      },
      "UserMutationResponse": {
        "properties": {
          "success": {
            "default": true,
            "title": "Success",
            "type": "boolean"
          },
          "user": {
            "$ref": "#/components/schemas/ManagedUserResponse"
          }
        },
        "required": ["user"],
        "title": "UserMutationResponse",
        "type": "object"
      },
      "UserProfileResponse": {
        "description": "Expanded user profile payload with parsed learner preferences.",
        "properties": {
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "bio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bio"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "is_verified": {
            "title": "Is Verified",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "preferences": {
            "$ref": "#/components/schemas/LearnerPreferences"
          },
          "role": {
            "title": "Role",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "name",
          "role",
          "is_active",
          "is_verified",
          "created_at",
          "updated_at"
        ],
        "title": "UserProfileResponse",
        "type": "object"
      },
      "UserRoleUpdateRequest": {
        "properties": {
          "role": {
            "enum": ["student", "instructor", "admin", "moderator"],
            "title": "Role",
            "type": "string"
          }
        },
        "required": ["role"],
        "title": "UserRoleUpdateRequest",
        "type": "object"
      },
      "UserStatusUpdateRequest": {
        "properties": {
          "status": {
            "enum": ["active", "inactive", "suspended", "pending"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["status"],
        "title": "UserStatusUpdateRequest",
        "type": "object"
      },
      "UserUpdate": {
        "description": "Schema for updating user profile fields.",
        "properties": {
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "bio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bio"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 255,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "preferences": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LearnerPreferences"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "UserUpdate",
        "type": "object"
      },
      "ValidateRequest": {
        "additionalProperties": false,
        "description": "The files as received. A verifier posts back what it was handed.",
        "properties": {
          "wire": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Wire",
            "type": "object"
          }
        },
        "required": ["wire"],
        "title": "ValidateRequest",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": ["loc", "msg", "type"],
        "title": "ValidationError",
        "type": "object"
      },
      "ValidationProblem": {
        "additionalProperties": false,
        "description": "One rejected input, named without quoting what it held.",
        "properties": {
          "message": {
            "maxLength": 400,
            "minLength": 3,
            "title": "Message",
            "type": "string"
          },
          "path": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Path",
            "type": "string"
          },
          "value_withheld": {
            "default": false,
            "title": "Value Withheld",
            "type": "boolean"
          }
        },
        "required": ["path", "message"],
        "title": "ValidationProblem",
        "type": "object"
      },
      "ValidationResult": {
        "additionalProperties": false,
        "description": "What an independent reader concluded, having recomputed everything.",
        "properties": {
          "checked_at": {
            "format": "date-time",
            "title": "Checked At",
            "type": "string"
          },
          "detail": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 40,
            "title": "Detail",
            "type": "array"
          },
          "export_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Export Id",
            "type": "string"
          },
          "files_checked": {
            "minimum": 0.0,
            "title": "Files Checked",
            "type": "integer"
          },
          "findings": {
            "default": [],
            "items": {
              "enum": [
                "file_digest_mismatch",
                "manifest_digest_mismatch",
                "signature_invalid",
                "signature_absent",
                "row_count_mismatch",
                "undeclared_file",
                "missing_file",
                "section_not_total",
                "redaction_not_declared",
                "unsafe_file_name",
                "expired"
              ],
              "type": "string"
            },
            "maxItems": 40,
            "title": "Findings",
            "type": "array"
          },
          "rows_checked": {
            "minimum": 0.0,
            "title": "Rows Checked",
            "type": "integer"
          },
          "valid": {
            "title": "Valid",
            "type": "boolean"
          }
        },
        "required": ["export_id", "checked_at", "files_checked", "rows_checked", "valid"],
        "title": "ValidationResult",
        "type": "object"
      },
      "VariantCount": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "minimum": 0.0,
            "title": "Count",
            "type": "integer"
          },
          "variant_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": ["variant_id", "count"],
        "title": "VariantCount",
        "type": "object"
      },
      "VariantDefinition": {
        "additionalProperties": false,
        "description": "One arm, pinned to the exact revision it serves.",
        "properties": {
          "algorithm_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Algorithm Revision Sha256"
          },
          "allocation_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Allocation Basis Points",
            "type": "integer"
          },
          "content_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Revision Sha256"
          },
          "is_control": {
            "title": "Is Control",
            "type": "boolean"
          },
          "variant_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": ["variant_id", "is_control", "allocation_basis_points"],
        "title": "VariantDefinition",
        "type": "object"
      },
      "VerdictProvenanceDeclaration": {
        "additionalProperties": false,
        "properties": {
          "environment": {
            "$ref": "#/components/schemas/RegistryReference"
          },
          "policy_bundle": {
            "$ref": "#/components/schemas/RegistryReference"
          },
          "reproducibility": {
            "$ref": "#/components/schemas/ReproducibilityDeclaration"
          }
        },
        "required": ["policy_bundle", "environment", "reproducibility"],
        "title": "VerdictProvenanceDeclaration",
        "type": "object"
      },
      "VerificationCheckView": {
        "additionalProperties": false,
        "description": "One thing the verifier checked, and what it found.",
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "passed": {
            "title": "Passed",
            "type": "boolean"
          }
        },
        "required": ["name", "passed", "detail"],
        "title": "VerificationCheckView",
        "type": "object"
      },
      "VerificationResult": {
        "additionalProperties": false,
        "description": "What a verifier learns. It has no field that could change a status.",
        "properties": {
          "checked_at": {
            "format": "date-time",
            "title": "Checked At",
            "type": "string"
          },
          "credential_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Credential Id",
            "type": "string"
          },
          "detail": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Detail",
            "type": "string"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "issuer_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Issuer Id",
            "type": "string"
          },
          "pathway_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pathway Id",
            "type": "string"
          },
          "record_sha256_matches": {
            "title": "Record Sha256 Matches",
            "type": "boolean"
          },
          "status": {
            "enum": ["active", "expired", "revoked", "replaced"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "credential_id",
          "status",
          "pathway_id",
          "issuer_id",
          "issued_at",
          "record_sha256_matches",
          "checked_at",
          "detail"
        ],
        "title": "VerificationResult",
        "type": "object"
      },
      "VerifiedCompromiseReport": {
        "additionalProperties": false,
        "properties": {
          "confidence_basis_points": {
            "maximum": 10000.0,
            "minimum": 7500.0,
            "title": "Confidence Basis Points",
            "type": "integer"
          },
          "discovered_at": {
            "format": "date-time",
            "title": "Discovered At",
            "type": "string"
          },
          "evidence": {
            "items": {
              "$ref": "#/components/schemas/CompromiseEvidenceRef"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence",
            "type": "array"
          },
          "idempotency_key": {
            "pattern": "^compromise-report:[A-Za-z0-9._:-]{8,140}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "incident_id": {
            "pattern": "^item-compromise:[A-Za-z0-9._:-]{8,140}$",
            "title": "Incident Id",
            "type": "string"
          },
          "item": {
            "$ref": "#/components/schemas/ExposureItemRevision"
          },
          "schema_version": {
            "const": "5.13.0",
            "default": "5.13.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scope": {
            "enum": ["single_actor", "cohort", "institution", "cross_tenant", "public"],
            "title": "Scope",
            "type": "string"
          },
          "severity": {
            "enum": ["low", "medium", "high", "critical"],
            "title": "Severity",
            "type": "string"
          },
          "signal": {
            "enum": [
              "answer_key_leak",
              "full_item_leak",
              "reconstruction",
              "unauthorized_export",
              "public_sharing",
              "delivery_token_compromise"
            ],
            "title": "Signal",
            "type": "string"
          },
          "status": {
            "enum": ["open", "contained", "remediating", "resolved"],
            "title": "Status",
            "type": "string"
          },
          "summary": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Summary",
            "type": "string"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "verification_status": {
            "const": "verified",
            "default": "verified",
            "title": "Verification Status",
            "type": "string"
          },
          "verified_at": {
            "format": "date-time",
            "title": "Verified At",
            "type": "string"
          },
          "verified_by": {
            "format": "uuid",
            "title": "Verified By",
            "type": "string"
          }
        },
        "required": [
          "incident_id",
          "tenant_id",
          "item",
          "signal",
          "scope",
          "severity",
          "confidence_basis_points",
          "status",
          "discovered_at",
          "verified_at",
          "verified_by",
          "evidence",
          "summary",
          "idempotency_key"
        ],
        "title": "VerifiedCompromiseReport",
        "type": "object"
      },
      "VerifierContribution": {
        "additionalProperties": false,
        "properties": {
          "outcome": {
            "enum": ["pass", "fail", "unavailable", "error", "abstained"],
            "title": "Outcome",
            "type": "string"
          },
          "score_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score Basis Points"
          },
          "verifier_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verifier Id",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          },
          "weighted_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weighted Basis Points",
            "type": "integer"
          }
        },
        "required": [
          "verifier_id",
          "outcome",
          "score_basis_points",
          "weight_basis_points",
          "weighted_basis_points"
        ],
        "title": "VerifierContribution",
        "type": "object"
      },
      "VerifierDisagreementRecord": {
        "additionalProperties": false,
        "description": "Two systems reaching different verdicts about the same exact subject.\n\nAgreement is not a disagreement, and the validator refuses one: a record\nwhere both verdicts match carries no signal and would train a model on\nconsensus it never observed.",
        "properties": {
          "observed_at": {
            "format": "date-time",
            "title": "Observed At",
            "type": "string"
          },
          "payload_kind": {
            "const": "verifier_disagreement",
            "default": "verifier_disagreement",
            "title": "Payload Kind",
            "type": "string"
          },
          "subject_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Subject Id",
            "type": "string"
          },
          "subject_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Revision Sha256",
            "type": "string"
          },
          "verifier_a_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verifier A Id",
            "type": "string"
          },
          "verifier_a_verdict": {
            "maxLength": 60,
            "minLength": 1,
            "title": "Verifier A Verdict",
            "type": "string"
          },
          "verifier_a_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Verifier A Version",
            "type": "string"
          },
          "verifier_b_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verifier B Id",
            "type": "string"
          },
          "verifier_b_verdict": {
            "maxLength": 60,
            "minLength": 1,
            "title": "Verifier B Verdict",
            "type": "string"
          },
          "verifier_b_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Verifier B Version",
            "type": "string"
          }
        },
        "required": [
          "subject_id",
          "subject_revision_sha256",
          "verifier_a_id",
          "verifier_a_version",
          "verifier_a_verdict",
          "verifier_b_id",
          "verifier_b_version",
          "verifier_b_verdict",
          "observed_at"
        ],
        "title": "VerifierDisagreementRecord",
        "type": "object"
      },
      "VerifierPlan": {
        "additionalProperties": false,
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/VerifierPlanEntry"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Entries",
            "type": "array"
          },
          "plan_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Plan Id",
            "type": "string"
          },
          "plan_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Plan Sha256",
            "type": "string"
          },
          "ranking_rule": {
            "$ref": "#/components/schemas/RankingRule"
          },
          "stop_conditions": {
            "items": {
              "enum": [
                "count_reached",
                "budget_exhausted",
                "deadline_reached",
                "generator_refused",
                "diversity_unmet"
              ],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Stop Conditions",
            "type": "array"
          }
        },
        "required": ["plan_id", "plan_sha256", "entries", "ranking_rule", "stop_conditions"],
        "title": "VerifierPlan",
        "type": "object"
      },
      "VerifierPlanEntry": {
        "additionalProperties": false,
        "properties": {
          "required": {
            "title": "Required",
            "type": "boolean"
          },
          "rubric_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rubric Id"
          },
          "rubric_revision_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rubric Revision Id"
          },
          "verifier_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Verifier Id",
            "type": "string"
          },
          "verifier_kind": {
            "enum": [
              "deterministic_process",
              "deterministic_code",
              "deterministic_math",
              "grounding_gate",
              "calibrated_panel"
            ],
            "title": "Verifier Kind",
            "type": "string"
          },
          "version": {
            "maxLength": 100,
            "minLength": 1,
            "title": "Version",
            "type": "string"
          },
          "weight_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["verifier_id", "verifier_kind", "version", "required", "weight_basis_points"],
        "title": "VerifierPlanEntry",
        "type": "object"
      },
      "VersionedComponent": {
        "additionalProperties": false,
        "properties": {
          "artifact_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Artifact Sha256"
          },
          "component_id": {
            "maxLength": 240,
            "minLength": 1,
            "title": "Component Id",
            "type": "string"
          },
          "component_kind": {
            "enum": ["model", "code", "config", "corpus"],
            "title": "Component Kind",
            "type": "string"
          },
          "rationale": {
            "anyOf": [
              {
                "maxLength": 1000,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rationale"
          },
          "usage": {
            "enum": ["used", "not_applicable"],
            "title": "Usage",
            "type": "string"
          },
          "version": {
            "anyOf": [
              {
                "maxLength": 160,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version"
          }
        },
        "required": ["component_kind", "component_id", "usage"],
        "title": "VersionedComponent",
        "type": "object"
      },
      "VersionedRequest": {
        "additionalProperties": false,
        "properties": {
          "expected_version": {
            "minimum": 1.0,
            "title": "Expected Version",
            "type": "integer"
          }
        },
        "required": ["expected_version"],
        "title": "VersionedRequest",
        "type": "object"
      },
      "VersionedSource": {
        "additionalProperties": false,
        "description": "Where the signal came from, with every version that produced it.",
        "properties": {
          "collector_version": {
            "pattern": "^\\d+\\.\\d+\\.\\d+$",
            "title": "Collector Version",
            "type": "string"
          },
          "config_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Config Sha256",
            "type": "string"
          },
          "model_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Id"
          },
          "model_version": {
            "anyOf": [
              {
                "pattern": "^\\d+\\.\\d+\\.\\d+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "rule_id": {
            "anyOf": [
              {
                "maxLength": 160,
                "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rule Id"
          },
          "rule_version": {
            "anyOf": [
              {
                "pattern": "^\\d+\\.\\d+\\.\\d+$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rule Version"
          },
          "source_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Source Id",
            "type": "string"
          }
        },
        "required": ["source_id", "collector_version", "config_sha256"],
        "title": "VersionedSource",
        "type": "object"
      },
      "ViewDenial": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["author", "reviewer", "operator", "auditor", "learner_support"],
            "title": "Audience",
            "type": "string"
          },
          "function": {
            "enum": ["read", "search", "stream", "export", "act"],
            "title": "Function",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 8,
            "title": "Reason",
            "type": "string"
          },
          "view_object": {
            "enum": [
              "request",
              "plan",
              "step",
              "queue",
              "run",
              "attempt",
              "tool_call",
              "budget",
              "evidence",
              "output",
              "decision",
              "lineage"
            ],
            "title": "View Object",
            "type": "string"
          }
        },
        "required": ["audience", "view_object", "function", "reason"],
        "title": "ViewDenial",
        "type": "object"
      },
      "ViewRequest": {
        "additionalProperties": false,
        "description": "The excerpt texts the caller holds. The projection carries none itself.",
        "properties": {
          "excerpts": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ExcerptText"
            },
            "maxItems": 200,
            "title": "Excerpts",
            "type": "array"
          }
        },
        "title": "ViewRequest",
        "type": "object"
      },
      "ViewResponse": {
        "additionalProperties": false,
        "properties": {
          "access_entry": {
            "$ref": "#/components/schemas/ConflictAccessEntry"
          },
          "view": {
            "$ref": "#/components/schemas/ConflictView"
          }
        },
        "required": ["view", "access_entry"],
        "title": "ViewResponse",
        "type": "object"
      },
      "VisibilityCell": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["learner", "reviewer", "integrity_lead"],
            "title": "Audience",
            "type": "string"
          },
          "field_group": {
            "enum": [
              "refs.learner_digest",
              "refs.attempt",
              "refs.item",
              "source.versions",
              "raw_outputs",
              "confidence",
              "evidence.timeline",
              "evidence.media",
              "evidence.session",
              "evidence.device",
              "evidence.similarity",
              "evidence.authorship",
              "excerpt.text",
              "summary",
              "state"
            ],
            "title": "Field Group",
            "type": "string"
          },
          "treatment": {
            "enum": ["shown", "masked", "withheld", "redacted"],
            "title": "Treatment",
            "type": "string"
          }
        },
        "required": ["field_group", "audience", "treatment"],
        "title": "VisibilityCell",
        "type": "object"
      },
      "VisibilityProbe": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": [
              "learner",
              "representative",
              "reviewer",
              "decider",
              "integrity_lead",
              "forensic"
            ],
            "title": "Audience",
            "type": "string"
          },
          "sections_masked": {
            "items": {
              "enum": [
                "subject_refs",
                "narrative",
                "decision_substance",
                "raw_evidence",
                "classifier_features",
                "other_learner_refs",
                "staff_identity",
                "security_method"
              ],
              "type": "string"
            },
            "title": "Sections Masked",
            "type": "array"
          },
          "sections_shown": {
            "items": {
              "enum": [
                "subject_refs",
                "narrative",
                "decision_substance",
                "raw_evidence",
                "classifier_features",
                "other_learner_refs",
                "staff_identity",
                "security_method"
              ],
              "type": "string"
            },
            "title": "Sections Shown",
            "type": "array"
          },
          "sections_withheld": {
            "items": {
              "enum": [
                "subject_refs",
                "narrative",
                "decision_substance",
                "raw_evidence",
                "classifier_features",
                "other_learner_refs",
                "staff_identity",
                "security_method"
              ],
              "type": "string"
            },
            "title": "Sections Withheld",
            "type": "array"
          }
        },
        "required": ["audience", "sections_shown", "sections_masked", "sections_withheld"],
        "title": "VisibilityProbe",
        "type": "object"
      },
      "VisibilityRow": {
        "additionalProperties": false,
        "properties": {
          "audience": {
            "enum": ["learner", "guardian", "teacher", "assessor", "admin"],
            "title": "Audience",
            "type": "string"
          },
          "release_state": {
            "enum": ["before_release", "after_release"],
            "title": "Release State",
            "type": "string"
          },
          "shown": {
            "items": {
              "enum": [
                "value.current",
                "value.history",
                "evidence.response",
                "evidence.rubric",
                "evidence.annotations",
                "scorer.identity",
                "learner.identity",
                "correction.history",
                "policy.scale"
              ],
              "type": "string"
            },
            "title": "Shown",
            "type": "array"
          },
          "withheld": {
            "items": {
              "enum": [
                "value.current",
                "value.history",
                "evidence.response",
                "evidence.rubric",
                "evidence.annotations",
                "scorer.identity",
                "learner.identity",
                "correction.history",
                "policy.scale"
              ],
              "type": "string"
            },
            "title": "Withheld",
            "type": "array"
          }
        },
        "required": ["audience", "release_state", "shown", "withheld"],
        "title": "VisibilityRow",
        "type": "object"
      },
      "VisibleCodeTest": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "items": {
              "type": "string"
            },
            "title": "Arguments",
            "type": "array"
          },
          "expected_stdout": {
            "title": "Expected Stdout",
            "type": "string"
          },
          "stdin": {
            "title": "Stdin",
            "type": "string"
          },
          "test_id": {
            "title": "Test Id",
            "type": "string"
          },
          "weight_basis_points": {
            "title": "Weight Basis Points",
            "type": "integer"
          }
        },
        "required": ["test_id", "arguments", "stdin", "expected_stdout", "weight_basis_points"],
        "title": "VisibleCodeTest",
        "type": "object"
      },
      "VocabularyEntry": {
        "additionalProperties": false,
        "description": "One vocabulary as it exists in the estate today.",
        "properties": {
          "axis": {
            "enum": ["stakes", "posture", "stance", "style"],
            "title": "Axis",
            "type": "string"
          },
          "behavior": {
            "maxLength": 400,
            "minLength": 20,
            "title": "Behavior",
            "type": "string"
          },
          "codes": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 2,
            "title": "Codes",
            "type": "array"
          },
          "consumers": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Consumers",
            "type": "array"
          },
          "contexts": {
            "items": {
              "enum": ["assessment_context", "tutor_config", "tutor_session", "api", "ui_label"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Contexts",
            "type": "array"
          },
          "lossy_defaults": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "title": "Lossy Defaults",
            "type": "array"
          },
          "owner_module": {
            "maxLength": 200,
            "minLength": 8,
            "title": "Owner Module",
            "type": "string"
          },
          "schema_version": {
            "pattern": "^(\\d+\\.\\d+\\.\\d+|unversioned)$",
            "title": "Schema Version",
            "type": "string"
          },
          "vocabulary_id": {
            "enum": [
              "assessment.integrity_mode",
              "interlock.mode",
              "tutor_grounding.assessment_mode",
              "tutor_preview.assessment_mode",
              "tutor_binding.integrity_mode",
              "tutoring.integrity_mode",
              "learner.tutor_style"
            ],
            "title": "Vocabulary Id",
            "type": "string"
          }
        },
        "required": [
          "vocabulary_id",
          "axis",
          "owner_module",
          "schema_version",
          "codes",
          "behavior",
          "consumers",
          "contexts"
        ],
        "title": "VocabularyEntry",
        "type": "object"
      },
      "VoicePreview": {
        "additionalProperties": false,
        "description": "A previewed voice session: the approved voice, and what happens when it degrades.\n\n``consent_recorded`` is required and `Literal[True]`, because a voice preview\nwithout recorded consent for the voice being used is the thing the approval\nexists to prevent.",
        "properties": {
          "captions_enabled": {
            "const": true,
            "default": true,
            "title": "Captions Enabled",
            "type": "boolean"
          },
          "consent_recorded": {
            "const": true,
            "default": true,
            "title": "Consent Recorded",
            "type": "boolean"
          },
          "degradation": {
            "enum": ["none", "captions_only", "text_fallback", "reduced_latency_budget"],
            "title": "Degradation",
            "type": "string"
          },
          "interruption_permitted": {
            "title": "Interruption Permitted",
            "type": "boolean"
          },
          "language": {
            "pattern": "^[a-z]{2}(-[A-Z]{2})?$",
            "title": "Language",
            "type": "string"
          },
          "latency_budget_micros": {
            "maximum": 30000000.0,
            "minimum": 1.0,
            "title": "Latency Budget Micros",
            "type": "integer"
          },
          "measured_first_audio_micros": {
            "maximum": 30000000.0,
            "minimum": 1.0,
            "title": "Measured First Audio Micros",
            "type": "integer"
          },
          "pronunciation_lexicon_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Pronunciation Lexicon Id",
            "type": "string"
          },
          "transcript_available": {
            "const": true,
            "default": true,
            "title": "Transcript Available",
            "type": "boolean"
          },
          "turns": {
            "items": {
              "$ref": "#/components/schemas/PreviewTurn"
            },
            "maxItems": 200,
            "minItems": 1,
            "title": "Turns",
            "type": "array"
          },
          "voice_approval_reference": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Voice Approval Reference",
            "type": "string"
          },
          "voice_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Voice Id",
            "type": "string"
          },
          "words_per_minute": {
            "maximum": 220.0,
            "minimum": 80.0,
            "title": "Words Per Minute",
            "type": "integer"
          }
        },
        "required": [
          "voice_id",
          "voice_approval_reference",
          "language",
          "pronunciation_lexicon_id",
          "words_per_minute",
          "interruption_permitted",
          "measured_first_audio_micros",
          "latency_budget_micros",
          "degradation",
          "turns"
        ],
        "title": "VoicePreview",
        "type": "object"
      },
      "WithdrawalEffect": {
        "additionalProperties": false,
        "description": "What the withdrawal did to one derived artefact.\n\nAn ``irrecoverable`` outcome must name the constraint. A trained model does\nnot unlearn, and recording that as \"removed\" would be reporting a result\nnobody achieved.",
        "properties": {
          "artefact_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Artefact Id",
            "type": "string"
          },
          "artefact_kind": {
            "enum": ["dataset", "experiment", "model", "evaluation"],
            "title": "Artefact Kind",
            "type": "string"
          },
          "constraint": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Constraint"
          },
          "outcome": {
            "enum": ["removed", "irrecoverable"],
            "title": "Outcome",
            "type": "string"
          },
          "records_removed": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Records Removed",
            "type": "integer"
          },
          "remediation": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remediation"
          }
        },
        "required": ["artefact_kind", "artefact_id", "outcome", "records_removed"],
        "title": "WithdrawalEffect",
        "type": "object"
      },
      "WithdrawalReport": {
        "additionalProperties": false,
        "description": "Every artefact the material reached, and what happened to each.\n\n``fully_removed`` is derived. A report claiming the material is gone while\nnaming an artefact it could not reach is unconstructible, which is what\nstops a withdrawal being closed on the artefacts it happened to manage.",
        "properties": {
          "completed_at": {
            "format": "date-time",
            "title": "Completed At",
            "type": "string"
          },
          "effects": {
            "items": {
              "$ref": "#/components/schemas/WithdrawalEffect"
            },
            "maxItems": 1000,
            "minItems": 1,
            "title": "Effects",
            "type": "array"
          },
          "fully_removed": {
            "title": "Fully Removed",
            "type": "boolean"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["request_id", "effects", "fully_removed", "completed_at"],
        "title": "WithdrawalReport",
        "type": "object"
      },
      "WithdrawalRequest": {
        "additionalProperties": false,
        "description": "A subject asking for their material to be withdrawn.\n\nThe subject is a digest. There is no field naming the person, for the same\nreason the opt-out register has none.",
        "properties": {
          "basis": {
            "enum": ["consent_withdrawn", "deletion_request", "licence_revoked"],
            "title": "Basis",
            "type": "string"
          },
          "request_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Request Id",
            "type": "string"
          },
          "requested_at": {
            "format": "date-time",
            "title": "Requested At",
            "type": "string"
          },
          "schema_version": {
            "const": "6.19.0",
            "default": "6.19.0",
            "title": "Schema Version",
            "type": "string"
          },
          "subject_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Subject Digest",
            "type": "string"
          },
          "tenant_id": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": ["request_id", "tenant_id", "subject_digest", "basis", "requested_at"],
        "title": "WithdrawalRequest",
        "type": "object"
      },
      "WithdrawalSubmission": {
        "additionalProperties": false,
        "description": "A withdrawal, and which models can be retrained rather than only stated.",
        "properties": {
          "models": {
            "default": [],
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "type": "string"
                },
                {
                  "type": "boolean"
                }
              ],
              "type": "array"
            },
            "maxItems": 100,
            "title": "Models",
            "type": "array"
          },
          "request": {
            "$ref": "#/components/schemas/WithdrawalRequest"
          }
        },
        "required": ["request"],
        "title": "WithdrawalSubmission",
        "type": "object"
      },
      "WithheldMatch": {
        "additionalProperties": false,
        "description": "A candidate that was found and not offered, and why.",
        "properties": {
          "entry_id": {
            "maxLength": 160,
            "pattern": "^[a-z][a-z0-9._:-]{2,159}$",
            "title": "Entry Id",
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "score": {
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Score",
            "type": "number"
          }
        },
        "required": ["entry_id", "score", "reason"],
        "title": "WithheldMatch",
        "type": "object"
      },
      "WorkAccounting": {
        "additionalProperties": false,
        "properties": {
          "cache_hit": {
            "title": "Cache Hit",
            "type": "boolean"
          },
          "candidates_available": {
            "maximum": 100000.0,
            "minimum": 0.0,
            "title": "Candidates Available",
            "type": "integer"
          },
          "candidates_considered": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Candidates Considered",
            "type": "integer"
          },
          "model_calls": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Model Calls",
            "type": "integer"
          },
          "truncated_by_bound": {
            "title": "Truncated By Bound",
            "type": "boolean"
          }
        },
        "required": [
          "candidates_considered",
          "candidates_available",
          "model_calls",
          "cache_hit",
          "truncated_by_bound"
        ],
        "title": "WorkAccounting",
        "type": "object"
      },
      "WorkBounds": {
        "additionalProperties": false,
        "properties": {
          "allow_cached_selection": {
            "title": "Allow Cached Selection",
            "type": "boolean"
          },
          "allow_degraded_selection": {
            "title": "Allow Degraded Selection",
            "type": "boolean"
          },
          "max_candidates_considered": {
            "maximum": 10000.0,
            "minimum": 1.0,
            "title": "Max Candidates Considered",
            "type": "integer"
          },
          "max_model_calls": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Max Model Calls",
            "type": "integer"
          }
        },
        "required": [
          "max_candidates_considered",
          "max_model_calls",
          "allow_cached_selection",
          "allow_degraded_selection"
        ],
        "title": "WorkBounds",
        "type": "object"
      },
      "WorkflowEvaluationReport": {
        "additionalProperties": false,
        "properties": {
          "decision_guard_probes": {
            "items": {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "enum": [
                    "not_a_decider",
                    "not_independent",
                    "declared_conflict",
                    "evidence_incomplete",
                    "learner_not_heard",
                    "stale_expected_version",
                    "wrong_state",
                    "cross_tenant"
                  ],
                  "type": "string"
                },
                {
                  "type": "boolean"
                }
              ],
              "type": "array"
            },
            "title": "Decision Guard Probes",
            "type": "array"
          },
          "every_excluded_role_refused": {
            "title": "Every Excluded Role Refused",
            "type": "boolean"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "outcome_corrections": {
            "items": {
              "maxItems": 3,
              "minItems": 3,
              "prefixItems": [
                {
                  "enum": ["affirm", "modify", "overturn", "remand", "withdraw", "expire"],
                  "type": "string"
                },
                {
                  "enum": [
                    "none",
                    "grade_recalculation",
                    "consequence_reversal",
                    "remedy_substitution",
                    "case_reopened"
                  ],
                  "type": "string"
                },
                {
                  "type": "boolean"
                }
              ],
              "type": "array"
            },
            "title": "Outcome Corrections",
            "type": "array"
          },
          "sample_outcome": {
            "$ref": "#/components/schemas/AppealOutcomeRecord"
          },
          "sample_trigger": {
            "$ref": "#/components/schemas/CorrectionTrigger"
          },
          "schema_version": {
            "const": "7.4.0",
            "default": "7.4.0",
            "title": "Schema Version",
            "type": "string"
          },
          "separation_probes": {
            "items": {
              "$ref": "#/components/schemas/IndependenceCheck"
            },
            "maxItems": 40,
            "minItems": 1,
            "title": "Separation Probes",
            "type": "array"
          }
        },
        "required": [
          "generated_at",
          "separation_probes",
          "every_excluded_role_refused",
          "decision_guard_probes",
          "outcome_corrections",
          "sample_outcome",
          "sample_trigger"
        ],
        "title": "WorkflowEvaluationReport",
        "type": "object"
      },
      "WorkloadBottleneck": {
        "additionalProperties": false,
        "properties": {
          "component_id": {
            "title": "Component Id",
            "type": "string"
          },
          "expected_minutes": {
            "minimum": 0.0,
            "title": "Expected Minutes",
            "type": "integer"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "metric": {
            "enum": ["learner_effort", "instructor_workload"],
            "title": "Metric",
            "type": "string"
          },
          "share_of_known_percent": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,8}|(?=[\\d.]{1,9}0*$)\\d*\\.\\d*0*$)",
            "title": "Share Of Known Percent",
            "type": "string"
          }
        },
        "required": [
          "component_id",
          "label",
          "metric",
          "expected_minutes",
          "share_of_known_percent"
        ],
        "title": "WorkloadBottleneck",
        "type": "object"
      },
      "WorkloadBriefSnapshot": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/CurriculumBriefAccessibilityConstraints"
          },
          "audience": {
            "$ref": "#/components/schemas/CurriculumBriefAudience"
          },
          "curriculum_brief_id": {
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "delivery": {
            "$ref": "#/components/schemas/CurriculumBriefDeliveryPlan"
          },
          "institution_constraints": {
            "items": {
              "$ref": "#/components/schemas/CurriculumBriefInstitutionConstraint"
            },
            "title": "Institution Constraints",
            "type": "array"
          },
          "review_id": {
            "title": "Review Id",
            "type": "string"
          },
          "revision_id": {
            "title": "Revision Id",
            "type": "string"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          },
          "validation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Validation Sha256",
            "type": "string"
          }
        },
        "required": [
          "curriculum_brief_id",
          "revision_id",
          "revision_sha256",
          "validation_sha256",
          "review_id",
          "tenant_id",
          "delivery",
          "audience",
          "institution_constraints",
          "accessibility",
          "source_sha256"
        ],
        "title": "WorkloadBriefSnapshot",
        "type": "object"
      },
      "WorkloadCalculation": {
        "additionalProperties": false,
        "properties": {
          "bottlenecks": {
            "items": {
              "$ref": "#/components/schemas/WorkloadBottleneck"
            },
            "maxItems": 10,
            "title": "Bottlenecks",
            "type": "array"
          },
          "calculation_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Calculation Sha256",
            "type": "string"
          },
          "calendar_duration": {
            "$ref": "#/components/schemas/WorkloadMetricResult"
          },
          "components": {
            "items": {
              "$ref": "#/components/schemas/WorkloadComponentCalculation"
            },
            "title": "Components",
            "type": "array"
          },
          "independent_time": {
            "$ref": "#/components/schemas/WorkloadMetricResult"
          },
          "instructor_workload": {
            "$ref": "#/components/schemas/WorkloadMetricResult"
          },
          "learner_effort": {
            "$ref": "#/components/schemas/WorkloadMetricResult"
          },
          "seat_time": {
            "$ref": "#/components/schemas/WorkloadMetricResult"
          }
        },
        "required": [
          "components",
          "learner_effort",
          "instructor_workload",
          "seat_time",
          "independent_time",
          "calendar_duration",
          "bottlenecks",
          "calculation_sha256"
        ],
        "title": "WorkloadCalculation",
        "type": "object"
      },
      "WorkloadCalendarCapacity": {
        "additionalProperties": false,
        "properties": {
          "active_days_per_week": {
            "maximum": 7.0,
            "minimum": 1.0,
            "title": "Active Days Per Week",
            "type": "integer"
          },
          "assumption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Assumption",
            "type": "string"
          },
          "instructor_minutes_per_week": {
            "maximum": 100800.0,
            "minimum": 1.0,
            "title": "Instructor Minutes Per Week",
            "type": "integer"
          },
          "learner_minutes_per_week": {
            "maximum": 100800.0,
            "minimum": 1.0,
            "title": "Learner Minutes Per Week",
            "type": "integer"
          }
        },
        "required": [
          "learner_minutes_per_week",
          "instructor_minutes_per_week",
          "active_days_per_week",
          "assumption"
        ],
        "title": "WorkloadCalendarCapacity",
        "type": "object"
      },
      "WorkloadComponentCalculation": {
        "additionalProperties": false,
        "properties": {
          "applied_factor_kinds": {
            "items": {
              "enum": ["difficulty", "learner_band", "language", "accessibility", "delivery"],
              "type": "string"
            },
            "title": "Applied Factor Kinds",
            "type": "array"
          },
          "assumptions": {
            "items": {
              "type": "string"
            },
            "title": "Assumptions",
            "type": "array"
          },
          "calculation_status": {
            "enum": ["calculated", "unknown", "not_applicable"],
            "title": "Calculation Status",
            "type": "string"
          },
          "component": {
            "$ref": "#/components/schemas/WorkloadComponentInput-Output"
          },
          "formula": {
            "title": "Formula",
            "type": "string"
          },
          "independent_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "instructor_workload": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "learner_effort": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "seat_time": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "title": "Source Refs",
            "type": "array"
          }
        },
        "required": [
          "component",
          "calculation_status",
          "learner_effort",
          "instructor_workload",
          "seat_time",
          "independent_time",
          "formula",
          "applied_factor_kinds",
          "assumptions",
          "source_refs"
        ],
        "title": "WorkloadComponentCalculation",
        "type": "object"
      },
      "WorkloadComponentInput-Input": {
        "additionalProperties": false,
        "properties": {
          "assumption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Assumption",
            "type": "string"
          },
          "component_id": {
            "pattern": "^work_component_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Component Id",
            "type": "string"
          },
          "component_kind": {
            "enum": [
              "reading_listening_viewing",
              "instruction",
              "discussion",
              "practice",
              "assessment",
              "project",
              "lab_simulation",
              "feedback",
              "navigation"
            ],
            "title": "Component Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "missing_reason": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Missing Reason"
          },
          "quantity": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity"
          },
          "quantity_status": {
            "enum": ["known", "unknown", "not_applicable"],
            "title": "Quantity Status",
            "type": "string"
          },
          "quantity_unit": {
            "anyOf": [
              {
                "enum": [
                  "planned_minute",
                  "media_minute",
                  "thousand_words",
                  "discussion_post",
                  "practice_item",
                  "assessment_item",
                  "project_hour",
                  "lab_minute",
                  "feedback_instance",
                  "navigation_step"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit"
          },
          "rate_id": {
            "anyOf": [
              {
                "pattern": "^effort_rate_[a-z0-9][a-z0-9_.-]{2,127}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate Id"
          },
          "seat_share_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seat Share Percent"
          },
          "source_kind": {
            "enum": ["outline", "course", "operator"],
            "title": "Source Kind",
            "type": "string"
          },
          "source_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Locator",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "zero_evidence": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zero Evidence"
          }
        },
        "required": [
          "component_id",
          "component_kind",
          "label",
          "quantity_status",
          "source_kind",
          "source_locator",
          "source_sha256",
          "assumption"
        ],
        "title": "WorkloadComponentInput",
        "type": "object"
      },
      "WorkloadComponentInput-Output": {
        "additionalProperties": false,
        "properties": {
          "assumption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Assumption",
            "type": "string"
          },
          "component_id": {
            "pattern": "^work_component_[a-z0-9][a-z0-9_.:-]{2,159}$",
            "title": "Component Id",
            "type": "string"
          },
          "component_kind": {
            "enum": [
              "reading_listening_viewing",
              "instruction",
              "discussion",
              "practice",
              "assessment",
              "project",
              "lab_simulation",
              "feedback",
              "navigation"
            ],
            "title": "Component Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "missing_reason": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Missing Reason"
          },
          "quantity": {
            "anyOf": [
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity"
          },
          "quantity_status": {
            "enum": ["known", "unknown", "not_applicable"],
            "title": "Quantity Status",
            "type": "string"
          },
          "quantity_unit": {
            "anyOf": [
              {
                "enum": [
                  "planned_minute",
                  "media_minute",
                  "thousand_words",
                  "discussion_post",
                  "practice_item",
                  "assessment_item",
                  "project_hour",
                  "lab_minute",
                  "feedback_instance",
                  "navigation_step"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity Unit"
          },
          "rate_id": {
            "anyOf": [
              {
                "pattern": "^effort_rate_[a-z0-9][a-z0-9_.-]{2,127}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate Id"
          },
          "seat_share_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seat Share Percent"
          },
          "source_kind": {
            "enum": ["outline", "course", "operator"],
            "title": "Source Kind",
            "type": "string"
          },
          "source_locator": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Locator",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "zero_evidence": {
            "anyOf": [
              {
                "maxLength": 2000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zero Evidence"
          }
        },
        "required": [
          "component_id",
          "component_kind",
          "label",
          "quantity_status",
          "source_kind",
          "source_locator",
          "source_sha256",
          "assumption"
        ],
        "title": "WorkloadComponentInput",
        "type": "object"
      },
      "WorkloadConstraintComparison": {
        "additionalProperties": false,
        "properties": {
          "comparison_id": {
            "title": "Comparison Id",
            "type": "string"
          },
          "evidence_ref": {
            "title": "Evidence Ref",
            "type": "string"
          },
          "metric": {
            "enum": [
              "learner_effort",
              "instructor_workload",
              "seat_time",
              "independent_time",
              "calendar_duration"
            ],
            "title": "Metric",
            "type": "string"
          },
          "operator": {
            "enum": ["minimum", "maximum", "exact"],
            "title": "Operator",
            "type": "string"
          },
          "policy_code": {
            "title": "Policy Code",
            "type": "string"
          },
          "policy_version": {
            "title": "Policy Version",
            "type": "string"
          },
          "result": {
            "enum": ["within", "below", "above", "straddles", "inconclusive_unknown"],
            "title": "Result",
            "type": "string"
          },
          "source": {
            "enum": ["brief", "institution"],
            "title": "Source",
            "type": "string"
          },
          "statement": {
            "title": "Statement",
            "type": "string"
          },
          "target_unit": {
            "enum": ["minute", "week"],
            "title": "Target Unit",
            "type": "string"
          },
          "target_value": {
            "title": "Target Value",
            "type": "integer"
          }
        },
        "required": [
          "comparison_id",
          "source",
          "policy_code",
          "policy_version",
          "evidence_ref",
          "metric",
          "operator",
          "target_value",
          "target_unit",
          "result",
          "statement"
        ],
        "title": "WorkloadConstraintComparison",
        "type": "object"
      },
      "WorkloadContextFactor-Input": {
        "additionalProperties": false,
        "properties": {
          "applies_to_component_kinds": {
            "items": {
              "enum": [
                "reading_listening_viewing",
                "instruction",
                "discussion",
                "practice",
                "assessment",
                "project",
                "lab_simulation",
                "feedback",
                "navigation"
              ],
              "type": "string"
            },
            "maxItems": 9,
            "minItems": 1,
            "title": "Applies To Component Kinds",
            "type": "array"
          },
          "assumption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Assumption",
            "type": "string"
          },
          "context_kind": {
            "enum": ["difficulty", "learner_band", "language", "accessibility", "delivery"],
            "title": "Context Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "multiplier": {
            "$ref": "#/components/schemas/WorkloadDecimalRange-Input"
          },
          "source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Ref",
            "type": "string"
          },
          "target": {
            "enum": ["learner", "instructor", "both"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "context_kind",
          "label",
          "target",
          "applies_to_component_kinds",
          "multiplier",
          "assumption",
          "source_ref"
        ],
        "title": "WorkloadContextFactor",
        "type": "object"
      },
      "WorkloadContextFactor-Output": {
        "additionalProperties": false,
        "properties": {
          "applies_to_component_kinds": {
            "items": {
              "enum": [
                "reading_listening_viewing",
                "instruction",
                "discussion",
                "practice",
                "assessment",
                "project",
                "lab_simulation",
                "feedback",
                "navigation"
              ],
              "type": "string"
            },
            "maxItems": 9,
            "minItems": 1,
            "title": "Applies To Component Kinds",
            "type": "array"
          },
          "assumption": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Assumption",
            "type": "string"
          },
          "context_kind": {
            "enum": ["difficulty", "learner_band", "language", "accessibility", "delivery"],
            "title": "Context Kind",
            "type": "string"
          },
          "label": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "multiplier": {
            "$ref": "#/components/schemas/WorkloadDecimalRange-Output"
          },
          "source_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Source Ref",
            "type": "string"
          },
          "target": {
            "enum": ["learner", "instructor", "both"],
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "context_kind",
          "label",
          "target",
          "applies_to_component_kinds",
          "multiplier",
          "assumption",
          "source_ref"
        ],
        "title": "WorkloadContextFactor",
        "type": "object"
      },
      "WorkloadDecimalRange-Input": {
        "additionalProperties": false,
        "properties": {
          "expected": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
                "type": "string"
              }
            ],
            "title": "Expected"
          },
          "lower": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
                "type": "string"
              }
            ],
            "title": "Lower"
          },
          "upper": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "number"
              },
              {
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
                "type": "string"
              }
            ],
            "title": "Upper"
          }
        },
        "required": ["lower", "expected", "upper"],
        "title": "WorkloadDecimalRange",
        "type": "object"
      },
      "WorkloadDecimalRange-Output": {
        "additionalProperties": false,
        "properties": {
          "expected": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
            "title": "Expected",
            "type": "string"
          },
          "lower": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
            "title": "Lower",
            "type": "string"
          },
          "upper": {
            "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,16}|(?=[\\d.]{1,17}0*$)\\d*\\.\\d*0*$)",
            "title": "Upper",
            "type": "string"
          }
        },
        "required": ["lower", "expected", "upper"],
        "title": "WorkloadDecimalRange",
        "type": "object"
      },
      "WorkloadEffortModelResponse": {
        "additionalProperties": false,
        "properties": {
          "arithmetic": {
            "const": "decimal_interval_v1",
            "default": "decimal_interval_v1",
            "title": "Arithmetic",
            "type": "string"
          },
          "limitations": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Limitations",
            "type": "array"
          },
          "model_id": {
            "const": "metis.workload-effort-model",
            "default": "metis.workload-effort-model",
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "const": "2026.08.1",
            "default": "2026.08.1",
            "title": "Model Version",
            "type": "string"
          },
          "rates": {
            "items": {
              "$ref": "#/components/schemas/WorkloadEffortRate"
            },
            "maxItems": 128,
            "minItems": 9,
            "title": "Rates",
            "type": "array"
          },
          "rounding": {
            "const": "component_ceiling_to_minute",
            "default": "component_ceiling_to_minute",
            "title": "Rounding",
            "type": "string"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          },
          "uncertainty_semantics": {
            "const": "scenario_range_not_probability",
            "default": "scenario_range_not_probability",
            "title": "Uncertainty Semantics",
            "type": "string"
          }
        },
        "required": ["rates", "limitations", "source_refs", "self_sha256"],
        "title": "WorkloadEffortModelResponse",
        "type": "object"
      },
      "WorkloadEffortRate": {
        "additionalProperties": false,
        "properties": {
          "assumptions": {
            "items": {
              "type": "string"
            },
            "maxItems": 32,
            "minItems": 1,
            "title": "Assumptions",
            "type": "array"
          },
          "component_kind": {
            "enum": [
              "reading_listening_viewing",
              "instruction",
              "discussion",
              "practice",
              "assessment",
              "project",
              "lab_simulation",
              "feedback",
              "navigation"
            ],
            "title": "Component Kind",
            "type": "string"
          },
          "default_seat_share_percent": {
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Default Seat Share Percent",
            "type": "integer"
          },
          "instructor_minutes_per_unit": {
            "$ref": "#/components/schemas/WorkloadDecimalRange-Output"
          },
          "instructor_scaling": {
            "enum": ["per_cohort", "per_learner"],
            "title": "Instructor Scaling",
            "type": "string"
          },
          "learner_minutes_per_unit": {
            "$ref": "#/components/schemas/WorkloadDecimalRange-Output"
          },
          "quantity_unit": {
            "enum": [
              "planned_minute",
              "media_minute",
              "thousand_words",
              "discussion_post",
              "practice_item",
              "assessment_item",
              "project_hour",
              "lab_minute",
              "feedback_instance",
              "navigation_step"
            ],
            "title": "Quantity Unit",
            "type": "string"
          },
          "rate_id": {
            "pattern": "^effort_rate_[a-z0-9][a-z0-9_.-]{2,127}$",
            "title": "Rate Id",
            "type": "string"
          },
          "source_refs": {
            "items": {
              "type": "string"
            },
            "maxItems": 16,
            "minItems": 1,
            "title": "Source Refs",
            "type": "array"
          }
        },
        "required": [
          "rate_id",
          "component_kind",
          "quantity_unit",
          "learner_minutes_per_unit",
          "instructor_minutes_per_unit",
          "instructor_scaling",
          "default_seat_share_percent",
          "assumptions",
          "source_refs"
        ],
        "title": "WorkloadEffortRate",
        "type": "object"
      },
      "WorkloadEstimateCollectionResponse": {
        "additionalProperties": false,
        "properties": {
          "estimates": {
            "items": {
              "$ref": "#/components/schemas/WorkloadEstimateWorkspaceResponse"
            },
            "maxItems": 4096,
            "title": "Estimates",
            "type": "array"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["generated_at", "estimates"],
        "title": "WorkloadEstimateCollectionResponse",
        "type": "object"
      },
      "WorkloadEstimateRecord": {
        "additionalProperties": false,
        "properties": {
          "brief": {
            "$ref": "#/components/schemas/WorkloadBriefSnapshot"
          },
          "calendar_capacity": {
            "$ref": "#/components/schemas/WorkloadCalendarCapacity"
          },
          "components": {
            "items": {
              "$ref": "#/components/schemas/WorkloadComponentInput-Output"
            },
            "title": "Components",
            "type": "array"
          },
          "context_factors": {
            "items": {
              "$ref": "#/components/schemas/WorkloadContextFactor-Output"
            },
            "title": "Context Factors",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "created_by_name": {
            "title": "Created By Name",
            "type": "string"
          },
          "created_by_role": {
            "enum": ["instructor", "admin"],
            "title": "Created By Role",
            "type": "string"
          },
          "effort_model": {
            "$ref": "#/components/schemas/WorkloadEffortModelResponse"
          },
          "estimate_id": {
            "pattern": "^workestimate_[a-f0-9]{40}$",
            "title": "Estimate Id",
            "type": "string"
          },
          "exact_source": {
            "discriminator": {
              "mapping": {
                "course_revision": "#/components/schemas/CourseWorkloadRevisionSnapshot-Output",
                "outline_variant": "#/components/schemas/WorkloadOutlineSourceSnapshot"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/WorkloadOutlineSourceSnapshot"
              },
              {
                "$ref": "#/components/schemas/CourseWorkloadRevisionSnapshot-Output"
              }
            ],
            "title": "Exact Source"
          },
          "institution_rules": {
            "items": {
              "$ref": "#/components/schemas/InstitutionWorkloadRule"
            },
            "title": "Institution Rules",
            "type": "array"
          },
          "rationale": {
            "title": "Rationale",
            "type": "string"
          },
          "raw_calculation": {
            "$ref": "#/components/schemas/WorkloadCalculation"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          },
          "tenant_id": {
            "title": "Tenant Id",
            "type": "string"
          }
        },
        "required": [
          "estimate_id",
          "tenant_id",
          "exact_source",
          "brief",
          "effort_model",
          "context_factors",
          "calendar_capacity",
          "institution_rules",
          "components",
          "raw_calculation",
          "rationale",
          "created_by",
          "created_by_name",
          "created_by_role",
          "created_at",
          "request_sha256",
          "self_sha256"
        ],
        "title": "WorkloadEstimateRecord",
        "type": "object"
      },
      "WorkloadEstimateRequest": {
        "additionalProperties": false,
        "properties": {
          "calendar_capacity": {
            "$ref": "#/components/schemas/WorkloadCalendarCapacity"
          },
          "context_factors": {
            "items": {
              "$ref": "#/components/schemas/WorkloadContextFactor-Input"
            },
            "maxItems": 5,
            "minItems": 5,
            "title": "Context Factors",
            "type": "array"
          },
          "curriculum_brief_id": {
            "pattern": "^brief_[a-f0-9]{40}$",
            "title": "Curriculum Brief Id",
            "type": "string"
          },
          "curriculum_brief_revision_id": {
            "pattern": "^briefrev_[a-f0-9]{40}$",
            "title": "Curriculum Brief Revision Id",
            "type": "string"
          },
          "expected_brief_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Brief Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "institution_rules": {
            "items": {
              "$ref": "#/components/schemas/InstitutionWorkloadRule"
            },
            "maxItems": 128,
            "title": "Institution Rules",
            "type": "array"
          },
          "model_id": {
            "const": "metis.workload-effort-model",
            "default": "metis.workload-effort-model",
            "title": "Model Id",
            "type": "string"
          },
          "model_version": {
            "const": "2026.08.1",
            "default": "2026.08.1",
            "title": "Model Version",
            "type": "string"
          },
          "rationale": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Rationale",
            "type": "string"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "discriminator": {
              "mapping": {
                "course_revision": "#/components/schemas/CourseWorkloadSourceRequest",
                "outline_variant": "#/components/schemas/OutlineWorkloadSourceRequest"
              },
              "propertyName": "kind"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/OutlineWorkloadSourceRequest"
              },
              {
                "$ref": "#/components/schemas/CourseWorkloadSourceRequest"
              }
            ],
            "title": "Source"
          },
          "supplemental_components": {
            "items": {
              "$ref": "#/components/schemas/WorkloadComponentInput-Input"
            },
            "maxItems": 10000,
            "title": "Supplemental Components",
            "type": "array"
          }
        },
        "required": [
          "idempotency_key",
          "source",
          "curriculum_brief_id",
          "curriculum_brief_revision_id",
          "expected_brief_revision_sha256",
          "context_factors",
          "calendar_capacity",
          "rationale"
        ],
        "title": "WorkloadEstimateRequest",
        "type": "object"
      },
      "WorkloadEstimateWorkspaceResponse": {
        "additionalProperties": false,
        "properties": {
          "adjusted_calculation": {
            "$ref": "#/components/schemas/WorkloadCalculation"
          },
          "adjusted_constraint_comparisons": {
            "items": {
              "$ref": "#/components/schemas/WorkloadConstraintComparison"
            },
            "title": "Adjusted Constraint Comparisons",
            "type": "array"
          },
          "overrides": {
            "items": {
              "$ref": "#/components/schemas/WorkloadOverrideRecord"
            },
            "title": "Overrides",
            "type": "array"
          },
          "raw_constraint_comparisons": {
            "items": {
              "$ref": "#/components/schemas/WorkloadConstraintComparison"
            },
            "title": "Raw Constraint Comparisons",
            "type": "array"
          },
          "record": {
            "$ref": "#/components/schemas/WorkloadEstimateRecord"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": [
          "record",
          "overrides",
          "adjusted_calculation",
          "raw_constraint_comparisons",
          "adjusted_constraint_comparisons",
          "workspace_sha256"
        ],
        "title": "WorkloadEstimateWorkspaceResponse",
        "type": "object"
      },
      "WorkloadMetricResult": {
        "additionalProperties": false,
        "properties": {
          "range": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "statement": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Statement",
            "type": "string"
          },
          "status": {
            "enum": ["complete", "known_subtotal", "unknown"],
            "title": "Status",
            "type": "string"
          },
          "unit": {
            "enum": ["minute", "week"],
            "title": "Unit",
            "type": "string"
          },
          "unknown_component_count": {
            "minimum": 0.0,
            "title": "Unknown Component Count",
            "type": "integer"
          }
        },
        "required": ["status", "range", "unit", "unknown_component_count", "statement"],
        "title": "WorkloadMetricResult",
        "type": "object"
      },
      "WorkloadMinuteRange": {
        "additionalProperties": false,
        "properties": {
          "expected": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Expected",
            "type": "integer"
          },
          "lower": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Lower",
            "type": "integer"
          },
          "upper": {
            "maximum": 100000000.0,
            "minimum": 0.0,
            "title": "Upper",
            "type": "integer"
          }
        },
        "required": ["lower", "expected", "upper"],
        "title": "WorkloadMinuteRange",
        "type": "object"
      },
      "WorkloadOutlineSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "kind": {
            "const": "outline_variant",
            "default": "outline_variant",
            "title": "Kind",
            "type": "string"
          },
          "set_id": {
            "title": "Set Id",
            "type": "string"
          },
          "source_brief_id": {
            "title": "Source Brief Id",
            "type": "string"
          },
          "source_brief_revision_id": {
            "title": "Source Brief Revision Id",
            "type": "string"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          },
          "variant_content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Variant Content Sha256",
            "type": "string"
          },
          "variant_id": {
            "title": "Variant Id",
            "type": "string"
          },
          "variant_self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Variant Self Sha256",
            "type": "string"
          },
          "workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Workspace Sha256",
            "type": "string"
          }
        },
        "required": [
          "set_id",
          "variant_id",
          "workspace_sha256",
          "variant_content_sha256",
          "variant_self_sha256",
          "title",
          "source_sha256",
          "source_brief_id",
          "source_brief_revision_id"
        ],
        "title": "WorkloadOutlineSourceSnapshot",
        "type": "object"
      },
      "WorkloadOverrideRecord": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "title": "Actor Id",
            "type": "string"
          },
          "actor_name": {
            "title": "Actor Name",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          },
          "component_id": {
            "title": "Component Id",
            "type": "string"
          },
          "estimate_id": {
            "title": "Estimate Id",
            "type": "string"
          },
          "evidence_ref": {
            "title": "Evidence Ref",
            "type": "string"
          },
          "expected_record_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Record Sha256",
            "type": "string"
          },
          "override_id": {
            "pattern": "^workoverride_[a-f0-9]{40}$",
            "title": "Override Id",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "recorded_at": {
            "format": "date-time",
            "title": "Recorded At",
            "type": "string"
          },
          "replacement_instructor_workload": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacement_learner_effort": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacement_seat_share_percent": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Seat Share Percent"
          },
          "schema_version": {
            "const": "2.14.0",
            "default": "2.14.0",
            "title": "Schema Version",
            "type": "string"
          },
          "self_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Self Sha256",
            "type": "string"
          }
        },
        "required": [
          "override_id",
          "estimate_id",
          "expected_record_sha256",
          "component_id",
          "replacement_learner_effort",
          "replacement_instructor_workload",
          "replacement_seat_share_percent",
          "reason",
          "evidence_ref",
          "actor_id",
          "actor_name",
          "actor_role",
          "recorded_at",
          "self_sha256"
        ],
        "title": "WorkloadOverrideRecord",
        "type": "object"
      },
      "WorkloadOverrideRequest": {
        "additionalProperties": false,
        "properties": {
          "component_id": {
            "title": "Component Id",
            "type": "string"
          },
          "evidence_ref": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Evidence Ref",
            "type": "string"
          },
          "expected_workspace_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Workspace Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "maxLength": 160,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Reason",
            "type": "string"
          },
          "replacement_instructor_workload": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacement_learner_effort": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WorkloadMinuteRange"
              },
              {
                "type": "null"
              }
            ]
          },
          "replacement_seat_share_percent": {
            "anyOf": [
              {
                "maximum": 100.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacement Seat Share Percent"
          }
        },
        "required": [
          "idempotency_key",
          "expected_workspace_sha256",
          "component_id",
          "reason",
          "evidence_ref"
        ],
        "title": "WorkloadOverrideRequest",
        "type": "object"
      },
      "WorkloadRequest": {
        "additionalProperties": false,
        "properties": {
          "at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "At"
          },
          "policy": {
            "$ref": "#/components/schemas/SlaPolicy"
          },
          "reviewers": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Reviewer"
            },
            "maxItems": 200,
            "title": "Reviewers",
            "type": "array"
          },
          "tasks": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ReviewTask"
            },
            "maxItems": 500,
            "title": "Tasks",
            "type": "array"
          }
        },
        "required": ["policy"],
        "title": "WorkloadRequest",
        "type": "object"
      },
      "WorkloadResponse": {
        "additionalProperties": false,
        "properties": {
          "counts_by_role": {
            "items": {
              "$ref": "#/components/schemas/SafeCount"
            },
            "title": "Counts By Role",
            "type": "array"
          },
          "rows": {
            "items": {
              "$ref": "#/components/schemas/WorkloadRow"
            },
            "title": "Rows",
            "type": "array"
          }
        },
        "required": ["rows", "counts_by_role"],
        "title": "WorkloadResponse",
        "type": "object"
      },
      "WorkloadRow": {
        "additionalProperties": false,
        "properties": {
          "breached": {
            "minimum": 0.0,
            "title": "Breached",
            "type": "integer"
          },
          "capacity": {
            "minimum": 0.0,
            "title": "Capacity",
            "type": "integer"
          },
          "current": {
            "minimum": 0.0,
            "title": "Current",
            "type": "integer"
          },
          "reviewer_digest": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Reviewer Digest",
            "type": "string"
          },
          "utilisation_percent": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utilisation Percent"
          }
        },
        "required": ["reviewer_digest", "current", "breached", "capacity"],
        "title": "WorkloadRow",
        "type": "object"
      },
      "WorkspaceSourceScope": {
        "properties": {
          "level": {
            "const": "workspace",
            "title": "Level",
            "type": "string"
          },
          "ownerId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ownerid",
            "type": "string"
          },
          "ownerName": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Ownername",
            "type": "string"
          },
          "workspaceId": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Workspaceid",
            "type": "string"
          },
          "workspaceTitle": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Workspacetitle",
            "type": "string"
          }
        },
        "required": ["level", "workspaceId", "workspaceTitle", "ownerId", "ownerName"],
        "title": "WorkspaceSourceScope",
        "type": "object"
      },
      "WorkspaceView": {
        "additionalProperties": false,
        "description": "Everything one workspace screen needs, for one subject and one viewer.",
        "properties": {
          "aggregate_state": {
            "anyOf": [
              {
                "enum": ["draft", "in_review", "approved", "published", "withdrawn"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Aggregate State"
          },
          "archived": {
            "default": false,
            "title": "Archived",
            "type": "boolean"
          },
          "capabilities": {
            "default": [],
            "items": {
              "enum": [
                "create",
                "read",
                "list",
                "edit",
                "new_revision",
                "transition",
                "archive",
                "restore"
              ],
              "type": "string"
            },
            "maxItems": 8,
            "title": "Capabilities",
            "type": "array"
          },
          "conflict": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConflictSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "etag": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Etag"
          },
          "hidden_groups": {
            "default": [],
            "items": {
              "enum": ["answer", "source", "learner", "review"],
              "type": "string"
            },
            "maxItems": 4,
            "title": "Hidden Groups",
            "type": "array"
          },
          "latest_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest Revision"
          },
          "logical_id": {
            "maxLength": 160,
            "minLength": 3,
            "title": "Logical Id",
            "type": "string"
          },
          "panels": {
            "items": {
              "$ref": "#/components/schemas/PanelLens"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Panels",
            "type": "array"
          },
          "refusal": {
            "anyOf": [
              {
                "maxLength": 400,
                "minLength": 8,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refusal"
          },
          "revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revision"
          },
          "revisions": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/RevisionMark"
            },
            "maxItems": 100,
            "title": "Revisions",
            "type": "array"
          },
          "save": {
            "default": "clean",
            "enum": ["clean", "dirty", "saving", "saved", "conflicted", "refused"],
            "title": "Save",
            "type": "string"
          },
          "schema_version": {
            "const": "9.3.1",
            "default": "9.3.1",
            "title": "Schema Version",
            "type": "string"
          },
          "values": {
            "additionalProperties": true,
            "title": "Values",
            "type": "object"
          },
          "workspace": {
            "enum": ["course", "item"],
            "title": "Workspace",
            "type": "string"
          }
        },
        "required": ["workspace", "logical_id", "panels"],
        "title": "WorkspaceView",
        "type": "object"
      },
      "WrittenResponseAcceptableVariant": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Description",
            "type": "array"
          },
          "element_ids": {
            "items": {
              "pattern": "^element:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Element Ids",
            "type": "array"
          },
          "tolerance": {
            "$ref": "#/components/schemas/WrittenResponseTolerance"
          },
          "variant_id": {
            "pattern": "^variant:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Variant Id",
            "type": "string"
          }
        },
        "required": ["variant_id", "element_ids", "description", "tolerance"],
        "title": "WrittenResponseAcceptableVariant",
        "type": "object"
      },
      "WrittenResponseAccessibility": {
        "additionalProperties": false,
        "properties": {
          "assistive_technology_review_required": {
            "const": true,
            "default": true,
            "title": "Assistive Technology Review Required",
            "type": "boolean"
          },
          "editor_label": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Editor Label",
            "type": "array"
          },
          "format_instructions": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Format Instructions",
            "type": "array"
          },
          "keyboard_only_response_supported": {
            "const": true,
            "default": true,
            "title": "Keyboard Only Response Supported",
            "type": "boolean"
          },
          "media_alternative_instructions": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Media Alternative Instructions",
            "type": "array"
          },
          "source_descriptions_verified": {
            "const": true,
            "default": true,
            "title": "Source Descriptions Verified",
            "type": "boolean"
          }
        },
        "required": ["editor_label", "format_instructions", "media_alternative_instructions"],
        "title": "WrittenResponseAccessibility",
        "type": "object"
      },
      "WrittenResponseActor": {
        "additionalProperties": false,
        "properties": {
          "actor_id": {
            "format": "uuid",
            "title": "Actor Id",
            "type": "string"
          },
          "actor_role": {
            "enum": ["instructor", "admin"],
            "title": "Actor Role",
            "type": "string"
          }
        },
        "required": ["actor_id", "actor_role"],
        "title": "WrittenResponseActor",
        "type": "object"
      },
      "WrittenResponseAnswerModel": {
        "additionalProperties": false,
        "properties": {
          "acceptable_variants": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseAcceptableVariant"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Acceptable Variants",
            "type": "array"
          },
          "elements": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseElement"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Elements",
            "type": "array"
          },
          "evaluation_basis": {
            "const": "evidence_elements",
            "default": "evidence_elements",
            "title": "Evaluation Basis",
            "type": "string"
          },
          "evidence_boundaries": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseEvidenceBoundary"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Evidence Boundaries",
            "type": "array"
          },
          "hidden_exact_strings_prohibited": {
            "const": true,
            "default": true,
            "title": "Hidden Exact Strings Prohibited",
            "type": "boolean"
          }
        },
        "required": ["elements", "acceptable_variants", "evidence_boundaries"],
        "title": "WrittenResponseAnswerModel",
        "type": "object"
      },
      "WrittenResponseAuthorPreview": {
        "additionalProperties": false,
        "properties": {
          "constraints": {
            "$ref": "#/components/schemas/WrittenResponseConstraints"
          },
          "context": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "editor_label": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "exemplar_performance_levels": {
            "items": {
              "type": "string"
            },
            "title": "Exemplar Performance Levels",
            "type": "array"
          },
          "format_instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_alternative_instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "mode": {
            "const": "author",
            "default": "author",
            "title": "Mode",
            "type": "string"
          },
          "prompt": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "response_type": {
            "enum": ["constructed_response", "essay"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scoring_guide_revision": {
            "minimum": 1.0,
            "title": "Scoring Guide Revision",
            "type": "integer"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "title": "Source References",
            "type": "array"
          },
          "written_response_id": {
            "title": "Written Response Id",
            "type": "string"
          }
        },
        "required": [
          "written_response_id",
          "revision",
          "revision_sha256",
          "locale",
          "response_type",
          "prompt",
          "context",
          "instructions",
          "constraints",
          "editor_label",
          "format_instructions",
          "media_alternative_instructions",
          "source_references",
          "scoring_guide_revision",
          "exemplar_performance_levels"
        ],
        "title": "WrittenResponseAuthorPreview",
        "type": "object"
      },
      "WrittenResponseConstraints": {
        "additionalProperties": false,
        "properties": {
          "accepted_citation_styles": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Accepted Citation Styles",
            "type": "array"
          },
          "allowed_mime_types": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Allowed Mime Types",
            "type": "array"
          },
          "citation_policy": {
            "default": "none",
            "enum": ["none", "optional", "required"],
            "title": "Citation Policy",
            "type": "string"
          },
          "languages": {
            "items": {
              "maxLength": 63,
              "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Languages",
            "type": "array"
          },
          "learner_media_permitted": {
            "default": false,
            "title": "Learner Media Permitted",
            "type": "boolean"
          },
          "maximum_characters": {
            "maximum": 200000.0,
            "minimum": 1.0,
            "title": "Maximum Characters",
            "type": "integer"
          },
          "maximum_upload_bytes": {
            "anyOf": [
              {
                "maximum": 104857600.0,
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Upload Bytes"
          },
          "maximum_words": {
            "maximum": 50000.0,
            "minimum": 1.0,
            "title": "Maximum Words",
            "type": "integer"
          },
          "minimum_characters": {
            "maximum": 200000.0,
            "minimum": 0.0,
            "title": "Minimum Characters",
            "type": "integer"
          },
          "minimum_citations": {
            "default": 0,
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Minimum Citations",
            "type": "integer"
          },
          "minimum_words": {
            "maximum": 50000.0,
            "minimum": 0.0,
            "title": "Minimum Words",
            "type": "integer"
          },
          "response_formats": {
            "items": {
              "enum": ["plain_text", "rich_text", "markdown", "document_upload"],
              "type": "string"
            },
            "maxItems": 4,
            "minItems": 1,
            "title": "Response Formats",
            "type": "array"
          }
        },
        "required": [
          "response_formats",
          "languages",
          "minimum_characters",
          "maximum_characters",
          "minimum_words",
          "maximum_words"
        ],
        "title": "WrittenResponseConstraints",
        "type": "object"
      },
      "WrittenResponseCriterionMapping": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "pattern": "^criterion:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "element_ids": {
            "items": {
              "pattern": "^element:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Element Ids",
            "type": "array"
          },
          "maximum_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "Maximum Points",
            "type": "integer"
          },
          "rubric_criterion_ref": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Rubric Criterion Ref",
            "type": "string"
          }
        },
        "required": ["criterion_id", "rubric_criterion_ref", "element_ids", "maximum_points"],
        "title": "WrittenResponseCriterionMapping",
        "type": "object"
      },
      "WrittenResponseDraft": {
        "additionalProperties": false,
        "properties": {
          "accessibility": {
            "$ref": "#/components/schemas/WrittenResponseAccessibility"
          },
          "answer_model": {
            "$ref": "#/components/schemas/WrittenResponseAnswerModel"
          },
          "constraints": {
            "$ref": "#/components/schemas/WrittenResponseConstraints"
          },
          "default_locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Default Locale",
            "type": "string"
          },
          "exemplars": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseExemplar"
            },
            "maxItems": 20,
            "minItems": 2,
            "title": "Exemplars",
            "type": "array"
          },
          "kind": {
            "enum": ["assessment-kind:constructed-response", "assessment-kind:essay"],
            "title": "Kind",
            "type": "string"
          },
          "locale_surfaces": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocaleSurface"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Locale Surfaces",
            "type": "array"
          },
          "moderation": {
            "$ref": "#/components/schemas/WrittenResponseModerationPolicy"
          },
          "scoring": {
            "$ref": "#/components/schemas/WrittenResponseScoringPolicy"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          }
        },
        "required": [
          "kind",
          "default_locale",
          "locale_surfaces",
          "constraints",
          "accessibility",
          "source_references",
          "answer_model",
          "scoring",
          "exemplars",
          "moderation"
        ],
        "title": "WrittenResponseDraft",
        "type": "object"
      },
      "WrittenResponseElement": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Description",
            "type": "array"
          },
          "element_id": {
            "pattern": "^element:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "title": "Element Id",
            "type": "string"
          },
          "evidence_weight": {
            "maximum": 100.0,
            "minimum": 1.0,
            "title": "Evidence Weight",
            "type": "integer"
          },
          "label": {
            "maxLength": 300,
            "minLength": 1,
            "title": "Label",
            "type": "string"
          },
          "required": {
            "title": "Required",
            "type": "boolean"
          }
        },
        "required": ["element_id", "label", "description", "required", "evidence_weight"],
        "title": "WrittenResponseElement",
        "type": "object"
      },
      "WrittenResponseEvidenceBoundary": {
        "additionalProperties": false,
        "properties": {
          "boundary_id": {
            "pattern": "^boundary:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Boundary Id",
            "type": "string"
          },
          "classification": {
            "enum": ["unacceptable", "missing"],
            "title": "Classification",
            "type": "string"
          },
          "description": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Description",
            "type": "array"
          },
          "related_element_ids": {
            "default": [],
            "items": {
              "pattern": "^element:[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
              "type": "string"
            },
            "maxItems": 100,
            "title": "Related Element Ids",
            "type": "array"
          }
        },
        "required": ["boundary_id", "classification", "description"],
        "title": "WrittenResponseEvidenceBoundary",
        "type": "object"
      },
      "WrittenResponseExemplar": {
        "additionalProperties": false,
        "properties": {
          "annotations": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseExemplarAnnotation"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Annotations",
            "type": "array"
          },
          "content": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Content",
            "type": "array"
          },
          "exemplar_id": {
            "pattern": "^exemplar:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Exemplar Id",
            "type": "string"
          },
          "performance_level": {
            "maxLength": 200,
            "minLength": 1,
            "title": "Performance Level",
            "type": "string"
          },
          "protected_learner_identity_present": {
            "const": false,
            "default": false,
            "title": "Protected Learner Identity Present",
            "type": "boolean"
          },
          "redaction": {
            "$ref": "#/components/schemas/WrittenResponseRedaction"
          },
          "rights": {
            "$ref": "#/components/schemas/WrittenResponseRights"
          }
        },
        "required": [
          "exemplar_id",
          "performance_level",
          "content",
          "annotations",
          "rights",
          "redaction"
        ],
        "title": "WrittenResponseExemplar",
        "type": "object"
      },
      "WrittenResponseExemplarAnnotation": {
        "additionalProperties": false,
        "properties": {
          "criterion_id": {
            "pattern": "^criterion:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Criterion Id",
            "type": "string"
          },
          "note": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Note",
            "type": "array"
          }
        },
        "required": ["criterion_id", "note"],
        "title": "WrittenResponseExemplarAnnotation",
        "type": "object"
      },
      "WrittenResponseLearnerPreview": {
        "additionalProperties": false,
        "properties": {
          "constraints": {
            "$ref": "#/components/schemas/WrittenResponseConstraints"
          },
          "context": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "editor_label": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "format_instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_alternative_instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "mode": {
            "const": "learner",
            "default": "learner",
            "title": "Mode",
            "type": "string"
          },
          "prompt": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "response_type": {
            "enum": ["constructed_response", "essay"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "written_response_id": {
            "title": "Written Response Id",
            "type": "string"
          }
        },
        "required": [
          "written_response_id",
          "revision",
          "revision_sha256",
          "locale",
          "response_type",
          "prompt",
          "context",
          "instructions",
          "constraints",
          "editor_label",
          "format_instructions",
          "media_alternative_instructions"
        ],
        "title": "WrittenResponseLearnerPreview",
        "type": "object"
      },
      "WrittenResponseLocaleSurface": {
        "additionalProperties": false,
        "properties": {
          "context": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "prompt": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          }
        },
        "required": ["locale", "prompt", "context", "instructions"],
        "title": "WrittenResponseLocaleSurface",
        "type": "object"
      },
      "WrittenResponseLocalizedContent": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          }
        },
        "required": ["locale", "content"],
        "title": "WrittenResponseLocalizedContent",
        "type": "object"
      },
      "WrittenResponseMarkerPreview": {
        "additionalProperties": false,
        "properties": {
          "answer_model": {
            "$ref": "#/components/schemas/WrittenResponseAnswerModel"
          },
          "constraints": {
            "$ref": "#/components/schemas/WrittenResponseConstraints"
          },
          "context": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "editor_label": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "exemplars": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseExemplar"
            },
            "title": "Exemplars",
            "type": "array"
          },
          "format_instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "media_alternative_instructions": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "mode": {
            "const": "marker",
            "default": "marker",
            "title": "Mode",
            "type": "string"
          },
          "moderation": {
            "$ref": "#/components/schemas/WrittenResponseModerationPolicy"
          },
          "prompt": {
            "$ref": "#/components/schemas/WrittenResponseRichContent"
          },
          "protected_properties_visible": {
            "const": true,
            "default": true,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "response_type": {
            "enum": ["constructed_response", "essay"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "scoring": {
            "$ref": "#/components/schemas/WrittenResponseScoringPolicy"
          },
          "written_response_id": {
            "title": "Written Response Id",
            "type": "string"
          }
        },
        "required": [
          "written_response_id",
          "revision",
          "revision_sha256",
          "locale",
          "response_type",
          "prompt",
          "context",
          "instructions",
          "constraints",
          "editor_label",
          "format_instructions",
          "media_alternative_instructions",
          "answer_model",
          "scoring",
          "exemplars",
          "moderation"
        ],
        "title": "WrittenResponseMarkerPreview",
        "type": "object"
      },
      "WrittenResponseModelAssistance": {
        "additionalProperties": false,
        "properties": {
          "evaluation_profile_ref": {
            "anyOf": [
              {
                "maxLength": 300,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evaluation Profile Ref"
          },
          "maximum_recommendation_weight_basis_points": {
            "default": 0,
            "maximum": 3000.0,
            "minimum": 0.0,
            "title": "Maximum Recommendation Weight Basis Points",
            "type": "integer"
          },
          "may_finalize_score": {
            "const": false,
            "default": false,
            "title": "May Finalize Score",
            "type": "boolean"
          },
          "minimum_confidence_basis_points": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Minimum Confidence Basis Points",
            "type": "integer"
          },
          "mode": {
            "default": "disabled",
            "enum": ["disabled", "advisory"],
            "title": "Mode",
            "type": "string"
          }
        },
        "title": "WrittenResponseModelAssistance",
        "type": "object"
      },
      "WrittenResponseModerationAudit": {
        "additionalProperties": false,
        "properties": {
          "append_only_audit_required": {
            "const": true,
            "default": true,
            "title": "Append Only Audit Required",
            "type": "boolean"
          },
          "capture_blind_stage": {
            "const": true,
            "default": true,
            "title": "Capture Blind Stage",
            "type": "boolean"
          },
          "capture_criterion_scores": {
            "const": true,
            "default": true,
            "title": "Capture Criterion Scores",
            "type": "boolean"
          },
          "capture_marker_identity": {
            "const": true,
            "default": true,
            "title": "Capture Marker Identity",
            "type": "boolean"
          },
          "capture_model_recommendation_and_override": {
            "const": true,
            "default": true,
            "title": "Capture Model Recommendation And Override",
            "type": "boolean"
          },
          "capture_rationale": {
            "const": true,
            "default": true,
            "title": "Capture Rationale",
            "type": "boolean"
          },
          "capture_reconciliation_events": {
            "const": true,
            "default": true,
            "title": "Capture Reconciliation Events",
            "type": "boolean"
          }
        },
        "title": "WrittenResponseModerationAudit",
        "type": "object"
      },
      "WrittenResponseModerationPlan": {
        "additionalProperties": false,
        "properties": {
          "blind_review": {
            "title": "Blind Review",
            "type": "boolean"
          },
          "discrepancy_basis_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discrepancy Basis Points"
          },
          "discrepancy_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discrepancy Points"
          },
          "first_score_points": {
            "title": "First Score Points",
            "type": "integer"
          },
          "human_final_decision_required": {
            "const": true,
            "default": true,
            "title": "Human Final Decision Required",
            "type": "boolean"
          },
          "reconciliation_method": {
            "anyOf": [
              {
                "enum": ["lead_reviewer", "third_marker", "consensus"],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reconciliation Method"
          },
          "required_audit_events": {
            "items": {
              "enum": [
                "first_mark",
                "second_mark",
                "model_recommendation",
                "human_override",
                "reconciliation",
                "final_decision"
              ],
              "type": "string"
            },
            "title": "Required Audit Events",
            "type": "array"
          },
          "second_score_points": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Second Score Points"
          },
          "status": {
            "enum": ["awaiting_second_mark", "complete", "reconciliation_required"],
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status",
          "first_score_points",
          "second_score_points",
          "discrepancy_points",
          "discrepancy_basis_points",
          "reconciliation_method",
          "blind_review",
          "required_audit_events"
        ],
        "title": "WrittenResponseModerationPlan",
        "type": "object"
      },
      "WrittenResponseModerationPolicy": {
        "additionalProperties": false,
        "properties": {
          "audit": {
            "$ref": "#/components/schemas/WrittenResponseModerationAudit"
          },
          "blind_review": {
            "title": "Blind Review",
            "type": "boolean"
          },
          "discrepancy_threshold_basis_points": {
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Discrepancy Threshold Basis Points",
            "type": "integer"
          },
          "first_marking": {
            "const": "required",
            "default": "required",
            "title": "First Marking",
            "type": "string"
          },
          "minimum_markers": {
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Minimum Markers",
            "type": "integer"
          },
          "reconciliation_method": {
            "enum": ["lead_reviewer", "third_marker", "consensus"],
            "title": "Reconciliation Method",
            "type": "string"
          },
          "sample_basis_points": {
            "default": 0,
            "maximum": 10000.0,
            "minimum": 0.0,
            "title": "Sample Basis Points",
            "type": "integer"
          },
          "second_marking": {
            "enum": ["none", "always", "threshold", "sample"],
            "title": "Second Marking",
            "type": "string"
          }
        },
        "required": [
          "second_marking",
          "blind_review",
          "minimum_markers",
          "discrepancy_threshold_basis_points",
          "reconciliation_method",
          "audit"
        ],
        "title": "WrittenResponseModerationPolicy",
        "type": "object"
      },
      "WrittenResponseModerationRequest": {
        "additionalProperties": false,
        "properties": {
          "first_score_points": {
            "maximum": 1000000.0,
            "minimum": 0.0,
            "title": "First Score Points",
            "type": "integer"
          },
          "second_score_points": {
            "anyOf": [
              {
                "maximum": 1000000.0,
                "minimum": 0.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Second Score Points"
          }
        },
        "required": ["first_score_points"],
        "title": "WrittenResponseModerationRequest",
        "type": "object"
      },
      "WrittenResponsePreparationResponse": {
        "additionalProperties": false,
        "properties": {
          "allowed_response_type": {
            "enum": ["constructed_response", "essay"],
            "title": "Allowed Response Type",
            "type": "string"
          },
          "current": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WrittenResponseRevisionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "property_policy": {
            "$ref": "#/components/schemas/WrittenResponsePropertyPolicy"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/WrittenResponseSourceSnapshot"
          }
        },
        "required": ["source", "allowed_response_type", "property_policy"],
        "title": "WrittenResponsePreparationResponse",
        "type": "object"
      },
      "WrittenResponsePropertyPolicy": {
        "additionalProperties": false,
        "properties": {
          "author_api_roles": {
            "default": ["instructor", "admin"],
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "title": "Author Api Roles",
            "type": "array"
          },
          "editor_ui_roles": {
            "default": ["instructor", "admin"],
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "title": "Editor Ui Roles",
            "type": "array"
          },
          "learner_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Learner Protected Properties Visible",
            "type": "boolean"
          },
          "log_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Log Protected Properties Visible",
            "type": "boolean"
          },
          "marker_preview_roles": {
            "default": ["instructor", "admin"],
            "items": {
              "enum": ["instructor", "admin"],
              "type": "string"
            },
            "title": "Marker Preview Roles",
            "type": "array"
          },
          "policy_version": {
            "const": "metis.written-response-properties.v1",
            "default": "metis.written-response-properties.v1",
            "title": "Policy Version",
            "type": "string"
          },
          "protected_export_requires_explicit_author_role": {
            "const": true,
            "default": true,
            "title": "Protected Export Requires Explicit Author Role",
            "type": "boolean"
          },
          "search_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Search Protected Properties Visible",
            "type": "boolean"
          },
          "tutor_protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Tutor Protected Properties Visible",
            "type": "boolean"
          }
        },
        "title": "WrittenResponsePropertyPolicy",
        "type": "object"
      },
      "WrittenResponseProtectedExport": {
        "additionalProperties": false,
        "properties": {
          "authorization_scope": {
            "const": "written-response:protected-export",
            "default": "written-response:protected-export",
            "title": "Authorization Scope",
            "type": "string"
          },
          "protected_properties_visible": {
            "const": true,
            "default": true,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "revision": {
            "$ref": "#/components/schemas/WrittenResponseRevisionResponse"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["revision"],
        "title": "WrittenResponseProtectedExport",
        "type": "object"
      },
      "WrittenResponseRedaction": {
        "additionalProperties": false,
        "properties": {
          "direct_identifiers_removed": {
            "const": true,
            "default": true,
            "title": "Direct Identifiers Removed",
            "type": "boolean"
          },
          "indirect_identifiers_reviewed": {
            "const": true,
            "default": true,
            "title": "Indirect Identifiers Reviewed",
            "type": "boolean"
          },
          "learner_identity_removed": {
            "const": true,
            "default": true,
            "title": "Learner Identity Removed",
            "type": "boolean"
          },
          "redaction_notes": {
            "maxLength": 4000,
            "minLength": 1,
            "title": "Redaction Notes",
            "type": "string"
          },
          "status": {
            "const": "verified",
            "default": "verified",
            "title": "Status",
            "type": "string"
          }
        },
        "required": ["redaction_notes"],
        "title": "WrittenResponseRedaction",
        "type": "object"
      },
      "WrittenResponseRevisionHistoryResponse": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "revisions": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseRevisionResponse"
            },
            "title": "Revisions",
            "type": "array"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          }
        },
        "required": ["draft_id", "revisions"],
        "title": "WrittenResponseRevisionHistoryResponse",
        "type": "object"
      },
      "WrittenResponseRevisionRequest": {
        "additionalProperties": false,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/WrittenResponseDraft"
          },
          "expected_editor_revision": {
            "anyOf": [
              {
                "minimum": 1.0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision"
          },
          "expected_editor_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expected Editor Revision Sha256"
          },
          "expected_source_revision": {
            "minimum": 1.0,
            "title": "Expected Source Revision",
            "type": "integer"
          },
          "expected_source_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Expected Source Revision Sha256",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$",
            "title": "Idempotency Key",
            "type": "string"
          },
          "reason": {
            "maxLength": 2000,
            "minLength": 12,
            "title": "Reason",
            "type": "string"
          }
        },
        "required": [
          "idempotency_key",
          "expected_source_revision",
          "expected_source_revision_sha256",
          "reason",
          "content"
        ],
        "title": "WrittenResponseRevisionRequest",
        "type": "object"
      },
      "WrittenResponseRevisionResponse": {
        "additionalProperties": false,
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/WrittenResponseActor"
          },
          "content": {
            "$ref": "#/components/schemas/WrittenResponseDraft"
          },
          "content_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Content Sha256",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "previous_revision_sha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Revision Sha256"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "request_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Request Sha256",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/WrittenResponseSourceSnapshot"
          },
          "tenant_id": {
            "format": "uuid",
            "title": "Tenant Id",
            "type": "string"
          },
          "written_response_id": {
            "pattern": "^written-response-[a-f0-9]{40}$",
            "title": "Written Response Id",
            "type": "string"
          }
        },
        "required": [
          "written_response_id",
          "draft_id",
          "tenant_id",
          "revision",
          "source",
          "actor",
          "reason",
          "content",
          "content_sha256",
          "request_sha256",
          "previous_revision_sha256",
          "revision_sha256",
          "created_at"
        ],
        "title": "WrittenResponseRevisionResponse",
        "type": "object"
      },
      "WrittenResponseRichContent": {
        "additionalProperties": false,
        "properties": {
          "accessible_text": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Accessible Text",
            "type": "string"
          },
          "format": {
            "default": "plain_text",
            "enum": ["plain_text", "markdown"],
            "title": "Format",
            "type": "string"
          },
          "value": {
            "maxLength": 200000,
            "minLength": 1,
            "title": "Value",
            "type": "string"
          }
        },
        "required": ["value", "accessible_text"],
        "title": "WrittenResponseRichContent",
        "type": "object"
      },
      "WrittenResponseRights": {
        "additionalProperties": false,
        "properties": {
          "authorized_at": {
            "format": "date-time",
            "title": "Authorized At",
            "type": "string"
          },
          "authorized_by": {
            "format": "uuid",
            "title": "Authorized By",
            "type": "string"
          },
          "basis": {
            "enum": ["educator_authored", "licensed", "permission", "public_domain"],
            "title": "Basis",
            "type": "string"
          },
          "license_or_permission_ref": {
            "maxLength": 1000,
            "minLength": 1,
            "title": "License Or Permission Ref",
            "type": "string"
          },
          "rights_holder": {
            "maxLength": 500,
            "minLength": 1,
            "title": "Rights Holder",
            "type": "string"
          }
        },
        "required": [
          "basis",
          "rights_holder",
          "license_or_permission_ref",
          "authorized_by",
          "authorized_at"
        ],
        "title": "WrittenResponseRights",
        "type": "object"
      },
      "WrittenResponseSafeProjection": {
        "additionalProperties": false,
        "properties": {
          "excluded_properties": {
            "items": {
              "enum": [
                "answer_model",
                "scoring",
                "criterion_mappings",
                "exemplars",
                "moderation",
                "model_assistance",
                "marker_identity"
              ],
              "type": "string"
            },
            "title": "Excluded Properties",
            "type": "array"
          },
          "kind": {
            "enum": ["assessment-kind:constructed-response", "assessment-kind:essay"],
            "title": "Kind",
            "type": "string"
          },
          "locale": {
            "maxLength": 63,
            "pattern": "^[A-Za-z]{2,8}(?:-[A-Za-z0-9]{1,8})*$",
            "title": "Locale",
            "type": "string"
          },
          "prompt_text": {
            "title": "Prompt Text",
            "type": "string"
          },
          "protected_properties_visible": {
            "const": false,
            "default": false,
            "title": "Protected Properties Visible",
            "type": "boolean"
          },
          "response_formats": {
            "items": {
              "type": "string"
            },
            "title": "Response Formats",
            "type": "array"
          },
          "response_type": {
            "enum": ["constructed_response", "essay"],
            "title": "Response Type",
            "type": "string"
          },
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "surface": {
            "enum": ["learner", "search", "export", "log", "tutor"],
            "title": "Surface",
            "type": "string"
          },
          "written_response_id": {
            "title": "Written Response Id",
            "type": "string"
          }
        },
        "required": [
          "surface",
          "written_response_id",
          "revision",
          "revision_sha256",
          "kind",
          "locale",
          "response_type",
          "prompt_text",
          "response_formats",
          "excluded_properties"
        ],
        "title": "WrittenResponseSafeProjection",
        "type": "object"
      },
      "WrittenResponseScoringGuideRef": {
        "additionalProperties": false,
        "properties": {
          "revision": {
            "minimum": 1.0,
            "title": "Revision",
            "type": "integer"
          },
          "revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Revision Sha256",
            "type": "string"
          },
          "rubric_id": {
            "pattern": "^rubric:[a-z0-9][a-z0-9._-]{2,127}$",
            "title": "Rubric Id",
            "type": "string"
          }
        },
        "required": ["rubric_id", "revision", "revision_sha256"],
        "title": "WrittenResponseScoringGuideRef",
        "type": "object"
      },
      "WrittenResponseScoringPolicy": {
        "additionalProperties": false,
        "properties": {
          "criterion_mappings": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseCriterionMapping"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Criterion Mappings",
            "type": "array"
          },
          "human_final_decision_required": {
            "const": true,
            "default": true,
            "title": "Human Final Decision Required",
            "type": "boolean"
          },
          "maximum_points": {
            "maximum": 1000000.0,
            "minimum": 1.0,
            "title": "Maximum Points",
            "type": "integer"
          },
          "method": {
            "enum": ["analytic_partial", "holistic"],
            "title": "Method",
            "type": "string"
          },
          "minimum_human_markers": {
            "maximum": 10.0,
            "minimum": 1.0,
            "title": "Minimum Human Markers",
            "type": "integer"
          },
          "model_assistance": {
            "$ref": "#/components/schemas/WrittenResponseModelAssistance"
          },
          "scoring_guide": {
            "$ref": "#/components/schemas/WrittenResponseScoringGuideRef"
          }
        },
        "required": [
          "method",
          "maximum_points",
          "scoring_guide",
          "criterion_mappings",
          "minimum_human_markers",
          "model_assistance"
        ],
        "title": "WrittenResponseScoringPolicy",
        "type": "object"
      },
      "WrittenResponseSourceSnapshot": {
        "additionalProperties": false,
        "properties": {
          "draft_id": {
            "format": "uuid",
            "title": "Draft Id",
            "type": "string"
          },
          "draft_revision": {
            "minimum": 1.0,
            "title": "Draft Revision",
            "type": "integer"
          },
          "draft_revision_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Draft Revision Sha256",
            "type": "string"
          },
          "kind": {
            "enum": ["assessment-kind:constructed-response", "assessment-kind:essay"],
            "title": "Kind",
            "type": "string"
          },
          "objective_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Objective Ids",
            "type": "array"
          },
          "prompt": {
            "maxLength": 100000,
            "minLength": 1,
            "title": "Prompt",
            "type": "string"
          },
          "schema_version": {
            "const": "4.5.0",
            "default": "4.5.0",
            "title": "Schema Version",
            "type": "string"
          },
          "source_references": {
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Source References",
            "type": "array"
          },
          "source_sha256": {
            "pattern": "^[a-f0-9]{64}$",
            "title": "Source Sha256",
            "type": "string"
          }
        },
        "required": [
          "draft_id",
          "draft_revision",
          "draft_revision_sha256",
          "kind",
          "prompt",
          "objective_ids",
          "source_references",
          "source_sha256"
        ],
        "title": "WrittenResponseSourceSnapshot",
        "type": "object"
      },
      "WrittenResponseTolerance": {
        "additionalProperties": false,
        "properties": {
          "absolute_tolerance": {
            "anyOf": [
              {
                "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,12})?$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Absolute Tolerance"
          },
          "guidance": {
            "items": {
              "$ref": "#/components/schemas/WrittenResponseLocalizedContent"
            },
            "maxItems": 20,
            "minItems": 1,
            "title": "Guidance",
            "type": "array"
          },
          "kind": {
            "enum": ["semantic", "lexical", "numeric", "range"],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["kind", "guidance"],
        "title": "WrittenResponseTolerance",
        "type": "object"
      },
      "XapiActor": {
        "properties": {
          "account_home_page": {
            "default": "https://metis.oshun.local",
            "minLength": 1,
            "title": "Account Home Page",
            "type": "string"
          },
          "account_name": {
            "minLength": 1,
            "title": "Account Name",
            "type": "string"
          },
          "mbox": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mbox"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "object_type": {
            "const": "Agent",
            "default": "Agent",
            "title": "Object Type",
            "type": "string"
          }
        },
        "required": ["account_name"],
        "title": "XapiActor",
        "type": "object"
      },
      "XapiContext": {
        "properties": {
          "context_activities": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/XapiObject"
              },
              "type": "array"
            },
            "title": "Context Activities",
            "type": "object"
          },
          "extensions": {
            "additionalProperties": true,
            "title": "Extensions",
            "type": "object"
          },
          "instructor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/XapiActor"
              },
              {
                "type": "null"
              }
            ]
          },
          "language": {
            "anyOf": [
              {
                "maxLength": 32,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Language"
          },
          "platform": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Platform"
          },
          "registration": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Registration"
          }
        },
        "title": "XapiContext",
        "type": "object"
      },
      "XapiDocumentIdsResponse": {
        "description": "The ids held under one activity or agent, which is what a client asks\nfor before it asks for any document.",
        "properties": {
          "ids": {
            "items": {
              "type": "string"
            },
            "title": "Ids",
            "type": "array"
          },
          "kind": {
            "enum": ["state", "activity_profile", "agent_profile"],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": ["kind", "ids"],
        "title": "XapiDocumentIdsResponse",
        "type": "object"
      },
      "XapiObject": {
        "properties": {
          "definition": {
            "$ref": "#/components/schemas/XapiObjectDefinition"
          },
          "id": {
            "maxLength": 2048,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "object_type": {
            "default": "Activity",
            "enum": ["Activity", "Agent", "Group", "StatementRef", "SubStatement"],
            "title": "Object Type",
            "type": "string"
          }
        },
        "required": ["id"],
        "title": "XapiObject",
        "type": "object"
      },
      "XapiObjectDefinition": {
        "properties": {
          "description": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Description",
            "type": "object"
          },
          "extensions": {
            "additionalProperties": true,
            "title": "Extensions",
            "type": "object"
          },
          "name": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Name",
            "type": "object"
          },
          "type": {
            "anyOf": [
              {
                "maxLength": 1024,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Type"
          }
        },
        "title": "XapiObjectDefinition",
        "type": "object"
      },
      "XapiObjectIdentity": {
        "properties": {
          "identity_hash": {
            "title": "Identity Hash",
            "type": "string"
          },
          "object_id": {
            "title": "Object Id",
            "type": "string"
          },
          "object_type": {
            "enum": ["Activity", "Agent", "Group", "StatementRef", "SubStatement"],
            "title": "Object Type",
            "type": "string"
          },
          "registration": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Registration"
          }
        },
        "required": ["object_id", "object_type", "identity_hash"],
        "title": "XapiObjectIdentity",
        "type": "object"
      },
      "XapiReplayResponse": {
        "properties": {
          "next_cursor": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "replay_from": {
            "title": "Replay From",
            "type": "integer"
          },
          "statements": {
            "items": {
              "$ref": "#/components/schemas/XapiStatementResponse"
            },
            "title": "Statements",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["statements", "replay_from", "total"],
        "title": "XapiReplayResponse",
        "type": "object"
      },
      "XapiResult": {
        "properties": {
          "completion": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completion"
          },
          "duration": {
            "anyOf": [
              {
                "maxLength": 120,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration"
          },
          "extensions": {
            "additionalProperties": true,
            "title": "Extensions",
            "type": "object"
          },
          "response": {
            "anyOf": [
              {
                "maxLength": 4096,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Response"
          },
          "score": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "number"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Score"
          },
          "success": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Success"
          }
        },
        "title": "XapiResult",
        "type": "object"
      },
      "XapiStatementCreateRequest": {
        "properties": {
          "attachments": {
            "description": "Attachments are rejected until their bytes and hashes are durably retained.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "maxItems": 0,
            "title": "Attachments",
            "type": "array"
          },
          "cmi5": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Cmi5Context"
              },
              {
                "type": "null"
              }
            ]
          },
          "context": {
            "$ref": "#/components/schemas/XapiContext"
          },
          "learner_id": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Learner Id"
          },
          "object": {
            "$ref": "#/components/schemas/XapiObject"
          },
          "result": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/XapiResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "statement_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Statement Id"
          },
          "timestamp": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timestamp"
          },
          "verb": {
            "$ref": "#/components/schemas/XapiVerb"
          }
        },
        "required": ["verb", "object"],
        "title": "XapiStatementCreateRequest",
        "type": "object"
      },
      "XapiStatementListResponse": {
        "properties": {
          "next_cursor": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "statements": {
            "items": {
              "$ref": "#/components/schemas/XapiStatementResponse"
            },
            "title": "Statements",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": ["statements", "total"],
        "title": "XapiStatementListResponse",
        "type": "object"
      },
      "XapiStatementResponse": {
        "properties": {
          "actor": {
            "$ref": "#/components/schemas/XapiActor"
          },
          "authority": {
            "title": "Authority",
            "type": "string"
          },
          "cmi5": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Cmi5Context"
              },
              {
                "type": "null"
              }
            ]
          },
          "context": {
            "$ref": "#/components/schemas/XapiContext"
          },
          "duplicate": {
            "default": false,
            "title": "Duplicate",
            "type": "boolean"
          },
          "fields_not_carried": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 200,
            "title": "Fields Not Carried",
            "type": "array"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "learner_id": {
            "title": "Learner Id",
            "type": "string"
          },
          "object": {
            "$ref": "#/components/schemas/XapiObject"
          },
          "object_identity": {
            "$ref": "#/components/schemas/XapiObjectIdentity"
          },
          "replay_cursor": {
            "title": "Replay Cursor",
            "type": "integer"
          },
          "result": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/XapiResult"
              },
              {
                "type": "null"
              }
            ]
          },
          "sequence": {
            "title": "Sequence",
            "type": "integer"
          },
          "stored_at": {
            "format": "date-time",
            "title": "Stored At",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "title": "Timestamp",
            "type": "string"
          },
          "verb": {
            "$ref": "#/components/schemas/XapiVerb"
          },
          "voided": {
            "default": false,
            "title": "Voided",
            "type": "boolean"
          },
          "voided_by": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Voided By"
          }
        },
        "required": [
          "id",
          "sequence",
          "learner_id",
          "actor",
          "verb",
          "object",
          "context",
          "timestamp",
          "stored_at",
          "authority",
          "object_identity",
          "replay_cursor"
        ],
        "title": "XapiStatementResponse",
        "type": "object"
      },
      "XapiVerb": {
        "properties": {
          "display": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Display",
            "type": "object"
          },
          "id": {
            "maxLength": 1024,
            "minLength": 1,
            "title": "Id",
            "type": "string"
          }
        },
        "required": ["id"],
        "title": "XapiVerb",
        "type": "object"
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  }
}
